enum

LSProtocol::InsertTextMode

Inherits Enum / Comparable / Value / Object

How whitespace and indentation is handled during completion item insertion.

@since 3.16.0

Constants

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: &lt;2tabs&gt;<cursor>&lt;3tabs&gt;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

from_json(pull : JSON::PullParser) : self
Source
new(pull : JSON::PullParser) : self
Source

Instance methods

adjust_indentation?

Returns true if this enum value equals AdjustIndentation

Source
as_is?

Returns true if this enum value equals AsIs

Source
to_json(json : JSON::Builder)

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      # =&gt; %(&quot;initial&quot;)
Stages::SECOND_STAGE.to_json # =&gt; %(&quot;second_stage&quot;)

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                  # =&gt; %([&quot;left&quot;])
(Sides::LEFT | Sides::RIGHT).to_json # =&gt; %([&quot;left&quot;,&quot;right&quot;])
Sides::All.to_json                   # =&gt; %([&quot;left&quot;,&quot;right&quot;])
Sides::None.to_json                  # =&gt; %([])

ValueConverter.to_json offers a different serialization strategy based on the member value.

Source