An open API service indexing awesome lists of open source software.

https://github.com/thehamdiz/countroo

CountRoo is a rust crate that counts your project's (or workspace) lines of code, for any programming language with features to enable or disable counting empty lines and certain programming languages.
https://github.com/thehamdiz/countroo

Last synced: 20 days ago
JSON representation

CountRoo is a rust crate that counts your project's (or workspace) lines of code, for any programming language with features to enable or disable counting empty lines and certain programming languages.

Awesome Lists containing this project

README

        

# CountRoo πŸ¦˜πŸ‘€

Welcome to the wild world of `CountRoo`, your go-to Rust crate for navigating the vast wilderness of your codebase!

πŸŒ²πŸ”­ Whether you're tracking down every line of Rust code, or just curious about your project's stats.

Or simply want to know the contribution ratio of each language `CountRoo` hops right to it, giving you the insights you need with a side of fun. πŸŽ‰

![output.png](output.png)

> This **README** is generated by **ChatGPT** & not the crate's author, just because I'm lazy.

## Quick Start πŸš€

Adding `CountRoo` to your Rust project is easier than spotting a koala in a eucalyptus tree! Here’s how you can get started:

1. **Add CountRoo to your Cargo.toml** πŸ“„

```toml
[build-dependencies]
countroo = { version = "0.1.7", features = ["default"]}
```

2. **Create or Update Your build.rs** πŸ› οΈ

Ensure your project has a `build.rs` file in the root (right next to `Cargo.toml`). If it's missing, now's the time to add it!

3. **Invoke CountRoo with Magic Macros** ✨

Inside your `build.rs`, let `CountRoo` work its magic by using its provided macros to analyze your project:

```rust
use countroo::prelude::*;
fn main() {
count_it_all!();
// Or for the adventurous:
// countroo::count_some!();
// If you're using it for a workspace, you can just use it like this inside any project's build.rs
count_it_all!(workspace: true);
}
```

## Features at a Glance 🌟

`CountRoo` isn't your average crate; it’s packed with features that make code analysis both insightful and delightful:

- **Lines of Code Counter** πŸ“Š: Discover how many lines of code your project spans, with options to include or exclude empty lines.

- **Config Flexibility** πŸ“‘: Supports a variety of config formats including TOML, JSON, YAML, XML, and even simple newline-separated configs, although for the initial release they will not be available.

- **Parallel Processing** ⚑: Utilizes `rayon` for speedy analysis, because who likes waiting?

- **Customizable and Extensible** πŸ› οΈ: Tailor `CountRoo` to your needs by specifying which file extensions to include in the count.

## Example Macro Usage πŸ“

Want to quickly count all lines of code? Just use the `count_it_all!` macro in your `build.rs`. For a more selective count, the `count_some!` macro is your friend. Here’s a peek at how it’s done:

```rust
use countroo::prelude::*;
fn main() {
// To count everything:
count_it_all!();

// Feeling selective?
count_some!();
}
```

## Dive Deeper 🀿

`CountRoo` comes with comprehensive documentation for those looking to explore its full potential. From handling custom errors to deep-diving into configurations, it’s all there at your fingertips.

## Wrapping Up 🎁

So, what's the hold-up? Let `CountRoo` take you on a code counting adventure. Discover the hidden treasures within your codebase and maybe, just maybe, find out it’s bigger (or smaller) than you thought. Happy coding, Rustaceans! πŸ¦€πŸŽ‰