From c36d07f0dd31b9c0f14eef58116dceffd9113280 Mon Sep 17 00:00:00 2001 From: Selimaj Dev Date: Sun, 24 May 2026 07:56:31 +0200 Subject: [PATCH] Working goto request --- crates/analyzer/src/lib.rs | 36 ++++------------------------ crates/analyzer/src/rust_analyzer.rs | 2 +- 2 files changed, 5 insertions(+), 33 deletions(-) diff --git a/crates/analyzer/src/lib.rs b/crates/analyzer/src/lib.rs index d86707b..b76d158 100644 --- a/crates/analyzer/src/lib.rs +++ b/crates/analyzer/src/lib.rs @@ -217,52 +217,26 @@ impl LanguageServer for Backend { source = insert_at_position( &source, - params.text_document_position_params.position.line as usize, + params.text_document_position_params.position.line as usize + 1, params.text_document_position_params.position.character as usize, &inject, ); let output = transpiler::transpile_text(&source).expect("Failed to transpile"); - let position = output - .find(inject) - .expect("Didn't find injection") - .saturating_sub(1); - let (line, character) = find_row_col(&output, inject).unwrap(); - self.client - .log_message(MessageType::INFO, format!("Found at {position}")) - .await; - let uri = Url::from_file_path(from_mist_to_rust(file_path)).expect("failed to generate rs url"); - self.rust_analyzer - .lock() - .await - .notify( - "textDocument/didOpen", - DidOpenTextDocumentParams { - text_document: TextDocumentItem { - uri: uri.clone(), - language_id: "rust".into(), - version: 1, - text: output, - }, - }, - ) - .await - .expect("Failed to init req"); - - let res = self + let rs_res = self .rust_analyzer .lock() .await .request::(lsp_types::GotoDefinitionParams { text_document_position_params: lsp_types::TextDocumentPositionParams { position: lsp_types::Position { - line: line as u32, + line: line as u32 - 1, character: character as u32, }, text_document: lsp_types::TextDocumentIdentifier { uri }, @@ -273,9 +247,7 @@ impl LanguageServer for Backend { .await .expect("Failed to send to rust"); - self.client - .log_message(MessageType::INFO, format!("OUTPUT: {:?}", res)) - .await; + eprintln!("{:?}", rs_res); Ok(None) } diff --git a/crates/analyzer/src/rust_analyzer.rs b/crates/analyzer/src/rust_analyzer.rs index 26de8c7..e2cc377 100644 --- a/crates/analyzer/src/rust_analyzer.rs +++ b/crates/analyzer/src/rust_analyzer.rs @@ -12,7 +12,7 @@ use tower_lsp::lsp_types::{ request::{self, Request}, }; -#[derive(Deserialize)] +#[derive(Debug, Deserialize)] pub struct JsonRpcResponse { pub jsonrpc: String, pub id: Option,