about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
Diffstat (limited to 'Completion')
-rw-r--r--Completion/User/_my_accounts2
-rw-r--r--Completion/User/_other_accounts2
-rw-r--r--Completion/User/_user@host15
3 files changed, 17 insertions, 2 deletions
diff --git a/Completion/User/_my_accounts b/Completion/User/_my_accounts
index 91ab88cc1..2d3261d2a 100644
--- a/Completion/User/_my_accounts
+++ b/Completion/User/_my_accounts
@@ -11,4 +11,4 @@ else
   accounts_users_hosts=( $my_accounts )
 fi
 
-_user@host
+_user@host "$@"
diff --git a/Completion/User/_other_accounts b/Completion/User/_other_accounts
index e1d357fc0..572db38c7 100644
--- a/Completion/User/_other_accounts
+++ b/Completion/User/_other_accounts
@@ -11,4 +11,4 @@ else
   accounts_users_hosts=( $other_accounts )
 fi
 
-_user@host
+_user@host "$@"
diff --git a/Completion/User/_user@host b/Completion/User/_user@host
new file mode 100644
index 000000000..6006ef63b
--- /dev/null
+++ b/Completion/User/_user@host
@@ -0,0 +1,15 @@
+#autoload
+
+local expl nm="$compstate[nmatches]"
+
+if [[ -prefix 1 *@ ]]; then
+  local user=${PREFIX/@}
+  compset -P 1 '*@'
+  _description expl "hostnames for $user"
+  _combination accounts_users_hosts users="$user" hosts "$expl[@]" "$@"
+else
+  _description expl "usernames"
+  _combination accounts_users_hosts users -S@ -q "$expl[@]" "$@"
+fi
+
+[[ nm -ne compstate[nmatches] ]]