# codegen: do not edit defmodule GenLSP.Structures.FoldingRangeClientCapabilities do import Schematic, warn: false use TypedStruct @doc """ ## Fields * dynamic_registration: Whether implementation supports dynamic registration for folding range providers. If this is set to `true` the client supports the new `FoldingRangeRegistrationOptions` return value for the corresponding server capability as well. * range_limit: The maximum number of folding ranges that the client prefers to receive per document. The value serves as a hint, servers are free to follow the limit. * line_folding_only: If set, the client signals that it only supports folding complete lines. If set, client will ignore specified `startCharacter` and `endCharacter` properties in a FoldingRange. * folding_range_kind: Specific options for the folding range kind. @since 3.17.0 * folding_range: Specific options for the folding range. @since 3.17.0 """ @derive Jason.Encoder typedstruct do field :dynamic_registration, boolean() field :range_limit, GenLSP.BaseTypes.uinteger() field :line_folding_only, boolean() field :folding_range_kind, map() field :folding_range, map() end @doc false @spec schematic() :: Schematic.t() def schematic() do schema(__MODULE__, %{ {"dynamicRegistration", :dynamic_registration} => oneof([null(), bool()]), {"rangeLimit", :range_limit} => oneof([null(), int()]), {"lineFoldingOnly", :line_folding_only} => oneof([null(), bool()]), {"foldingRangeKind", :folding_range_kind} => oneof([ null(), map(%{ {"valueSet", :value_set} => oneof([null(), list(GenLSP.Enumerations.FoldingRangeKind.schematic())]) }) ]), {"foldingRange", :folding_range} => oneof([ null(), map(%{ {"collapsedText", :collapsed_text} => oneof([null(), bool()]) }) ]) }) end end