# codegen: do not edit defmodule GenLSP.Structures.InlayHint do @moduledoc """ Inlay hint information. @since 3.17.0 """ import Schematic, warn: false use TypedStruct @doc """ ## Fields * position: The position of this hint. * label: The label of this hint. A human readable string or an array of InlayHintLabelPart label parts. *Note* that neither the string nor the label part can be empty. * kind: The kind of this hint. Can be omitted in which case the client should fall back to a reasonable default. * text_edits: Optional text edits that are performed when accepting this inlay hint. *Note* that edits are expected to change the document so that the inlay hint (or its nearest variant) is now part of the document and the inlay hint itself is now obsolete. * tooltip: The tooltip text when you hover over this item. * padding_left: Render padding before the hint. Note: Padding should use the editor's background color, not the background color of the hint itself. That means padding can be used to visually align/separate an inlay hint. * padding_right: Render padding after the hint. Note: Padding should use the editor's background color, not the background color of the hint itself. That means padding can be used to visually align/separate an inlay hint. * data: A data entry field that is preserved on an inlay hint between a `textDocument/inlayHint` and a `inlayHint/resolve` request. """ @derive Jason.Encoder typedstruct do field :position, GenLSP.Structures.Position.t(), enforce: true field :label, String.t() | list(GenLSP.Structures.InlayHintLabelPart.t()), enforce: true field :kind, GenLSP.Enumerations.InlayHintKind.t() field :text_edits, list(GenLSP.Structures.TextEdit.t()) field :tooltip, String.t() | GenLSP.Structures.MarkupContent.t() field :padding_left, boolean() field :padding_right, boolean() field :data, GenLSP.TypeAlias.LSPAny.t() end @doc false @spec schematic() :: Schematic.t() def schematic() do schema(__MODULE__, %{ {"position", :position} => GenLSP.Structures.Position.schematic(), {"label", :label} => oneof([str(), list(GenLSP.Structures.InlayHintLabelPart.schematic())]), optional({"kind", :kind}) => GenLSP.Enumerations.InlayHintKind.schematic(), optional({"textEdits", :text_edits}) => list(GenLSP.Structures.TextEdit.schematic()), optional({"tooltip", :tooltip}) => oneof([str(), GenLSP.Structures.MarkupContent.schematic()]), optional({"paddingLeft", :padding_left}) => bool(), optional({"paddingRight", :padding_right}) => bool(), optional({"data", :data}) => GenLSP.TypeAlias.LSPAny.schematic() }) end end