diff --git a/src/lsp/mod.rs b/src/lsp/mod.rs
index 0d29143..39368d3 100644
--- a/src/lsp/mod.rs
+++ b/src/lsp/mod.rs
@@ -1,12 +1,15 @@
+use std::fs;
+
use color_eyre::eyre::eyre;
-use dto::{TagEntity, ZettelEntity};
+use dto::{NanoId, TagEntity, ZettelEntity};
use tower_lsp::{
Client, LanguageServer,
jsonrpc::{self, Result},
lsp_types::{
- CompletionItem, CompletionOptions, CompletionParams, CompletionResponse, InitializeParams,
- InitializeResult, InitializedParams, MessageType, ServerCapabilities,
- TextDocumentSyncCapability, TextDocumentSyncKind, TextDocumentSyncOptions,
+ CompletionItem, CompletionOptions, CompletionParams, CompletionResponse,
+ GotoDefinitionParams, GotoDefinitionResponse, InitializeParams, InitializeResult,
+ InitializedParams, Location, MessageType, OneOf, Range, ServerCapabilities,
+ TextDocumentSyncCapability, TextDocumentSyncKind, TextDocumentSyncOptions, Url,
},
};
@@ -41,6 +44,8 @@ impl LanguageServer for Backend {
trigger_characters: Some(vec!["[[".to_string(), "@".to_string()]),
..Default::default()
}),
+ definition_provider: Some(OneOf::Left(true)),
+
..ServerCapabilities::default()
},
..Default::default()
@@ -54,7 +59,6 @@ impl LanguageServer for Backend {
}
async fn completion(&self, params: CompletionParams) -> Result