Class: Yoda::Model::CompletionItem

Inherits:
Object
  • Object
show all
Defined in:
lib/yoda/model/completion_item.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(description:, range:, kind: nil, prefix: nil) ⇒ CompletionItem

Returns a new instance of CompletionItem.

Parameters:



20
21
22
23
24
25
26
27
28
# File 'lib/yoda/model/completion_item.rb', line 20

def initialize(description:, range:, kind: nil, prefix: nil)
  fail ArgumentError, desctiption unless description.is_a?(Descriptions::Base)
  fail ArgumentError, range unless range.is_a?(Parsing::Range)
  fail ArgumentError, kind if !kind.nil? && !available_kinds.include?(kind)
  @description = description
  @range = range
  @kind = kind
  @prefix = prefix || ''
end

Instance Attribute Details

#descriptionDescriptions::Base (readonly)

Returns:



5
6
7
# File 'lib/yoda/model/completion_item.rb', line 5

def description
  @description
end

#kindSymbol (readonly)

Returns:

  • (Symbol)


11
12
13
# File 'lib/yoda/model/completion_item.rb', line 11

def kind
  @kind
end

#prefixString (readonly)

Returns:

  • (String)


14
15
16
# File 'lib/yoda/model/completion_item.rb', line 14

def prefix
  @prefix
end

#rangeParsing::Range (readonly)

Returns:



8
9
10
# File 'lib/yoda/model/completion_item.rb', line 8

def range
  @range
end

Instance Method Details

#available_kindsSymbol

Returns:

  • (Symbol)


36
37
38
# File 'lib/yoda/model/completion_item.rb', line 36

def available_kinds
  %i(method class module constant)
end

#edit_textString

Returns:

  • (String)


31
32
33
# File 'lib/yoda/model/completion_item.rb', line 31

def edit_text
  prefix + description.sort_text
end

#language_server_kindObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/yoda/model/completion_item.rb', line 40

def language_server_kind
  case kind
  when :constant
    LanguageServer::Protocol::Constant::CompletionItemKind::VALUE
  when :method
    LanguageServer::Protocol::Constant::CompletionItemKind::METHOD
  when :class
    LanguageServer::Protocol::Constant::CompletionItemKind::CLASS
  when :module
    LanguageServer::Protocol::Constant::CompletionItemKind::MODULE
  else
    nil
  end
end