mirror of
https://github.com/wavetermdev/inshellisense.git
synced 2026-08-05 13:43:30 -07:00
fix: bad arg recommendation logic
Signed-off-by: cpendery <cpendery@vt.edu>
This commit is contained in:
+13
-17
@@ -84,25 +84,23 @@ func getPersistentTokens(tokens []model.ProcessedToken) []model.ProcessedToken {
|
||||
return persistentTokens
|
||||
}
|
||||
|
||||
func getSubcommandDrivenRecommendation(spec model.Subcommand, persistentOptions []model.Option, partialCmd *commandToken, onlyRecommendSubcommands bool, noSubcommandOptionRecommendations bool, acceptedTokens []model.ProcessedToken) model.TermSuggestions {
|
||||
func getSubcommandDrivenRecommendation(spec model.Subcommand, persistentOptions []model.Option, partialCmd *commandToken, argsDepleted bool, argsFromSubcommand bool, acceptedTokens []model.ProcessedToken) model.TermSuggestions {
|
||||
suggestions := []model.TermSuggestion{}
|
||||
allOptions := append(spec.Options, persistentOptions...)
|
||||
|
||||
if onlyRecommendSubcommands {
|
||||
if !noSubcommandOptionRecommendations {
|
||||
getSubcommandDrivenRecommendations(spec, &suggestions)
|
||||
if argsDepleted && argsFromSubcommand {
|
||||
return model.TermSuggestions{
|
||||
Suggestions: suggestions,
|
||||
}
|
||||
} else {
|
||||
if len(spec.Args) != 0 {
|
||||
activeArg := spec.Args[0]
|
||||
getSuggestionDrivenRecommendations(activeArg.Suggestions, &suggestions)
|
||||
getTemplateDrivenRecommendations(activeArg.Templates, &suggestions)
|
||||
}
|
||||
if !noSubcommandOptionRecommendations {
|
||||
getSubcommandDrivenRecommendations(spec, &suggestions)
|
||||
getOptionDrivenRecommendations(allOptions, &suggestions)
|
||||
}
|
||||
|
||||
}
|
||||
if len(spec.Args) != 0 {
|
||||
activeArg := spec.Args[0]
|
||||
getSuggestionDrivenRecommendations(activeArg.Suggestions, &suggestions)
|
||||
getTemplateDrivenRecommendations(activeArg.Templates, &suggestions)
|
||||
}
|
||||
if !argsFromSubcommand {
|
||||
getSubcommandDrivenRecommendations(spec, &suggestions)
|
||||
getOptionDrivenRecommendations(allOptions, &suggestions)
|
||||
}
|
||||
|
||||
removeDuplicateRecommendation(&suggestions, acceptedTokens)
|
||||
@@ -154,8 +152,6 @@ func getArgDrivenRecommendation(args []model.Arg, spec model.Subcommand, persist
|
||||
}
|
||||
}
|
||||
|
||||
// argsUsed
|
||||
|
||||
func handleSubcommand(tokens []commandToken, spec model.Subcommand, persistentOptions []model.Option, argsDepleted, argsUsed bool, acceptedTokens []model.ProcessedToken) (suggestions model.TermSuggestions) {
|
||||
if len(tokens) == 0 {
|
||||
return getSubcommandDrivenRecommendation(spec, persistentOptions, nil, argsDepleted, argsUsed, acceptedTokens)
|
||||
|
||||
Reference in New Issue
Block a user