diff --git a/analyzer/src/lib.rs b/analyzer/src/lib.rs index 8243d40..eb3e52c 100644 --- a/analyzer/src/lib.rs +++ b/analyzer/src/lib.rs @@ -10,7 +10,19 @@ struct Backend { #[tower_lsp::async_trait] impl LanguageServer for Backend { async fn initialize(&self, _: InitializeParams) -> Result { - Ok(InitializeResult::default()) + let mut res = InitializeResult::default(); + + res.capabilities.completion_provider = Some(CompletionOptions { + resolve_provider: None, + trigger_characters: None, + all_commit_characters: None, + work_done_progress_options: WorkDoneProgressOptions { + work_done_progress: None, + }, + completion_item: None, + }); + + Ok(res) } async fn initialized(&self, _: InitializedParams) { @@ -19,6 +31,16 @@ impl LanguageServer for Backend { .await; } + async fn completion(&self, params: CompletionParams) -> Result> { + self.client + .log_message(MessageType::INFO, "getting completion") + .await; + + Ok(Some(CompletionResponse::Array(vec![ + CompletionItem::new_simple("new".to_string(), "The new keyword".to_string()), + ]))) + } + async fn shutdown(&self) -> Result<()> { Ok(()) } diff --git a/src/main.mist b/src/main.mist index 8171d3b..1f016cb 100644 --- a/src/main.mist +++ b/src/main.mist @@ -10,6 +10,7 @@ void main() { if (args.len() < 2) { print_usage(); + process::exit(1); }