# codegen: do not edit defmodule GenLSP.Structures.ParameterInformation do @moduledoc """ Represents a parameter of a callable-signature. A parameter can have a label and a doc-comment. """ import Schematic, warn: false use TypedStruct @doc """ ## Fields * label: The label of this parameter information. Either a string or an inclusive start and exclusive end offsets within its containing signature label. (see SignatureInformation.label). The offsets are based on a UTF-16 string representation as `Position` and `Range` does. *Note*: a label of type string should be a substring of its containing signature label. Its intended use case is to highlight the parameter label part in the `SignatureInformation.label`. * documentation: The human-readable doc-comment of this parameter. Will be shown in the UI but can be omitted. """ @derive Jason.Encoder typedstruct do field :label, String.t() | {GenLSP.BaseTypes.uinteger(), GenLSP.BaseTypes.uinteger()}, enforce: true field :documentation, String.t() | GenLSP.Structures.MarkupContent.t() end @doc false @spec schematic() :: Schematic.t() def schematic() do schema(__MODULE__, %{ {"label", :label} => oneof([str(), tuple([int(), int()], from: :list)]), optional({"documentation", :documentation}) => oneof([str(), GenLSP.Structures.MarkupContent.schematic()]) }) end end