color cat - cat(1) with regex-based syntax highlighting.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Aadhavan Srinivasan 122cd5ed04 Fixed typo 2 months ago
config Defined color mappings for Go 2 months ago
stack First commit 2 months ago
.gitignore Added gitignore file 2 months ago
Makefile First commit 2 months ago
README.md Fixed typo 2 months ago
color.go Added function to load colors from a config file 2 months ago
colorunit.go Replaced 'panic' with an error return, and a call to 'printAndExit' 2 months ago
config.go Wrote function to copy embedded config files to a config directory 2 months ago
errors.go Renamed 'printAndExit' to 'printErrAndExit' 2 months ago
go.mod First commit 2 months ago
go.sum First commit 2 months ago
main.go If the color config file exists, load colors from it 2 months ago
regcolor.go First commit 2 months ago
todo.txt Updated TODO 2 months ago
vision.txt First commit 2 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.