Class: LanguageServer::Protocol::Interface::InlayHint

Inherits:
Object
  • Object
show all
Defined in:
lib/language_server/protocol/interface/inlay_hint.rb

Overview

Inlay hint information.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(position:, label:, kind: nil, text_edits: nil, tooltip: nil, padding_left: nil, padding_right: nil, data: nil) ⇒ InlayHint

Returns a new instance of InlayHint.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/language_server/protocol/interface/inlay_hint.rb', line 8

def initialize(position:, label:, kind: nil, text_edits: nil, tooltip: nil, padding_left: nil, padding_right: nil, data: nil)
  @attributes = {}

  @attributes[:position] = position
  @attributes[:label] = label
  @attributes[:kind] = kind if kind
  @attributes[:textEdits] = text_edits if text_edits
  @attributes[:tooltip] = tooltip if tooltip
  @attributes[:paddingLeft] = padding_left if padding_left
  @attributes[:paddingRight] = padding_right if padding_right
  @attributes[:data] = data if data

  @attributes.freeze
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



110
111
112
# File 'lib/language_server/protocol/interface/inlay_hint.rb', line 110

def attributes
  @attributes
end

Instance Method Details

#dataLSPAny

A data entry field that is preserved on an inlay hint between a ‘textDocument/inlayHint` and a `inlayHint/resolve` request.

Returns:

  • (LSPAny)


106
107
108
# File 'lib/language_server/protocol/interface/inlay_hint.rb', line 106

def data
  attributes.fetch(:data)
end

#kindInlayHintKind

The kind of this hint. Can be omitted in which case the client should fall back to a reasonable default.

Returns:

  • (InlayHintKind)


47
48
49
# File 'lib/language_server/protocol/interface/inlay_hint.rb', line 47

def kind
  attributes.fetch(:kind)
end

#labelstring | InlayHintLabelPart[]

The label of this hint. A human readable string or an array of InlayHintLabelPart label parts.

Note that neither the string nor the label part can be empty.

Returns:



38
39
40
# File 'lib/language_server/protocol/interface/inlay_hint.rb', line 38

def label
  attributes.fetch(:label)
end

#padding_leftboolean

Render padding before the hint.

Note: Padding should use the editor’s background color, not the background color of the hint itself. That means padding can be used to visually align/separate an inlay hint.

Returns:

  • (boolean)


85
86
87
# File 'lib/language_server/protocol/interface/inlay_hint.rb', line 85

def padding_left
  attributes.fetch(:paddingLeft)
end

#padding_rightboolean

Render padding after the hint.

Note: Padding should use the editor’s background color, not the background color of the hint itself. That means padding can be used to visually align/separate an inlay hint.

Returns:

  • (boolean)


97
98
99
# File 'lib/language_server/protocol/interface/inlay_hint.rb', line 97

def padding_right
  attributes.fetch(:paddingRight)
end

#positionPosition

The position of this hint.

Returns:



27
28
29
# File 'lib/language_server/protocol/interface/inlay_hint.rb', line 27

def position
  attributes.fetch(:position)
end

#text_editsTextEdit[]

Optional text edits that are performed when accepting this inlay hint.

Note that edits are expected to change the document so that the inlay hint (or its nearest variant) is now part of the document and the inlay hint itself is now obsolete.

Depending on the client capability ‘inlayHint.resolveSupport` clients might resolve this property late using the resolve request.

Returns:



62
63
64
# File 'lib/language_server/protocol/interface/inlay_hint.rb', line 62

def text_edits
  attributes.fetch(:textEdits)
end

#to_hashObject



112
113
114
# File 'lib/language_server/protocol/interface/inlay_hint.rb', line 112

def to_hash
  attributes
end

#to_json(*args) ⇒ Object



116
117
118
# File 'lib/language_server/protocol/interface/inlay_hint.rb', line 116

def to_json(*args)
  to_hash.to_json(*args)
end

#tooltipstring | MarkupContent

The tooltip text when you hover over this item.

Depending on the client capability ‘inlayHint.resolveSupport` clients might resolve this property late using the resolve request.

Returns:



73
74
75
# File 'lib/language_server/protocol/interface/inlay_hint.rb', line 73

def tooltip
  attributes.fetch(:tooltip)
end