## 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 `.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. - Linux and MacOS supported. --- ### Installing Download the appropriate zip-file from the 'Releases' section. Place the executable in your PATH. NOTE: The releases are not available on the GitHub repo (which is a mirror of https://gitea.twomorecents.org/Rockingcool/ccat). Obtain the [releases](https://gitea.twomorecents.org/Rockingcool/ccat/releases) from there instead. --- ### Building from source 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 (`~/.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: `"": 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: ` Note that the color name must be capitalized (and shouldn't contain spaces). The RGB values must each be from 0 to 255. --- ### TODO: - Windows support. - Allow users to provide a config file in the command-line, overriding the extension-based config file.