mirror of
https://gitlab.gnome.org/jwestman/blueprint-compiler.git
synced 2025-05-04 15:59:08 -04:00
lsp: Implement "go to definition"
This commit is contained in:
parent
e087aeb44f
commit
62f74178f7
7 changed files with 64 additions and 4 deletions
|
@ -204,6 +204,7 @@ class LanguageServer:
|
|||
"codeActionProvider": {},
|
||||
"hoverProvider": True,
|
||||
"documentSymbolProvider": True,
|
||||
"definitionProvider": True,
|
||||
},
|
||||
"serverInfo": {
|
||||
"name": "Blueprint",
|
||||
|
@ -389,6 +390,21 @@ class LanguageServer:
|
|||
|
||||
self._send_response(id, [to_json(symbol) for symbol in symbols])
|
||||
|
||||
@command("textDocument/definition")
|
||||
def definition(self, id, params):
|
||||
open_file = self._open_files[params["textDocument"]["uri"]]
|
||||
idx = utils.pos_to_idx(
|
||||
params["position"]["line"], params["position"]["character"], open_file.text
|
||||
)
|
||||
definition = open_file.ast.get_reference(idx)
|
||||
if definition is None:
|
||||
self._send_response(id, None)
|
||||
else:
|
||||
self._send_response(
|
||||
id,
|
||||
definition.to_json(open_file.uri),
|
||||
)
|
||||
|
||||
def _send_file_updates(self, open_file: OpenFile):
|
||||
self._send_notification(
|
||||
"textDocument/publishDiagnostics",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue