enum

LSProtocol::UniquenessLevel

Inherits Enum / Comparable / Value / Object

Moniker uniqueness level to define scope of the moniker.

@since 3.16.0

Constants

Document = 0

The moniker is only unique inside a document

Project = 1

The moniker is unique inside a project for which a dump got created

Group = 2

The moniker is unique inside the group to which a project belongs

Scheme = 3

The moniker is unique inside the moniker scheme.

Global = 4

The moniker is globally unique

Constructors

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

Instance methods

document?

Returns true if this enum value equals Document

Source
global?

Returns true if this enum value equals Global

Source
group?

Returns true if this enum value equals Group

Source
project?

Returns true if this enum value equals Project

Source
scheme?

Returns true if this enum value equals Scheme

Source
to_json(builder : 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
to_s(io : IO) : Nil

Appends a String representation of this enum member to the given io.

See also: to_s.

Source