123456789_123456789_123456789_123456789_123456789_

Class: TypeProf::LSP::Message::TextDocument::Definition

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: TypeProf::LSP::Message
Defined in: lib/typeprof/lsp.rb

Constant Summary

::TypeProf::LSP::Message - Inherited

Classes, Table

Class Method Summary

Instance Method Summary

Constructor Details

This class inherits a constructor from TypeProf::LSP::Message

Instance Method Details

#run

[ GitHub ]

  
# File '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