Aadhavan Srinivasan b65cef96c3 | 4 months ago | |
---|---|---|
config | 4 months ago | |
stack | 5 months ago | |
.gitignore | 4 months ago | |
Makefile | 5 months ago | |
README.md | 4 months ago | |
color.go | 4 months ago | |
colorunit.go | 4 months ago | |
config.go | 4 months ago | |
errors.go | 4 months ago | |
go.mod | 5 months ago | |
go.sum | 5 months ago | |
main.go | 4 months ago | |
regcolor.go | 5 months ago | |
todo.txt | 4 months ago | |
vision.txt | 5 months ago |
README.md
ccat
ccat is a file printing tool (like 'cat') which uses Regular Expressions to enable syntax highlighting.
Features
- 11 colors are defined out-of-the-box: RED, BLUE, GREEN, MAGENTA, CYAN, BLACK, WHITE, YELLOW, GRAY, ORANGE and DARKBLUE.
- Support for defining custom colors via the
ccat.colors
file. - Regex-color mappings are stored in configuration files.
- Uses the file extension to determine which configuration file to use.
- Highly extensible - to add a config file for an specific file type, name the file
<extension>.conf
. - Support for printing line numbers with the
-n
flag. - Statically linked Go binary - no runtime dependencies, config files are distributed along with the binary.
- Cross-platform
Installing
If you have the go
command installed, run make
after cloning the repository.
Supported Languages
The following languages have config files included by default:
- C
- Go
Getting Started
The config files are embedded within the binary. They will automatically be installed to the correct location (%APPDATA/ccat
on Windows, ~/.config/ccat
on UNIX) when the program is first run.
As written above, if provided a file with extension .example
, the program will look for the config file named example.conf
. If such a file doesn't exist, the file is printed out without any highlighting.
For example, if you want to create syntax highlighting for Java, create a file named java.conf
in your config directory. In this file, include regular-expressions for each of the langauges's keywords, and provide a corresponding color. Use the provided c.conf
and go.conf
files as a starting point.
Config Files
The config files are written in YAML. Each line has the following syntax:
"<regex>": COLOR
Note that the regex must be enclosed in double quotes, and the color must be capitalized.
Custom Colors
To define a color of your own, create a file named ccat.colors
in the config directory (mentioned above). The syntax of this file is the following:
COLOR: <red> <green> <blue>
Note that the color name must be capitalized (and shouldn't contain spaces). The RGB values must each be from 0 to 255.
TODO:
- Allow users to provide a config file in the command-line, overriding the extension-based config file.
- Provide releases.