From e118bde5c8965e623797741286e1106beaed2b82 Mon Sep 17 00:00:00 2001 From: EmilySeville7cfg Date: Fri, 26 Nov 2021 17:36:26 +1000 Subject: [PATCH] Enhance cmdkey completion: - error fixes - more accurate hints --- share/completions/cmdkey.fish | 39 +++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/share/completions/cmdkey.fish b/share/completions/cmdkey.fish index adf20554a..a31cfbe86 100644 --- a/share/completions/cmdkey.fish +++ b/share/completions/cmdkey.fish @@ -1,21 +1,34 @@ function __cmdkey_generate_args --description 'Function to generate args' - if not __fish_seen_argument --windows 'add' --windows 'generic' - echo -e '/add\tAdd a user name and password to the list -/generic\tAdd generic credentials to the list' - end + set --local current_token (commandline --current-token --cut-at-cursor) + set --local previous_token (commandline --tokenize --cut-at-cursor)[-1] - if not __fish_seen_argument --windows 'smartcard' --windows 'user' - echo -e '/smartcard\tRetrieve the credential from a smart card + switch $current_token + case '/user:*' + __fish_list_windows_users + case '*' + if test "$previous_token" = '/delete' + echo -e '/ras\tDelete remote access entry' + return + end + + if not __fish_seen_argument --windows 'add:' --windows 'generic:' + echo -e '/add:\tAdd a user name and password to the list +/generic:\tAdd generic credentials to the list' + end + + if not __fish_seen_argument --windows 'smartcard' --windows 'user:' + echo -e '/smartcard\tRetrieve the credential from a smart card /user:\tSpecify the user or account name to store with this entry' - end - - if __fish_seen_argument --windows 'user' - echo -e '/pass\tSpecify the password to store with this entry' - end - - echo -e '/delete\tDelete a user name and password from the list + end + + if __fish_seen_argument --windows 'user:' + echo -e '/pass:\tSpecify the password to store with this entry' + end + + echo -e '/delete\tDelete a user name and password from the list /list:\tDisplay the list of stored user names and credentials /?\tShow help' + end end complete --command cmdkey --no-files --arguments '(__cmdkey_generate_args)'