# SuperCat 🐱 > cat you see!? It's a fancy super cat! :cat: ![supercat](https://github.com/user-attachments/assets/758e5299-54ed-4a55-bc4e-708252703d13) SuperCat is a syntax highlighting alternative to the traditional `cat` command-line utility. It provides colorful and easy-to-read output for various programming languages and file types, powered by tree-sitter and the Helix editor's syntax highlighting engine. ## Features - Syntax highlighting for multiple programming languages using tree-sitter - Automatic language detection based on file extension or content - Option to display line numbers - Customizable color theme - Support for reading from files or standard input - Powered by the Helix editor's syntax highlighting engine ## Why SuperCat? SuperCat offers advantages over similar tools: 1. **Advanced syntax highlighting**: SuperCat uses tree-sitter through the Helix editor's syntax highlighting engine. This provides more accurate and context-aware parsing compared to regex-based highlighters, resulting in better highlighting for complex language constructs. It also benefits from Helix's performance optimizations and support for a wide range of languages. 2. **Lightweight**: SuperCat is designed to be a lightweight alternative, focusing on fast startup times and efficient memory usage. 3. **Customizability(soon)**: The color theme in SuperCat is easily customizable, allowing users to tailor the output to their preferences. ## Installation You can install SuperCat using Cargo, the Rust package manager: ``` cargo install supercat ``` Alternatively, you can build from source: ``` git clone https://github.com/guilhermeprokisch/supercat.git cd supercat cargo build --release ``` The built binary will be available in `target/release/supercat`. ## Usage ``` supercat [OPTIONS] [FILE] ``` If no file is specified, SuperCat will read from standard input. ### Options - `-l, --line-numbers`: Show line numbers - `--language `: Force a specific language for syntax highlighting ### Examples 1. Display a file with syntax highlighting: ``` supercat example.rs ``` 2. Display a file with line numbers: ``` supercat -l example.py ``` 3. Force a specific language: ``` supercat --language javascript example.txt ``` 4. Read from standard input: ``` echo "print('Hello, World!')" | supercat --language python ``` ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## Acknowledgments - [tree-sitter](https://tree-sitter.github.io/tree-sitter/) for robust syntax parsing - [Helix](https://helix-editor.com/) - [inkjet](https://crates.io/crates/inkjet) for integrating the Helix highlighting engine