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.
74 lines
2.6 KiB
Markdown
74 lines
2.6 KiB
Markdown
## 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.
|
|
- 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:
|
|
|
|
`"<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:
|
|
- Windows support.
|
|
- Allow users to provide a config file in the command-line, overriding the extension-based config file.
|