# codegen: do not edit defmodule GenLSP.Structures.TextDocumentClientCapabilities do @moduledoc """ Text document specific client capabilities. """ import Schematic, warn: false use TypedStruct @doc """ ## Fields * synchronization: Defines which synchronization capabilities the client supports. * completion: Capabilities specific to the `textDocument/completion` request. * hover: Capabilities specific to the `textDocument/hover` request. * signature_help: Capabilities specific to the `textDocument/signatureHelp` request. * declaration: Capabilities specific to the `textDocument/declaration` request. @since 3.14.0 * definition: Capabilities specific to the `textDocument/definition` request. * type_definition: Capabilities specific to the `textDocument/typeDefinition` request. @since 3.6.0 * implementation: Capabilities specific to the `textDocument/implementation` request. @since 3.6.0 * references: Capabilities specific to the `textDocument/references` request. * document_highlight: Capabilities specific to the `textDocument/documentHighlight` request. * document_symbol: Capabilities specific to the `textDocument/documentSymbol` request. * code_action: Capabilities specific to the `textDocument/codeAction` request. * code_lens: Capabilities specific to the `textDocument/codeLens` request. * document_link: Capabilities specific to the `textDocument/documentLink` request. * color_provider: Capabilities specific to the `textDocument/documentColor` and the `textDocument/colorPresentation` request. @since 3.6.0 * formatting: Capabilities specific to the `textDocument/formatting` request. * range_formatting: Capabilities specific to the `textDocument/rangeFormatting` request. * on_type_formatting: Capabilities specific to the `textDocument/onTypeFormatting` request. * rename: Capabilities specific to the `textDocument/rename` request. * folding_range: Capabilities specific to the `textDocument/foldingRange` request. @since 3.10.0 * selection_range: Capabilities specific to the `textDocument/selectionRange` request. @since 3.15.0 * publish_diagnostics: Capabilities specific to the `textDocument/publishDiagnostics` notification. * call_hierarchy: Capabilities specific to the various call hierarchy requests. @since 3.16.0 * semantic_tokens: Capabilities specific to the various semantic token request. @since 3.16.0 * linked_editing_range: Capabilities specific to the `textDocument/linkedEditingRange` request. @since 3.16.0 * moniker: Client capabilities specific to the `textDocument/moniker` request. @since 3.16.0 * type_hierarchy: Capabilities specific to the various type hierarchy requests. @since 3.17.0 * inline_value: Capabilities specific to the `textDocument/inlineValue` request. @since 3.17.0 * inlay_hint: Capabilities specific to the `textDocument/inlayHint` request. @since 3.17.0 * diagnostic: Capabilities specific to the diagnostic pull model. @since 3.17.0 """ @derive Jason.Encoder typedstruct do field :synchronization, GenLSP.Structures.TextDocumentSyncClientCapabilities.t() field :completion, GenLSP.Structures.CompletionClientCapabilities.t() field :hover, GenLSP.Structures.HoverClientCapabilities.t() field :signature_help, GenLSP.Structures.SignatureHelpClientCapabilities.t() field :declaration, GenLSP.Structures.DeclarationClientCapabilities.t() field :definition, GenLSP.Structures.DefinitionClientCapabilities.t() field :type_definition, GenLSP.Structures.TypeDefinitionClientCapabilities.t() field :implementation, GenLSP.Structures.ImplementationClientCapabilities.t() field :references, GenLSP.Structures.ReferenceClientCapabilities.t() field :document_highlight, GenLSP.Structures.DocumentHighlightClientCapabilities.t() field :document_symbol, GenLSP.Structures.DocumentSymbolClientCapabilities.t() field :code_action, GenLSP.Structures.CodeActionClientCapabilities.t() field :code_lens, GenLSP.Structures.CodeLensClientCapabilities.t() field :document_link, GenLSP.Structures.DocumentLinkClientCapabilities.t() field :color_provider, GenLSP.Structures.DocumentColorClientCapabilities.t() field :formatting, GenLSP.Structures.DocumentFormattingClientCapabilities.t() field :range_formatting, GenLSP.Structures.DocumentRangeFormattingClientCapabilities.t() field :on_type_formatting, GenLSP.Structures.DocumentOnTypeFormattingClientCapabilities.t() field :rename, GenLSP.Structures.RenameClientCapabilities.t() field :folding_range, GenLSP.Structures.FoldingRangeClientCapabilities.t() field :selection_range, GenLSP.Structures.SelectionRangeClientCapabilities.t() field :publish_diagnostics, GenLSP.Structures.PublishDiagnosticsClientCapabilities.t() field :call_hierarchy, GenLSP.Structures.CallHierarchyClientCapabilities.t() field :semantic_tokens, GenLSP.Structures.SemanticTokensClientCapabilities.t() field :linked_editing_range, GenLSP.Structures.LinkedEditingRangeClientCapabilities.t() field :moniker, GenLSP.Structures.MonikerClientCapabilities.t() field :type_hierarchy, GenLSP.Structures.TypeHierarchyClientCapabilities.t() field :inline_value, GenLSP.Structures.InlineValueClientCapabilities.t() field :inlay_hint, GenLSP.Structures.InlayHintClientCapabilities.t() field :diagnostic, GenLSP.Structures.DiagnosticClientCapabilities.t() end @doc false @spec schematic() :: Schematic.t() def schematic() do schema(__MODULE__, %{ optional({"synchronization", :synchronization}) => GenLSP.Structures.TextDocumentSyncClientCapabilities.schematic(), optional({"completion", :completion}) => GenLSP.Structures.CompletionClientCapabilities.schematic(), optional({"hover", :hover}) => GenLSP.Structures.HoverClientCapabilities.schematic(), optional({"signatureHelp", :signature_help}) => GenLSP.Structures.SignatureHelpClientCapabilities.schematic(), optional({"declaration", :declaration}) => GenLSP.Structures.DeclarationClientCapabilities.schematic(), optional({"definition", :definition}) => GenLSP.Structures.DefinitionClientCapabilities.schematic(), optional({"typeDefinition", :type_definition}) => GenLSP.Structures.TypeDefinitionClientCapabilities.schematic(), optional({"implementation", :implementation}) => GenLSP.Structures.ImplementationClientCapabilities.schematic(), optional({"references", :references}) => GenLSP.Structures.ReferenceClientCapabilities.schematic(), optional({"documentHighlight", :document_highlight}) => GenLSP.Structures.DocumentHighlightClientCapabilities.schematic(), optional({"documentSymbol", :document_symbol}) => GenLSP.Structures.DocumentSymbolClientCapabilities.schematic(), optional({"codeAction", :code_action}) => GenLSP.Structures.CodeActionClientCapabilities.schematic(), optional({"codeLens", :code_lens}) => GenLSP.Structures.CodeLensClientCapabilities.schematic(), optional({"documentLink", :document_link}) => GenLSP.Structures.DocumentLinkClientCapabilities.schematic(), optional({"colorProvider", :color_provider}) => GenLSP.Structures.DocumentColorClientCapabilities.schematic(), optional({"formatting", :formatting}) => GenLSP.Structures.DocumentFormattingClientCapabilities.schematic(), optional({"rangeFormatting", :range_formatting}) => GenLSP.Structures.DocumentRangeFormattingClientCapabilities.schematic(), optional({"onTypeFormatting", :on_type_formatting}) => GenLSP.Structures.DocumentOnTypeFormattingClientCapabilities.schematic(), optional({"rename", :rename}) => GenLSP.Structures.RenameClientCapabilities.schematic(), optional({"foldingRange", :folding_range}) => GenLSP.Structures.FoldingRangeClientCapabilities.schematic(), optional({"selectionRange", :selection_range}) => GenLSP.Structures.SelectionRangeClientCapabilities.schematic(), optional({"publishDiagnostics", :publish_diagnostics}) => GenLSP.Structures.PublishDiagnosticsClientCapabilities.schematic(), optional({"callHierarchy", :call_hierarchy}) => GenLSP.Structures.CallHierarchyClientCapabilities.schematic(), optional({"semanticTokens", :semantic_tokens}) => GenLSP.Structures.SemanticTokensClientCapabilities.schematic(), optional({"linkedEditingRange", :linked_editing_range}) => GenLSP.Structures.LinkedEditingRangeClientCapabilities.schematic(), optional({"moniker", :moniker}) => GenLSP.Structures.MonikerClientCapabilities.schematic(), optional({"typeHierarchy", :type_hierarchy}) => GenLSP.Structures.TypeHierarchyClientCapabilities.schematic(), optional({"inlineValue", :inline_value}) => GenLSP.Structures.InlineValueClientCapabilities.schematic(), optional({"inlayHint", :inlay_hint}) => GenLSP.Structures.InlayHintClientCapabilities.schematic(), optional({"diagnostic", :diagnostic}) => GenLSP.Structures.DiagnosticClientCapabilities.schematic() }) end end