Skip to content

Commit

Permalink
Complete cd options rather than dir stack
Browse files Browse the repository at this point in the history
  • Loading branch information
marlonrichert committed May 18, 2023
1 parent eda36fc commit 5294282
Showing 1 changed file with 20 additions and 19 deletions.
39 changes: 20 additions & 19 deletions scripts/.autocomplete.config
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#!/bin/zsh
zmodload -Fa zsh/zutil b:zstyle

typeset -g ZLE_REMOVE_SUFFIX_CHARS=$' /;\n\r\t'
typeset -g ZLE_SPACE_SUFFIX_CHARS=$'|&<>-+'
typeset -g ZLE_SPACE_SUFFIX_CHARS='|&<>-+'

.autocomplete.config.precmd() {
typeset -g _comp_setup="$_comp_setup"';
Expand All @@ -19,13 +20,13 @@ typeset -g ZLE_SPACE_SUFFIX_CHARS=$'|&<>-+'
}

builtin zstyle ':completion:*' use-cache yes
builtin zstyle -e ':completion:*' cache-path _autocomplete.config.cache-path
_autocomplete.config.cache-path() {
builtin zstyle -e ':completion:*' cache-path autocomplete:config:cache-path
autocomplete:config:cache-path() {
reply=( "${XDG_CACHE_HOME:-$HOME/.cache}/zsh/compcache" )
}

builtin zstyle -e ':completion:*' completer _autocomplete.config.completer
_autocomplete.config.completer() {
builtin zstyle -e ':completion:*' completer autocomplete:config:completer
autocomplete:config:completer() {
if [[ $CURRENT -eq 1 && -z $PREFIX$SUFFIX && $compstate[context] == command ]]; then
reply=( _complete )
else
Expand All @@ -34,8 +35,8 @@ _autocomplete.config.completer() {
}

builtin zstyle ':completion:*:expand:*' tag-order '! original' -
builtin zstyle -e ':completion:*:-command-:*' tag-order _autocomplete.config.tag-order.command
_autocomplete.config.tag-order.command() {
builtin zstyle -e ':completion:*:-command-:*' tag-order autocomplete:config:tag-order:command
autocomplete:config:tag-order:command() {
if [[ $PREFIX == (|.|*/*) ]]; then
reply=( 'suffix-aliases (|*-)directories executables (|*-)files' - )
else
Expand All @@ -50,8 +51,12 @@ _autocomplete.config.tag-order.command() {
builtin zstyle ':completion:*:-tilde-:*' tag-order directory-stack named-directories
builtin zstyle ':completion:*:(approximate|correct):*' tag-order '! original' -

# Complete options rather than directory stack. You can get directory stack by typing `~-` (tilde plus dash).
builtin zstyle ':completion:*:cd:*' complete-options yes
builtin zstyle ':completion:*:cd:*' tag-order '! directory-stack' -

# Don't show the giant list of history lines.
builtin zstyle ':completion:*:fc::' tag-order options -
builtin zstyle ':completion:*:fc:*' tag-order options -

builtin zstyle ':completion:*:git-*:(|*-)argument-*:*' tag-order \
'! (|cached-)files *-remote remote-* (|*-)tags' \
Expand All @@ -77,8 +82,8 @@ builtin zstyle ':completion:*:expand:*' accept-exact continue
builtin zstyle -e ':completion:*:expand:*' glob _autocomplete.is_glob
builtin zstyle ':completion:*:expand:*' keep-prefix no # Needed for file type highlighting
builtin zstyle ':completion:*:expand:*' add-space subst
builtin zstyle -e ':completion:*:expand:*' substitute _autocomplete.config.expand.substitute
_autocomplete.config.expand.substitute() {
builtin zstyle -e ':completion:*:expand:*' substitute autocomplete:config:substitute:expand
autocomplete:config:substitute:expand() {
local -P __word__=$PREFIX$SUFFIX
if [[ ${(Q)__word__} == *(\`*\`|\$\(*\))* ]]; then
reply=( false )
Expand All @@ -102,13 +107,9 @@ builtin zstyle ':completion:*' group-order \
aliases suffix-aliases functions reserved-words builtins commands \
local-directories directories executables

builtin zstyle ':completion:*' complete-options yes

builtin zstyle ':completion:*' file-patterns \
'*(-/):directories:directory %p(#q^-/):globbed-files'
builtin zstyle -e ':completion:*:-command-:*' file-patterns \
_autocomplete.config.file-patterns.command
_autocomplete.config.file-patterns.command() {
builtin zstyle ':completion:*' file-patterns '*(-/):directories:directory %p(#q^-/):globbed-files'
builtin zstyle -e ':completion:*:-command-:*' file-patterns autocomplete:config:file-patterns:command
autocomplete:config:file-patterns:command() {
[[ $PREFIX$SUFFIX != */* ]] &&
reply=( '*(-/):directories:directory ./*(-*^/):executables:"executable file"' )
}
Expand All @@ -119,8 +120,8 @@ builtin zstyle ':completion:*:(.|source):*' file-patterns \
builtin zstyle ':completion:*:parameters' list-grouped no

builtin zstyle ':completion:*:descriptions' format $'%{\e[0;1;2m%}%d%{\e[0m%}'
builtin zstyle -e ':completion:*:warnings' format _autocomplete.config.format
_autocomplete.config.format() {
builtin zstyle -e ':completion:*:warnings' format autocomplete:config:format:warnings
autocomplete:config:format:warnings() {
[[ $CURRENT == 1 && -z $PREFIX$SUFFIX ]] ||
reply=( $'%{\e[0;2m%}'"no matching %d completions"$'%{\e[0m%}' )
}
Expand Down

0 comments on commit 5294282

Please sign in to comment.