about summary refs log tree commit diff
path: root/Completion/Unix/Command/_mosh
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command/_mosh')
-rw-r--r--Completion/Unix/Command/_mosh32
1 files changed, 23 insertions, 9 deletions
diff --git a/Completion/Unix/Command/_mosh b/Completion/Unix/Command/_mosh
index c940f9015..dacbd1018 100644
--- a/Completion/Unix/Command/_mosh
+++ b/Completion/Unix/Command/_mosh
@@ -1,12 +1,26 @@
 #compdef mosh
 
+local curcontext="$curcontext" state line
+local -a suf
+
 _arguments \
-  '--client=:client helper:_command_names -e' \
-  '--server=:server helper:_files' \
-  '--ssh=:ssh command to run:_files' \
-  '(-a -n)--predict=:when:(adaptive always never)' \
-  '(--predict -n)-a[predict always]' \
-  '(--predict -a)-n[predict never]' \
-  {-p,--port=}':port:_ports' \
-  ':remote:_hosts' \
-  ':remote command:_command_names -e'
+  '(-)--help[display help information]' \
+  '(-)--version[display version information]' \
+  "--no-init[don't set terminal init string]" \
+  '--ssh=[specify ssh command to setup session]:ssh command:_normal' \
+  '--port=[specify server-side port range]:port:_sequence -n 2 -s \: _ports' \
+  '(-a -n)--predict=[control speculative local echo]:mode:(adaptive always never)' \
+  '(--predict -n)-a[synonym for --predict=always]' \
+  '(--predict -a)-n[synonym for --predict=never]' \
+  '--server[specify command to run server helper]:remote file:_files' \
+  '--client[specify command to run client helper]:_command_names -e' \
+  '1:remote host name:->userhost' \
+  '*:::args:_normal' && return
+
+case $state in
+  userhost)
+    _hosts || _user_at_host && return
+  ;;
+esac
+
+return 1