Function: eglot-client-capabilities
eglot-client-capabilities is a byte-compiled function defined in
eglot.el.gz.
Signature
(eglot-client-capabilities SERVER)
Documentation
What the Eglot LSP client supports for SERVER.
Implementations
(eglot-client-capabilities S) in `eglot.el'.
Undocumented
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/eglot.el.gz
(cl-defgeneric eglot-client-capabilities (server)
"What the Eglot LSP client supports for SERVER."
(:method (s)
(list
:workspace (list
:applyEdit t
:executeCommand `(:dynamicRegistration :json-false)
:workspaceEdit `(:documentChanges t)
:didChangeWatchedFiles
`(:dynamicRegistration
,(if (eglot--trampish-p s) :json-false t))
:symbol `(:dynamicRegistration :json-false)
:configuration t
:workspaceFolders t)
:textDocument
(list
:synchronization (list
:dynamicRegistration :json-false
:willSave t :willSaveWaitUntil t :didSave t)
:completion (list :dynamicRegistration :json-false
:completionItem
`(:snippetSupport
,(if (and
(not (eglot--stay-out-of-p 'yasnippet))
(eglot--snippet-expansion-fn))
t
:json-false)
:deprecatedSupport t
:resolveSupport (:properties
["documentation"
"details"
"additionalTextEdits"])
:tagSupport (:valueSet [1]))
:contextSupport t)
:hover (list :dynamicRegistration :json-false
:contentFormat
(if (fboundp 'gfm-view-mode)
["markdown" "plaintext"]
["plaintext"]))
:signatureHelp (list :dynamicRegistration :json-false
:signatureInformation
`(:parameterInformation
(:labelOffsetSupport t)
:activeParameterSupport t))
:references `(:dynamicRegistration :json-false)
:definition (list :dynamicRegistration :json-false
:linkSupport t)
:declaration (list :dynamicRegistration :json-false
:linkSupport t)
:implementation (list :dynamicRegistration :json-false
:linkSupport t)
:typeDefinition (list :dynamicRegistration :json-false
:linkSupport t)
:documentSymbol (list
:dynamicRegistration :json-false
:hierarchicalDocumentSymbolSupport t
:symbolKind `(:valueSet
[,@(mapcar
#'car eglot--symbol-kind-names)]))
:documentHighlight `(:dynamicRegistration :json-false)
:codeAction (list
:dynamicRegistration :json-false
:codeActionLiteralSupport
'(:codeActionKind
(:valueSet
["quickfix"
"refactor" "refactor.extract"
"refactor.inline" "refactor.rewrite"
"source" "source.organizeImports"]))
:isPreferredSupport t)
:formatting `(:dynamicRegistration :json-false)
:rangeFormatting `(:dynamicRegistration :json-false)
:rename `(:dynamicRegistration :json-false)
:inlayHint `(:dynamicRegistration :json-false)
:publishDiagnostics (list :relatedInformation :json-false
;; TODO: We can support :codeDescription after
;; adding an appropriate UI to
;; Flymake.
:codeDescriptionSupport :json-false
:tagSupport
`(:valueSet
[,@(mapcar
#'car eglot--tag-faces)])))
:window `(:workDoneProgress t)
:general (list :positionEncodings ["utf-32" "utf-8" "utf-16"])
:experimental eglot--{})))