浏览代码

Merge pull request #1 from ProbstDJakob/colorize-chroma-support

Fix some issues
Aaron N. Brock 5 年之前
父节点
当前提交
34b5ff588b
共有 2 个文件被更改,包括 11 次插入10 次删除
  1. 2 2
      plugins/colorize/README.md
  2. 9 8
      plugins/colorize/colorize.plugin.zsh

+ 2 - 2
plugins/colorize/README.md

@@ -14,7 +14,7 @@ plugins=(... colorize)
 
 ### Colorize tool
 
-Colorize supports using either the `pygmentize` tool or the `chroma` tool.  By default colorize uses `pygmentize` unless it's not installed & `chroma` is installed.  However, you can override this with the `ZSH_COLORIZE_TOOL` environment variable:
+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
@@ -30,7 +30,7 @@ ZSH_COLORIZE_STYLE="colorful"
 
 ## 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.
 
 * `cless <file> [files]`: colorize the contents of the file (or files, if more than one are provided) and

+ 9 - 8
plugins/colorize/colorize.plugin.zsh

@@ -3,11 +3,7 @@ alias ccat='colorize_via_pygmentize'
 alias cless='colorize_via_pygmentize_less'
 
 colorize_via_pygmentize() {
-    
-    if [[ $ZSH_COLORIZE_TOOL != "chroma" && $ZSH_COLORIZE_TOOL != "pygmentize" ]]; then
-        echo "ZSH_COLORIZE_TOOL not recognized.  Options are 'pygmentize' or 'chroma'"
-        return 1
-    fi
+    local available_tools=("chroma" "pygmentize")
 
     if [ -z $ZSH_COLORIZE_TOOL ]; then
         if (( $+commands[pygmentize] )); then
@@ -15,12 +11,18 @@ colorize_via_pygmentize() {
         elif (( $+commands[chroma] )); then
             ZSH_COLORIZE_TOOL="chroma"
         else
-            echo "niether 'Pygments' nor 'chroma' is not installed!"
+            echo "Neither 'pygments' nor 'chroma' is installed!"
             return 1
         fi
     fi
 
-    echo "Tool: $ZSH_COLORIZE_TOOL"
+    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'."
+        return 1
+    elif (( $+commands[$ZSH_COLORIZE_TOOL] )); then
+        echo "Package '$ZSH_COLORIZE_TOOL' is not installed!"
+        return 1
+    fi
 
     # If the environment variable ZSH_COLORIZE_STYLE
     # is set, use that theme instead. Otherwise,
@@ -35,7 +37,6 @@ colorize_via_pygmentize() {
         fi
     fi
 
-    echo "color style: $ZSH_COLORIZE_STYLE"
     # pygmentize stdin if no arguments passed
     if [ $# -eq 0 ]; then
         if [[ $ZSH_COLORIZE_TOOL == "pygmentize" ]]; then