Class: LanguageServer::Protocol::Interface::CompletionItem

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(label:, kind: nil, detail: nil, documentation: nil, sort_text: nil, filter_text: nil, insert_text: nil, insert_text_format: nil, text_edit: nil, additional_text_edits: nil, command: nil, data: nil) ⇒ CompletionItem

Returns a new instance of CompletionItem.



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

def initialize(label:, kind: nil, detail: nil, documentation: nil, sort_text: nil, filter_text: nil, insert_text: nil, insert_text_format: nil, text_edit: nil, additional_text_edits: nil, command: nil, data: nil)
  @attributes = {}

  @attributes[:label] = label
  @attributes[:kind] = kind if kind
  @attributes[:detail] = detail if detail
  @attributes[:documentation] = documentation if documentation
  @attributes[:sortText] = sort_text if sort_text
  @attributes[:filterText] = filter_text if filter_text
  @attributes[:insertText] = insert_text if insert_text
  @attributes[:insertTextFormat] = insert_text_format if insert_text_format
  @attributes[:textEdit] = text_edit if text_edit
  @attributes[:additionalTextEdits] = additional_text_edits if additional_text_edits
  @attributes[:command] = command if command
  @attributes[:data] = data if data

  @attributes.freeze
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



137
138
139
# File 'lib/language_server/protocol/interface/completion_item.rb', line 137

def attributes
  @attributes
end

Instance Method Details

#additional_text_editsTextEdit[]

An optional array of additional text edits that are applied when selecting this completion. Edits must not overlap with the main edit nor with themselves.

Returns:



114
115
116
# File 'lib/language_server/protocol/interface/completion_item.rb', line 114

def additional_text_edits
  attributes.fetch(:additionalTextEdits)
end

#commandCommand

An optional command that is executed after inserting this completion. Note that additional modifications to the current document should be described with the additionalTextEdits-property.

Returns:



124
125
126
# File 'lib/language_server/protocol/interface/completion_item.rb', line 124

def command
  attributes.fetch(:command)
end

#dataany

An data entry field that is preserved on a completion item between a completion and a completion resolve request.

Returns:

  • (any)


133
134
135
# File 'lib/language_server/protocol/interface/completion_item.rb', line 133

def data
  attributes.fetch(:data)
end

#detailstring

A human-readable string with additional information about this item, like type or symbol information.

Returns:

  • (string)


48
49
50
# File 'lib/language_server/protocol/interface/completion_item.rb', line 48

def detail
  attributes.fetch(:detail)
end

#documentationstring

A human-readable string that represents a doc-comment.

Returns:

  • (string)


56
57
58
# File 'lib/language_server/protocol/interface/completion_item.rb', line 56

def documentation
  attributes.fetch(:documentation)
end

#filter_textstring

A string that should be used when filtering a set of completion items. When ‘falsy` the label is used.

Returns:

  • (string)


74
75
76
# File 'lib/language_server/protocol/interface/completion_item.rb', line 74

def filter_text
  attributes.fetch(:filterText)
end

#insert_textstring

A string that should be inserted a document when selecting this completion. When ‘falsy` the label is used.

Returns:

  • (string)


83
84
85
# File 'lib/language_server/protocol/interface/completion_item.rb', line 83

def insert_text
  attributes.fetch(:insertText)
end

#insert_text_formatInsertTextFormat

The format of the insert text. The format applies to both the ‘insertText` property and the `newText` property of a provided `textEdit`.

Returns:

  • (InsertTextFormat)


92
93
94
# File 'lib/language_server/protocol/interface/completion_item.rb', line 92

def insert_text_format
  attributes.fetch(:insertTextFormat)
end

#kindnumber

The kind of this completion item. Based of the kind an icon is chosen by the editor.

Returns:

  • (number)


39
40
41
# File 'lib/language_server/protocol/interface/completion_item.rb', line 39

def kind
  attributes.fetch(:kind)
end

#labelstring

The label of this completion item. By default also the text that is inserted when selecting this completion.

Returns:

  • (string)


30
31
32
# File 'lib/language_server/protocol/interface/completion_item.rb', line 30

def label
  attributes.fetch(:label)
end

#sort_textstring

A string that shoud be used when comparing this item with other items. When ‘falsy` the label is used.

Returns:

  • (string)


65
66
67
# File 'lib/language_server/protocol/interface/completion_item.rb', line 65

def sort_text
  attributes.fetch(:sortText)
end

#text_editTextEdit

An edit which is applied to a document when selecting this completion. When an edit is provided the value of ‘insertText` is ignored.

Note: The range of the edit must be a single line range and it must contain the position at which completion has been requested.

Returns:



104
105
106
# File 'lib/language_server/protocol/interface/completion_item.rb', line 104

def text_edit
  attributes.fetch(:textEdit)
end

#to_json(*args) ⇒ Object



139
140
141
# File 'lib/language_server/protocol/interface/completion_item.rb', line 139

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