diff --git a/internal/lsp/command.go b/internal/lsp/command.go index 98262586c9..f10b69a9b7 100644 --- a/internal/lsp/command.go +++ b/internal/lsp/command.go @@ -6,6 +6,7 @@ package lsp import ( "context" + "fmt" "io" "strings" @@ -17,6 +18,16 @@ import ( ) func (s *Server) executeCommand(ctx context.Context, params *protocol.ExecuteCommandParams) (interface{}, error) { + var found bool + for _, command := range s.session.Options().SupportedCommands { + if command == params.Command { + found = true + break + } + } + if !found { + return nil, fmt.Errorf("unsupported command detected: %s", params.Command) + } switch params.Command { case source.CommandTest: unsaved := false diff --git a/internal/lsp/source/options.go b/internal/lsp/source/options.go index b8fde36b01..6a2424295a 100644 --- a/internal/lsp/source/options.go +++ b/internal/lsp/source/options.go @@ -102,11 +102,12 @@ func DefaultOptions() Options { Sum: {}, }, SupportedCommands: []string{ + CommandGenerate, + CommandRegenerateCgo, CommandTest, CommandTidy, CommandUpgradeDependency, - CommandGenerate, - CommandRegenerateCgo, + CommandVendor, }, }, UserOptions: UserOptions{