class Yoda::Model::CompletionItem

Attributes

description[R]

@return [Descriptions::Base]

kind[R]

@return [Symbol]

prefix[R]

@return [String]

range[R]

@return [Parsing::Range]

Public Class Methods

new(description:, range:, kind: nil, prefix: nil) click to toggle source

@param description [Descriptions::Base] @param range [Parsing::Range] @param kind [Symbol, nil] @param prefix [String, nil]

# 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

Public Instance Methods

available_kinds() click to toggle source

@return [Symbol]

# File lib/yoda/model/completion_item.rb, line 36
def available_kinds
  %i(method class module constant)
end
edit_text() click to toggle source

@return [String]

# File lib/yoda/model/completion_item.rb, line 31
def edit_text
  prefix + description.sort_text
end
language_server_kind() click to toggle source
# 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