lsp: Use InitializeResult from lsp-types

Make the previous patch typesafe by enabling the "proposed" feature in
the `lsp-types` crate, so that the `InitializeResult` has the
`offsetEncoding` field.

Fix the fallout of this change.
This commit is contained in:
Tobias Hunger 2022-09-01 14:25:08 +02:00 committed by Tobias Hunger
parent 051cf83482
commit ad33c257cf
3 changed files with 16 additions and 12 deletions

View file

@ -57,7 +57,7 @@ i-slint-compiler = { version = "=0.2.6", path = "../../internal/compiler"}
clap = { version = "3.2", features = ["derive", "wrap_help"] }
dunce = "1.0.1"
euclid = "0.22"
lsp-types = "0.93.0"
lsp-types = { version = "0.93.0", features = ["proposed"] }
serde = "1.0.118"
serde_json = "1.0.60"

View file

@ -14,7 +14,10 @@ mod util;
use i_slint_compiler::CompilerConfiguration;
use lsp_types::notification::{DidChangeTextDocument, DidOpenTextDocument, Notification};
use lsp_types::{DidChangeTextDocumentParams, DidOpenTextDocumentParams, InitializeParams};
use lsp_types::{
DidChangeTextDocumentParams, DidOpenTextDocumentParams, InitializeParams, InitializeResult,
ServerInfo,
};
use server_loop::*;
use clap::Parser;
@ -128,18 +131,18 @@ fn main() {
pub fn run_lsp_server() -> Result<(), Error> {
let (connection, io_threads) = Connection::stdio();
let (id, params) = connection.initialize_start()?;
let server_capabilities = server_loop::server_capabilities();
let initialize_data = serde_json::json!({
"capabilities": server_capabilities,
"offsetEncoding": "utf-8", // We support utf-8 *only*
"serverInfo": {
"name": "slint-ls",
"version": String::from(env!("CARGO_PKG_VERSION")),
}
});
let initialization_reply = InitializeResult {
capabilities: server_loop::server_capabilities(),
connection.initialize_finish(id, initialize_data)?;
server_info: Some(ServerInfo {
name: "slint-ls".into(),
version: Some(env!("CARGO_PKG_VERSION").to_string()),
}),
offset_encoding: Some("utf-8".to_string()),
};
connection.initialize_finish(id, serde_json::to_value(initialization_reply)?)?;
main_loop(&connection, params)?;
io_threads.join()?;

View file

@ -114,6 +114,7 @@ pub fn server_capabilities() -> ServerCapabilities {
trigger_characters: Some(vec![".".to_owned()]),
work_done_progress_options: WorkDoneProgressOptions::default(),
all_commit_characters: None,
completion_item: None,
}),
definition_provider: Some(OneOf::Left(true)),
text_document_sync: Some(TextDocumentSyncCapability::Kind(