# codegen: do not edit defmodule GenLSP.Structures.DocumentSymbolClientCapabilities do @moduledoc """ Client Capabilities for a {@link DocumentSymbolRequest}. """ import Schematic, warn: false use TypedStruct @doc """ ## Fields * dynamic_registration: Whether document symbol supports dynamic registration. * symbol_kind: Specific capabilities for the `SymbolKind` in the `textDocument/documentSymbol` request. * hierarchical_document_symbol_support: The client supports hierarchical document symbols. * tag_support: The client supports tags on `SymbolInformation`. Tags are supported on `DocumentSymbol` if `hierarchicalDocumentSymbolSupport` is set to true. Clients supporting tags have to handle unknown tags gracefully. @since 3.16.0 * label_support: The client supports an additional label presented in the UI when registering a document symbol provider. @since 3.16.0 """ @derive Jason.Encoder typedstruct do field :dynamic_registration, boolean() field :symbol_kind, map() field :hierarchical_document_symbol_support, boolean() field :tag_support, map() field :label_support, boolean() end @doc false @spec schematic() :: Schematic.t() def schematic() do schema(__MODULE__, %{ optional({"dynamicRegistration", :dynamic_registration}) => bool(), optional({"symbolKind", :symbol_kind}) => map(%{ optional({"valueSet", :value_set}) => list(GenLSP.Enumerations.SymbolKind.schematic()) }), optional({"hierarchicalDocumentSymbolSupport", :hierarchical_document_symbol_support}) => bool(), optional({"tagSupport", :tag_support}) => map(%{ {"valueSet", :value_set} => list(GenLSP.Enumerations.SymbolTag.schematic()) }), optional({"labelSupport", :label_support}) => bool() }) end end