From ad67838c453c03b0f3374b5620e350ea7c547464 Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Tue, 22 Jun 2021 14:05:29 +0100 Subject: [PATCH] Mock out code lens support (#561) 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 000000000..2f6c7f8ee --- /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 359d84001..0cc503025 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 b6cd0f4b8..93f263df8 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 {