Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--Cargo.lock4
-rw-r--r--crates/rust-analyzer/Cargo.toml2
-rw-r--r--crates/rust-analyzer/src/caps.rs2
-rw-r--r--crates/rust-analyzer/src/handlers/request.rs14
-rw-r--r--crates/rust-analyzer/src/lsp/ext.rs2
-rw-r--r--crates/rust-analyzer/src/lsp/to_proto.rs2
-rw-r--r--docs/dev/lsp-extensions.md2
-rw-r--r--lib/lsp-server/Cargo.toml2
8 files changed, 16 insertions, 14 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 4616b2fde8..7310ecc858 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -969,9 +969,9 @@ dependencies = [
[[package]]
name = "lsp-types"
-version = "0.94.0"
+version = "0.95.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b63735a13a1f9cd4f4835223d828ed9c2e35c8c5e61837774399f558b6a1237"
+checksum = "158c1911354ef73e8fe42da6b10c0484cb65c7f1007f28022e847706c1ab6984"
dependencies = [
"bitflags 1.3.2",
"serde",
diff --git a/crates/rust-analyzer/Cargo.toml b/crates/rust-analyzer/Cargo.toml
index 75bd13d326..a9bf4d8c33 100644
--- a/crates/rust-analyzer/Cargo.toml
+++ b/crates/rust-analyzer/Cargo.toml
@@ -24,7 +24,7 @@ crossbeam-channel = "0.5.5"
dissimilar.workspace = true
itertools.workspace = true
scip = "0.3.1"
-lsp-types = { version = "=0.94.0", features = ["proposed"] }
+lsp-types = { version = "=0.95.0", features = ["proposed"] }
parking_lot = "0.12.1"
xflags = "0.3.0"
oorandom = "11.1.3"
diff --git a/crates/rust-analyzer/src/caps.rs b/crates/rust-analyzer/src/caps.rs
index 8c9261ab05..94eab97e8f 100644
--- a/crates/rust-analyzer/src/caps.rs
+++ b/crates/rust-analyzer/src/caps.rs
@@ -157,6 +157,8 @@ pub fn server_capabilities(config: &Config) -> ServerCapabilities {
"ssr": true,
"workspaceSymbolScopeKindFiltering": true,
})),
+ diagnostic_provider: None,
+ inline_completion_provider: None,
}
}
diff --git a/crates/rust-analyzer/src/handlers/request.rs b/crates/rust-analyzer/src/handlers/request.rs
index d8a590c808..6b7bc944d5 100644
--- a/crates/rust-analyzer/src/handlers/request.rs
+++ b/crates/rust-analyzer/src/handlers/request.rs
@@ -453,7 +453,7 @@ pub(crate) fn handle_document_symbol(
pub(crate) fn handle_workspace_symbol(
snap: GlobalStateSnapshot,
params: WorkspaceSymbolParams,
-) -> anyhow::Result<Option<Vec<SymbolInformation>>> {
+) -> anyhow::Result<Option<lsp_types::WorkspaceSymbolResponse>> {
let _p = profile::span("handle_workspace_symbol");
let config = snap.config.workspace_symbol();
@@ -479,7 +479,7 @@ pub(crate) fn handle_workspace_symbol(
res = exec_query(&snap, query)?;
}
- return Ok(Some(res));
+ return Ok(Some(lsp_types::WorkspaceSymbolResponse::Nested(res)));
fn decide_search_scope_and_kind(
params: &WorkspaceSymbolParams,
@@ -519,13 +519,12 @@ pub(crate) fn handle_workspace_symbol(
fn exec_query(
snap: &GlobalStateSnapshot,
query: Query,
- ) -> anyhow::Result<Vec<SymbolInformation>> {
+ ) -> anyhow::Result<Vec<lsp_types::WorkspaceSymbol>> {
let mut res = Vec::new();
for nav in snap.analysis.symbol_search(query)? {
let container_name = nav.container_name.as_ref().map(|v| v.to_string());
- #[allow(deprecated)]
- let info = SymbolInformation {
+ let info = lsp_types::WorkspaceSymbol {
name: match &nav.alias {
Some(alias) => format!("{} (alias for {})", alias, nav.name),
None => format!("{}", nav.name),
@@ -534,10 +533,11 @@ pub(crate) fn handle_workspace_symbol(
.kind
.map(to_proto::symbol_kind)
.unwrap_or(lsp_types::SymbolKind::VARIABLE),
+ // FIXME: Set deprecation
tags: None,
- location: to_proto::location_from_nav(snap, nav)?,
container_name,
- deprecated: None,
+ location: lsp_types::OneOf::Left(to_proto::location_from_nav(snap, nav)?),
+ data: None,
};
res.push(info);
}
diff --git a/crates/rust-analyzer/src/lsp/ext.rs b/crates/rust-analyzer/src/lsp/ext.rs
index ad56899163..35c8fad374 100644
--- a/crates/rust-analyzer/src/lsp/ext.rs
+++ b/crates/rust-analyzer/src/lsp/ext.rs
@@ -627,7 +627,7 @@ pub enum WorkspaceSymbol {}
impl Request for WorkspaceSymbol {
type Params = WorkspaceSymbolParams;
- type Result = Option<Vec<lsp_types::SymbolInformation>>;
+ type Result = Option<lsp_types::WorkspaceSymbolResponse>;
const METHOD: &'static str = "workspace/symbol";
}
diff --git a/crates/rust-analyzer/src/lsp/to_proto.rs b/crates/rust-analyzer/src/lsp/to_proto.rs
index dae560c5de..7f3c3aa7a1 100644
--- a/crates/rust-analyzer/src/lsp/to_proto.rs
+++ b/crates/rust-analyzer/src/lsp/to_proto.rs
@@ -857,7 +857,7 @@ pub(crate) fn location_from_nav(
) -> Cancellable<lsp_types::Location> {
let url = url(snap, nav.file_id);
let line_index = snap.file_line_index(nav.file_id)?;
- let range = range(&line_index, nav.full_range);
+ let range = range(&line_index, nav.focus_or_full_range());
let loc = lsp_types::Location::new(url, range);
Ok(loc)
}
diff --git a/docs/dev/lsp-extensions.md b/docs/dev/lsp-extensions.md
index b66c9c943a..3251dd7526 100644
--- a/docs/dev/lsp-extensions.md
+++ b/docs/dev/lsp-extensions.md
@@ -1,5 +1,5 @@
<!---
-lsp/ext.rs hash: 121482ee911854da
+lsp/ext.rs hash: dff0b009e82ef06a
If you need to change the above hash to make the test pass, please check if you
need to adjust this doc as well and ping this issue:
diff --git a/lib/lsp-server/Cargo.toml b/lib/lsp-server/Cargo.toml
index 2a70aedbe8..e802bf185b 100644
--- a/lib/lsp-server/Cargo.toml
+++ b/lib/lsp-server/Cargo.toml
@@ -13,5 +13,5 @@ serde = { version = "1.0.192", features = ["derive"] }
crossbeam-channel = "0.5.6"
[dev-dependencies]
-lsp-types = "=0.94"
+lsp-types = "=0.95"
ctrlc = "3.4.1"