class Yoda::Evaluation::CodeCompletion

Attributes

location[R]

@return [Parsing::Location]

registry[R]

@return [Store::Registry]

source[R]

@return [String]

Public Class Methods

new(registry, source, location) click to toggle source

@param registry [Store::Registry] @param source [String] @param location [Parsing::Location]

# File lib/yoda/evaluation/code_completion.rb, line 21
def initialize(registry, source, location)
  @registry = registry
  @source = source
  @location = location
end

Public Instance Methods

candidates() click to toggle source

@return [Array<Model::CompletionItem>]

# File lib/yoda/evaluation/code_completion.rb, line 33
def candidates
  providers.select(&:providable?).map(&:candidates).flatten
end
valid?() click to toggle source

@return [true, false]

# File lib/yoda/evaluation/code_completion.rb, line 28
def valid?
  providers.any?(&:providable?)
end

Private Instance Methods

const_provider() click to toggle source

@return [ConstantProvider]

# File lib/yoda/evaluation/code_completion.rb, line 60
def const_provider
  @constant_provider ||= ConstProvider.new(registry, source_analyzer)
end
method_provider() click to toggle source

@return [MethodProvider]

# File lib/yoda/evaluation/code_completion.rb, line 50
def method_provider
  @method_provider ||= MethodProvider.new(registry, source_analyzer)
end
providers() click to toggle source

@return [Array<CodeCompletion::BaseProvider>]

# File lib/yoda/evaluation/code_completion.rb, line 40
def providers
  [method_provider, variable_provider, const_provider]
end
source_analyzer() click to toggle source

@return [Parsing::SourceAnalyzer]

# File lib/yoda/evaluation/code_completion.rb, line 45
def source_analyzer
  @source_analyzer ||= Parsing::SourceAnalyzer.from_source(source, location)
end
variable_provider() click to toggle source

@return [VariableProvider]

# File lib/yoda/evaluation/code_completion.rb, line 55
def variable_provider
  @variable_provider ||= VariableProvider.new(registry, source_analyzer)
end