Working hello world lsp

This commit is contained in:
2026-05-20 09:03:00 +02:00
parent b86b4831ce
commit 6b14ab0308
4 changed files with 765 additions and 3 deletions
+4
View File
@@ -7,3 +7,7 @@ license = "Apache-2.0"
repository = "https://github.com/mist-go/mist"
keywords = ["language-server", "language", "mist"]
categories = ["language-servers"]
[dependencies]
tokio = { version = "1.52.3", features = ["full", "macros", "rt", "rt-multi-thread"] }
tower-lsp = "0.20.0"
+33 -2
View File
@@ -1,3 +1,34 @@
pub fn start() {
println!("test");
use tower_lsp::jsonrpc::Result;
use tower_lsp::lsp_types::*;
use tower_lsp::{Client, LanguageServer, LspService, Server};
#[derive(Debug)]
struct Backend {
client: Client,
}
#[tower_lsp::async_trait]
impl LanguageServer for Backend {
async fn initialize(&self, _: InitializeParams) -> Result<InitializeResult> {
Ok(InitializeResult::default())
}
async fn initialized(&self, _: InitializedParams) {
self.client
.log_message(MessageType::INFO, "server initialized!")
.await;
}
async fn shutdown(&self) -> Result<()> {
Ok(())
}
}
#[tokio::main]
pub async fn start() {
let stdin = tokio::io::stdin();
let stdout = tokio::io::stdout();
let (service, socket) = LspService::new(|client| Backend { client });
Server::new(stdin, stdout, socket).serve(service).await;
}