From 8a68a043400342a02496c4ff622dd86e6f40a89c Mon Sep 17 00:00:00 2001 From: Jan Hrastnik Date: Sun, 21 Feb 2021 23:43:28 +0100 Subject: gotodefiniton now runs but doesnt return anything --- helix-term/src/commands.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'helix-term/src') diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index 98e79b44..8b7e3600 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -846,7 +846,27 @@ pub fn exit_select_mode(cx: &mut Context) { cx.doc().mode = Mode::Normal; } -pub fn goto_definition(cx: &mut Context) {} +pub fn goto_definition(cx: &mut Context) { + let language_server = cx + .editor + .language_servers + .get("source.rust", &cx.executor) + .unwrap(); + use log::info; + + let doc = cx.doc(); + + // TODO: blocking here is not ideal + let pos = helix_lsp::util::pos_to_lsp_pos(doc.text().slice(..), doc.selection().cursor()); + + // TODO: handle fails + let res = smol::block_on(language_server.goto_definition(cx.doc().identifier(), pos)) + .unwrap_or_default(); + + println!("{:?}", res); + + cx.doc().mode = Mode::Normal; +} // NOTE: Transactions in this module get appended to history when we switch back to normal mode. pub mod insert { -- cgit v1.2.3-70-g09d2