class Solargraph::Mapper
def find_workspace filename
def find_workspace filename dirname = filename lastname = nil result = nil until dirname == lastname if File.file?("#{dirname}/Gemfile") result = dirname break end lastname = dirname dirname = File.dirname(dirname) end result || File.dirname(filename) end
def get filename, text
def get filename, text workspace = find_workspace(filename) CodeMap.new(text, api_map: @default_api_map, workspace: workspace, require_nodes: @require_nodes) end
def initialize
def initialize @default_api_map = Solargraph::ApiMap.new stub = Parser::CurrentRuby.parse(Solargraph::LiveParser.parse(nil)) @default_api_map.merge(stub) @default_api_map.freeze @require_nodes = {} end