class TypeProf::LSP::Message::TextDocument::Definition

Constants

METHOD

Public Instance Methods

run() click to toggle source
# File typeprof-0.21.11/lib/typeprof/lsp.rb, line 603
def run
  case @params
  in {
    textDocument: { uri:, },
    position: loc,
  }
  else
    raise
  end

  definition_table = @server.open_texts[uri]&.definition_table
  code_locations = definition_table[CodeLocation.from_lsp(loc)] if definition_table
  if code_locations
    respond(
      code_locations.map do |path, code_range|
        {
          uri: "file://" + path,
          range: code_range.to_lsp,
        }
      end
    )
  else
    respond(nil)
  end
end