@@ -847,25 +847,21 @@ pub fn exit_select_mode(cx: &mut Context) {
847847}
848848
849849pub fn goto_definition(cx: &mut Context) {
850− let language_server = cx
851− .editor
852− .language_servers
853− .get("source.rust", &cx.executor)
854− .unwrap();
855− use log::info;
856−
857850 let doc = cx.doc();
858851
852+ let language_server = match doc.language_server.as_ref() {
853+ Some(language_server) => language_server,
854+ None => return,
855+ };
856+
859857 // TODO: blocking here is not ideal
860858 let pos = helix_lsp::util::pos_to_lsp_pos(doc.text().slice(..), doc.selection().cursor());
861859
862860 // TODO: handle fails
863− let res = smol::block_on(language_server.goto_definition(cx.doc().identifier(), pos))
864− .unwrap_or_default();
865−
866− println!("{:?}", res);
861+ let res =
862+ smol::block_on(language_server.goto_definition(doc.identifier(), pos)).unwrap_or_default();
867863
868− cx.doc().mode = Mode::Normal;
864+ doc.mode = Mode::Normal;
869865}
870866
871867// NOTE: Transactions in this module get appended to history when we switch back to normal mode.