summaryrefslogtreecommitdiff
path: root/config/essentials/zsh/comp.zsh
blob: 4836111c8237b28fb02a5f2d8ee5a2c865aaa04d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
### Completion
# Find most of the stuff at https://github.com/zap-zsh/completions

zmodload zsh/complist
autoload -Uz compinit; compinit
zstyle ':compinstall' filename '/home/aluc/.zshrc'
# cache
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path "$ZDOTDIR/zcompcache"

# completers
zstyle ':completion:*' completer _extensions _complete

# format
zstyle ':completion:*:*:*:*:descriptions' format '%F{blue}-- %D%d --%f'
zstyle ':completion:*:*:*:*:messages' format '%F{purple}-- %d --%f'
zstyle ':completion:*:*:*:*:warnings' format '%F{red}-- no matches found --%f'
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
# show a 'ls -a' like outptut when listing files
zstyle ':completion:*:*:*:*:default' list-colors ${(s.:.)LS_COLORS}

# automatically find new executables in PATH
zstyle ':completion:*' rehash true

# Group completions by categories
zstyle ':completion:*' group-name ''
zstyle ':completion:*:*:-command-:*:*' group-order aliases builtins functions commands

zstyle ':completion:*' squeeze-slashes true

# Prefer completing for an option (think cd -)
zstyle ':completion:*' complete-options true

# keep prefix when completing
zstyle ':completion:*' keep-prefix true

# ui
zstyle ':completion:*' menu select

_dotnet_zsh_complete()
{
  local completions=("$(dotnet complete "$words")")

  # If the completion list is empty, just continue with filename selection
  if [ -z "$completions" ]
  then
    _arguments '*::arguments: _normal'
    return
  fi

  # This is not a variable assignment, don't remove spaces!
  _values = "${(ps:\n:)completions}"
}
compdef _dotnet_zsh_complete dotnet