enum LSProtocol::InsertTextMode
Overview
How whitespace and indentation is handled during completion item insertion.
@since 3.16.0
Defined in:
lsprotocol/types.crEnum Members
-
AsIs =
1_u32
-
The insertion or replace strings is taken as it is. If the value is multi line the lines below the cursor will be inserted using the indentation defined in the string value. The client will not apply any kind of adjustments to the string.
-
AdjustIndentation =
2_u32
-
The editor adjusts leading whitespace of new lines so that they match the indentation up to the cursor of the line for which the item is accepted.
Consider a line like this: <2tabs>
<3tabs>foo. Accepting a multi line completion item is indented using 2 tabs and all following lines inserted will be indented using 2 tabs as well.
Constructors
Instance Method Summary
- #adjust_indentation?
- #as_is?
-
#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.