X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=cmd%2Fmicro%2Fautocomplete.go;h=47aeca7344821599c1eeec04dceec401aa3bcb44;hb=37ae99ccd9b7b3a658a2e773af74ca08c88c0d07;hp=941f0fc596335d71226fb46080da89975ca42249;hpb=ea4d822923684a8542ac416ca7a36633be1ba87b;p=micro.git diff --git a/cmd/micro/autocomplete.go b/cmd/micro/autocomplete.go index 941f0fc5..47aeca73 100644 --- a/cmd/micro/autocomplete.go +++ b/cmd/micro/autocomplete.go @@ -18,12 +18,14 @@ var pluginCompletions []func(string) []string func FileComplete(input string) (string, []string) { var sep string = string(os.PathSeparator) dirs := strings.Split(input, sep) + var files []os.FileInfo var err error if len(dirs) > 1 { home, _ := homedir.Dir() - directories := strings.Join(dirs[:len(dirs)-1], sep) + directories := strings.Join(dirs[:len(dirs)-1], sep) + sep + if strings.HasPrefix(directories, "~") { directories = strings.Replace(directories, "~", home, 1) } @@ -31,6 +33,7 @@ func FileComplete(input string) (string, []string) { } else { files, err = ioutil.ReadDir(".") } + var suggestions []string if err != nil { return "", suggestions @@ -81,9 +84,9 @@ func CommandComplete(input string) (string, []string) { func HelpComplete(input string) (string, []string) { var suggestions []string - for _, topic := range helpFiles { + for _, file := range ListRuntimeFiles(RTHelp) { + topic := file.Name() if strings.HasPrefix(topic, input) { - suggestions = append(suggestions, topic) } } @@ -146,3 +149,29 @@ func PluginComplete(complete Completion, input string) (chosen string, suggestio } return } + +func PluginCmdComplete(input string) (chosen string, suggestions []string) { + for _, cmd := range []string{"install", "remove", "search", "update", "list"} { + if strings.HasPrefix(cmd, input) { + suggestions = append(suggestions, cmd) + } + } + + if len(suggestions) == 1 { + chosen = suggestions[0] + } + return chosen, suggestions +} + +func PluginNameComplete(input string) (chosen string, suggestions []string) { + for _, pp := range GetAllPluginPackages() { + if strings.HasPrefix(pp.Name, input) { + suggestions = append(suggestions, pp.Name) + } + } + + if len(suggestions) == 1 { + chosen = suggestions[0] + } + return chosen, suggestions +}