For speed, I wish to disable everything that a language server (in this case clangd) provides *except* for code completion. I use eglot. How would I do this?
PS: No I don’t want to use lsp-bridge because I want my own custom completion style.
Eglot has a feature that allows you to customize the capabilities of a server. You can use
eglot-server-programs
to do this. Just specify the server and capabilities you want in a cons cell, like(eglot-server-programs '((c++-mode . ("clangd" "--background-index" "--clang-tidy" "--completion-style=detailed"))))
. Here, the--completion-style=detailed
is just an example, replace it with your custom completion style.I’m not sure what you want to disable exactly but you should look at
eglot-ignored-server-capabilities
:For example to disable inlay hints:
(setq eglot-ignored-server-capabilities '(:inlayHintProvider))
.Here is the complete list of server capabilities:
(const :tag "Documentation on hover" :hoverProvider) (const :tag "Code completion" :completionProvider) (const :tag "Function signature help" :signatureHelpProvider) (const :tag "Go to definition" :definitionProvider) (const :tag "Go to type definition" :typeDefinitionProvider) (const :tag "Go to implementation" :implementationProvider) (const :tag "Go to declaration" :declarationProvider) (const :tag "Find references" :referencesProvider) (const :tag "Highlight symbols automatically" :documentHighlightProvider) (const :tag "List symbols in buffer" :documentSymbolProvider) (const :tag "List symbols in workspace" :workspaceSymbolProvider) (const :tag "Execute code actions" :codeActionProvider) (const :tag "Code lens" :codeLensProvider) (const :tag "Format buffer" :documentFormattingProvider) (const :tag "Format portion of buffer" :documentRangeFormattingProvider) (const :tag "On-type formatting" :documentOnTypeFormattingProvider) (const :tag "Rename symbol" :renameProvider) (const :tag "Highlight links in document" :documentLinkProvider) (const :tag "Decorate color references" :colorProvider) (const :tag "Fold regions of buffer" :foldingRangeProvider) (const :tag "Execute custom commands" :executeCommandProvider) (const :tag "Inlay hints" :inlayHintProvider)