enum LSProtocol::PositionEncodingKind

Overview

A set of predefined position encoding kinds.

@since 3.17.0

Defined in:

lsprotocol/types.cr

Enum Members

Utf8 = 0

Character offsets count UTF-8 code units (e.g. bytes).

Utf16 = 1

Character offsets count UTF-16 code units.

This is the default and must always be supported by servers

Utf32 = 2

Character offsets count UTF-32 code units.

Implementation note: these are the same as Unicode codepoints, so this PositionEncodingKind may also be used for an encoding-agnostic representation of character offsets.

Constructors

Instance Method Summary

Constructor Detail

def self.from_json(pull : JSON::PullParser) : self #

[View source]
def self.new(pull : JSON::PullParser) : self #

[View source]
def self.parse(string : String) : self #

[View source]

Instance Method Detail

def to_json(builder : JSON::Builder) #
Description copied from struct Enum

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.


[View source]
def to_s(io : IO) : Nil #
Description copied from struct Enum

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

See also: #to_s.


[View source]
def to_s : String #
Description copied from struct Enum

Returns a String representation of this enum member. In the case of regular enums, this is just the name of the member. In the case of flag enums, it's the names joined by vertical bars, or "None", if the value is zero.

If an enum's value doesn't match a member's value, the raw value is returned as a string.

Color::Red.to_s                     # => "Red"
IOMode::None.to_s                   # => "None"
(IOMode::Read | IOMode::Write).to_s # => "Read | Write"

Color.new(10).to_s # => "10"

[View source]
def utf16? #

[View source]
def utf32? #

[View source]
def utf8? #

[View source]