enum LSProtocol::InsertTextFormat
Overview
Defines whether the insert text in a completion item should be interpreted as plain text or a snippet.
Defined in:
lsprotocol/types.crEnum Members
-
PlainText =
1_u32
-
The primary text to be inserted is treated as a plain string.
-
Snippet =
2_u32
-
The primary text to be inserted is treated as a snippet.
A snippet can define tab stops and placeholders with
$1
,$2
and${3:foo}
.$0
defines the final tab stop, it defaults to the end of the snippet. Placeholders with equal identifiers are linked, that is typing in one will update others too.See also: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#snippet_syntax
Constructors
Instance Method Summary
- #plain_text?
- #snippet?
-
#to_json(json : JSON::Builder)
Serializes this enum member by name.
Constructor Detail
Instance Method Detail
Serializes this enum member by name.
For non-flags enums, the serialization is a JSON string. The value is the
member name (see #to_s
) transformed with String#underscore
.
enum Stages
INITIAL
SECOND_STAGE
end
Stages::INITIAL.to_json # => %("initial")
Stages::SECOND_STAGE.to_json # => %("second_stage")
For flags enums, the serialization is a JSON array including every flagged
member individually serialized in the same way as a member of a non-flags enum.
None
is serialized as an empty array, All
as an array containing
all members.
@[Flags]
enum Sides
LEFT
RIGHT
end
Sides::LEFT.to_json # => %(["left"])
(Sides::LEFT | Sides::RIGHT).to_json # => %(["left","right"])
Sides::All.to_json # => %(["left","right"])
Sides::None.to_json # => %([])
ValueConverter.to_json
offers a different serialization strategy based on the
member value.