浏览代码

fix(init): set completion colors on theme load, not with `precmd`

This fixes an edge case where the user actually sets

  zstyle ':completion:*' list-colors

in their zshrc, but the previous code used a precmd hook, which would
override the user changes. With this change our modifications will be
set in the init script, after the theme loads, so that later changes
can affect our defaults.

Note that this will not be run for users on plugin managers, as these
don't generally run our init script.
Marc Cornellà 1 年之前
父节点
当前提交
d342b353e3
共有 2 个文件被更改,包括 3 次插入10 次删除
  1. 0 10
      lib/theme-and-appearance.zsh
  2. 3 0
      oh-my-zsh.sh

+ 0 - 10
lib/theme-and-appearance.zsh

@@ -81,13 +81,3 @@ if [[ -z "$LS_COLORS" ]]; then
     export LS_COLORS="di=34:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=37;41:sg=30;43:tw=30;42:ow=34;42:"
     export LS_COLORS="di=34:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=37;41:sg=30;43:tw=30;42:ow=34;42:"
   fi
   fi
 fi
 fi
-
-# Take advantage of $LS_COLORS for completion as well.
-function omz_set_completion_colors {
-  zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
-  add-zsh-hook -d precmd omz_set_completion_colors
-  unfunction omz_set_completion_colors
-}
-
-autoload -Uz add-zsh-hook
-add-zsh-hook precmd omz_set_completion_colors

+ 3 - 0
oh-my-zsh.sh

@@ -189,3 +189,6 @@ if [[ -n "$ZSH_THEME" ]]; then
     echo "[oh-my-zsh] theme '$ZSH_THEME' not found"
     echo "[oh-my-zsh] theme '$ZSH_THEME' not found"
   fi
   fi
 fi
 fi
+
+# set completion colors to be the same as `ls`, after theme has been loaded
+[[ -z "$LS_COLORS" ]] || zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"