From d893476f291f1a4e83b27643b861ea5506ca0d45 Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Tue, 22 Jun 2021 13:47:36 +0100 Subject: [PATCH] Mock out code lens support Because it is not trivial to omit codeLens support from the server capabilities with gopls' LSP structs, we just pretend that we support it but don't return any. --- internal/langserver/handlers/code_lens.go | 12 ++++++++++++ internal/langserver/handlers/initialize.go | 1 + internal/langserver/handlers/service.go | 8 ++++++++ 3 files changed, 21 insertions(+) create mode 100644 internal/langserver/handlers/code_lens.go diff --git a/internal/langserver/handlers/code_lens.go b/internal/langserver/handlers/code_lens.go new file mode 100644 index 00000000..2f6c7f8e --- /dev/null +++ b/internal/langserver/handlers/code_lens.go @@ -0,0 +1,12 @@ +package handlers + +import ( + "context" + + lsp "github.com/hashicorp/terraform-ls/internal/protocol" +) + +func (h *logHandler) TextDocumentCodeLens(ctx context.Context, params lsp.CodeLensParams) ([]lsp.CodeLens, error) { + // TODO: Implement code lens + return []lsp.CodeLens{}, nil +} diff --git a/internal/langserver/handlers/initialize.go b/internal/langserver/handlers/initialize.go index 359d8400..0cc50302 100644 --- a/internal/langserver/handlers/initialize.go +++ b/internal/langserver/handlers/initialize.go @@ -24,6 +24,7 @@ func (lh *logHandler) Initialize(ctx context.Context, params lsp.InitializeParam CompletionProvider: lsp.CompletionOptions{ ResolveProvider: false, }, + CodeLensProvider: lsp.CodeLensOptions{}, HoverProvider: true, DocumentFormattingProvider: true, DocumentSymbolProvider: true, diff --git a/internal/langserver/handlers/service.go b/internal/langserver/handlers/service.go index b6cd0f4b..93f263df 100644 --- a/internal/langserver/handlers/service.go +++ b/internal/langserver/handlers/service.go @@ -256,6 +256,14 @@ func (svc *service) Assigner() (jrpc2.Assigner, error) { return handle(ctx, req, lh.TextDocumentHover) }, + "textDocument/codeLens": func(ctx context.Context, req *jrpc2.Request) (interface{}, error) { + err := session.CheckInitializationIsConfirmed() + if err != nil { + return nil, err + } + + return handle(ctx, req, lh.TextDocumentCodeLens) + }, "textDocument/formatting": func(ctx context.Context, req *jrpc2.Request) (interface{}, error) { err := session.CheckInitializationIsConfirmed() if err != nil {