enum

LSP::TextDocumentSyncKind

Inherits Enum < Comparable < Value < Object

Constants

None = 0

Documents should not be synced at all.

Full = 1

Documents are synced by always sending the full content of the document.

Incremental = 2

Documents are synced by sending the full content on open. After that only incremental updates to the document are send.

Constructors

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

Instance methods

full?

Returns true if this enum value equals Full

Source
incremental?

Returns true if this enum value equals Incremental

Source
none?

Returns true if this enum value equals None

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      # => %("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.

Source