Commit feaee044 authored by Robby Russell's avatar Robby Russell
Browse files

Resolving conflict in README after recent updates for colorize plugin

parents 674d0e1e 420e9d78
...@@ -8,24 +8,39 @@ is found it will just cat the file normally, without syntax highlighting. ...@@ -8,24 +8,39 @@ is found it will just cat the file normally, without syntax highlighting.
## Setup ## Setup
To use it, add colorize to the plugins array of your zshrc file: To use it, add colorize to the plugins array of your `~/.zshrc` file:
``` ```
plugins=(... colorize) plugins=(... colorize)
``` ```
## Configuration
### Requirements ### Requirements
This plugin requires that Pygments be installed: [pygments.org](https://pygments.org/) This plugin requires that either of the following tools be installed:
* Chroma: [https://github.com/alecthomas/chroma](https://github.com/alecthomas/chroma)
* Pygments be installed: [pygments.org](https://pygments.org/)
### Colorize tool
## Styles Colorize supports `pygmentize` and `chroma` as syntax highlighter. By default colorize uses `pygmentize` unless it's not installed and `chroma` is. This can be overridden by the `ZSH_COLORIZE_TOOL` environment variable:
```
ZSH_COLORIZE_TOOL=chroma
```
### Styles
Pygments offers multiple styles. By default, the `default` style is used, but you can choose another theme by setting the `ZSH_COLORIZE_STYLE` environment variable: Pygments offers multiple styles. By default, the `default` style is used, but you can choose another theme by setting the `ZSH_COLORIZE_STYLE` environment variable:
`ZSH_COLORIZE_STYLE="colorful"` ```
ZSH_COLORIZE_STYLE="colorful"
```
## Usage ## Usage
* `ccat <file> [files]`: colorize the contents of the file (or files, if more than one are provided). * `ccat <file> [files]`: colorize the contents of the file (or files, if more than one are provided).
If no arguments are passed it will colorize the standard input or stdin. If no arguments are passed it will colorize the standard input or stdin.
* `cless <file> [files]`: colorize the contents of the file (or files, if more than one are provided) and * `cless <file> [files]`: colorize the contents of the file (or files, if more than one are provided) and
......
...@@ -3,21 +3,42 @@ alias ccat='colorize_via_pygmentize' ...@@ -3,21 +3,42 @@ alias ccat='colorize_via_pygmentize'
alias cless='colorize_via_pygmentize_less' alias cless='colorize_via_pygmentize_less'
colorize_via_pygmentize() { colorize_via_pygmentize() {
if ! (( $+commands[pygmentize] )); then local available_tools=("chroma" "pygmentize")
echo "package 'Pygments' is not installed!"
if [ -z "$ZSH_COLORIZE_TOOL" ]; then
if (( $+commands[pygmentize] )); then
ZSH_COLORIZE_TOOL="pygmentize"
elif (( $+commands[chroma] )); then
ZSH_COLORIZE_TOOL="chroma"
else
echo "Neither 'pygments' nor 'chroma' is installed!" >&2
return 1
fi
fi
if [[ ${available_tools[(Ie)$ZSH_COLORIZE_TOOL]} -eq 0 ]]; then
echo "ZSH_COLORIZE_TOOL '$ZSH_COLORIZE_TOOL' not recognized. Available options are 'pygmentize' and 'chroma'." >&2
return 1
elif (( $+commands["$ZSH_COLORIZE_TOOL"] )); then
echo "Package '$ZSH_COLORIZE_TOOL' is not installed!" >&2
return 1 return 1
fi fi
# If the environment varianle ZSH_COLORIZE_STYLE # If the environment variable ZSH_COLORIZE_STYLE
# is set, use that theme instead. Otherwise, # is set, use that theme instead. Otherwise,
# use the default. # use the default.
if [ -z $ZSH_COLORIZE_STYLE ]; then if [ -z "$ZSH_COLORIZE_STYLE" ]; then
ZSH_COLORIZE_STYLE="default" # Both pygmentize & chroma support 'emacs'
ZSH_COLORIZE_STYLE="emacs"
fi fi
# pygmentize stdin if no arguments passed # pygmentize stdin if no arguments passed
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
pygmentize -O style="$ZSH_COLORIZE_STYLE" -g if [[ "$ZSH_COLORIZE_TOOL" == "pygmentize" ]]; then
pygmentize -O style="$ZSH_COLORIZE_STYLE" -g
else
chroma --style="$ZSH_COLORIZE_STYLE"
fi
return $? return $?
fi fi
...@@ -27,11 +48,15 @@ colorize_via_pygmentize() { ...@@ -27,11 +48,15 @@ colorize_via_pygmentize() {
local FNAME lexer local FNAME lexer
for FNAME in "$@" for FNAME in "$@"
do do
lexer=$(pygmentize -N "$FNAME") if [[ "$ZSH_COLORIZE_TOOL" == "pygmentize" ]]; then
if [[ $lexer != text ]]; then lexer=$(pygmentize -N "$FNAME")
pygmentize -O style="$ZSH_COLORIZE_STYLE" -l "$lexer" "$FNAME" if [[ $lexer != text ]]; then
pygmentize -O style="$ZSH_COLORIZE_STYLE" -l "$lexer" "$FNAME"
else
pygmentize -O style="$ZSH_COLORIZE_STYLE" -g "$FNAME"
fi
else else
pygmentize -O style="$ZSH_COLORIZE_STYLE" -g "$FNAME" chroma --style="$ZSH_COLORIZE_STYLE" "$FNAME"
fi fi
done done
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment