Class: LanguageServer::Project

Inherits:
Object
  • Object
show all
Defined in:
lib/language_server/project.rb,
lib/language_server/project/node.rb,
lib/language_server/project/parser.rb

Defined Under Namespace

Classes: Class, Constant, LiteralValue, Module, Node, Parser

Instance Method Summary collapse

Constructor Details

#initialize(file_store) ⇒ Project



5
6
7
8
9
10
# File 'lib/language_server/project.rb', line 5

def initialize(file_store)
  @file_store = file_store
  @result_store = {}

  fetch_result
end

Instance Method Details

#classes(uri: nil, line: nil, character: nil) ⇒ Object



29
30
31
32
33
# File 'lib/language_server/project.rb', line 29

def classes(uri: nil, line: nil, character: nil)
  node = find_nearest_node(uri: uri, line: line, character: character) if uri && line && character

  lazy_classes.select {|n| n.names[0..-2] == Array(node && node.names).first(n.names.size - 1) }.force
end

#constants(uri: nil, line: nil, character: nil) ⇒ Object



17
18
19
20
21
# File 'lib/language_server/project.rb', line 17

def constants(uri: nil, line: nil, character: nil)
  node = find_nearest_node(uri: uri, line: line, character: character) if uri && line && character

  lazy_constants.select {|n| n.names[0..-2] == Array(node && node.names).first(n.names.size - 1) }.force
end

#modules(uri: nil, line: nil, character: nil) ⇒ Object



23
24
25
26
27
# File 'lib/language_server/project.rb', line 23

def modules(uri: nil, line: nil, character: nil)
  node = find_nearest_node(uri: uri, line: line, character: character) if uri && line && character

  lazy_modules.select {|n| n.names[0..-2] == Array(node && node.names).first(n.names.size - 1) }.force
end

#recalculate_result(uri) ⇒ Object



12
13
14
15
# File 'lib/language_server/project.rb', line 12

def recalculate_result(uri)
  path = file_store.path_from_remote_uri(uri)
  result_store[path] = calculate(file_store.read(path), path)
end