summaryrefslogtreecommitdiff
path: root/Completion
diff options
context:
space:
mode:
authorGI <gi1242+zsh@gmail.com>2025-01-21 13:51:53 -0500
committerOliver Kiddle <opk@zsh.org>2025-01-27 23:45:22 +0100
commit45b79fa2cb353582fa6001c75c5f4e2ef4d5fa37 (patch)
tree953ac1d200e7b08d02be8cbec98560633e6c00a9 /Completion
parenta61b105795620943206c1f85be801943cadbb1c3 (diff)
downloadzsh-45b79fa2cb353582fa6001c75c5f4e2ef4d5fa37.tar.gz
zsh-45b79fa2cb353582fa6001c75c5f4e2ef4d5fa37.zip
github #128: Updated completion for neovim
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Unix/Command/_vim26
1 files changed, 16 insertions, 10 deletions
diff --git a/Completion/Unix/Command/_vim b/Completion/Unix/Command/_vim
index 5c6054e70..5a805b9f6 100644
--- a/Completion/Unix/Command/_vim
+++ b/Completion/Unix/Command/_vim
@@ -41,11 +41,18 @@ arguments=(
'-s[read normal-mode commands from script file]:script file:_files'
'-w[append all typed commands to given file]:output file:_files'
'-W[write all typed commands to given file, overwriting existing file]:output file:_files'
- '--startuptime[write startup timing messages to given file]:log file:_files'
'(- *)'{-h,--help}'[print help and exit]'
'(- *)--version[print version information and exit]'
'(* -q)-t+[edit file where tag is defined]:tag:_complete_tag'
'(-t -q)*:file:_vim_files'
+ '--clean[start with defaults in non-compatible mode]'
+ '--remote[edit given files in a vim server if possible]:*:file:_vim_files'
+ '--remote-silent[as --remote but without complaining if not possible]:*:file:_vim_files'
+ '--remote-send[send given keys to vim server if possible]:keys: '
+ '--remote-tab[as --remote but open tab page for each file]:*:file:_vim_files'
+ '--remote-tab-silent[as --remote-silent but open tab page for each file]:*:file:_vim_files'
+ '--remote-expr[evaluate given expression in a vim server and print result]:expression: '
+ '--startuptime[write startup timing messages to given file]:log file:_files'
)
if [[ $service = nvim ]]; then
arguments+=(
@@ -56,9 +63,11 @@ if [[ $service = nvim ]]; then
'-i[use the specified shada file]:shada file:_files'
'(- *)-v[print version information and exit]'
'(- *)--api-info[print msgpack-encoded api-metadata and exit]'
- '--headless[do not start user interface]'
'--embed[use standard input and output as a msgpack-rpc channel]'
+ '--headless[do not start user interface]'
'--listen[start RPC server on the specified socket or named pipe]:address'
+ '--remote-ui[display the UI of the server in the terminal]'
+ '--server[specify RPC server to send commands to]:server name:->server'
)
else
arguments+=(
@@ -74,22 +83,15 @@ else
'--ttyfail[exit if input or output is not a terminal]'
'-X[do not connect to X server]'
'-x[edit encrypted files]'
- '--remote[edit given files in a vim server if possible]:*:file:_vim_files'
- '--remote-silent[as --remote but without complaining if not possible]:*:file:_vim_files'
'--remote-wait[as --remote but wait for files to have been edited]:*:file:_vim_files'
'--remote-wait-silent[as --remote-wait but without complaining if not possible]:*:file:_vim_files'
- '--remote-send[send given keys to vim server if possible]:keys: '
- '--remote-tab[as --remote but open tab page for each file]:*:file:_vim_files'
- '--remote-tab-silent[as --remote-silent but open tab page for each file]:*:file:_vim_files'
'--remote-tab-wait[as --remote-wait but open tab page for each file]:*:file:_vim_files'
'--remote-tab-wait-silent[as --remote-wait-silent but open tab page for each file]:*:file:_vim_files'
- '--remote-expr[evaluate given expression in a vim server and print result]:expression: '
'--literal[do not expand wildcards in arguments (this is useless with ZSH)]'
'(- *)--serverlist[list available vim servers and exit]'
'--servername[name of vim server to send to or name of server to become]:server name:->server'
'--socketid[run GVIM in another window]'
'-i[use specified viminfo file]:viminfo file [~/.viminfo]:_files'
- '--clean[start with defaults in non-compatible mode]'
)
fi
[[ $service != *g* && $service != nvim ]] && arguments+='-g[start with GUI]'
@@ -115,7 +117,11 @@ _arguments -C -S $arguments && ret=0
if [[ "$state" = server ]]; then
local -a servers
- servers=( ${(f)"$(_call_program servers $words[1] --serverlist 2>/dev/null)"} )
+ if [[ $service == nvim ]]; then
+ servers=( /run/user/$UID/nvim.*(N=) )
+ else
+ servers=( ${(f)"$(_call_program servers $words[1] --serverlist 2>/dev/null)"} )
+ fi
_wanted servers expl server compadd -M 'm:{a-z}={A-Z}' -a servers && ret=0
elif [[ $state = verbosity ]]; then
_tags numbers files