Skip to content

Commit fa3716e

Browse files
bors[bot]bolinfest
andcommitted
Merge #1520
1520: Ignore workspace/didChangeConfiguration notifications. r=matklad a=bolinfest If the client happens to send a `workspace/didChangeConfiguration` notification, it is nicer if rust-analyzer can just ignore it rather than crash with an "unhandled notification" error. Co-authored-by: Michael Bolin <[email protected]>
2 parents 46d7b08 + e81a47b commit fa3716e

File tree

4 files changed

+15
-12
lines changed

4 files changed

+15
-12
lines changed

crates/ra_lsp_server/src/caps.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use lsp_types::{
22
CodeActionProviderCapability, CodeLensOptions, CompletionOptions,
3-
DocumentOnTypeFormattingOptions, ExecuteCommandOptions, FoldingRangeProviderCapability,
4-
GenericCapability, ImplementationProviderCapability, RenameOptions, RenameProviderCapability,
5-
ServerCapabilities, SignatureHelpOptions, TextDocumentSyncCapability, TextDocumentSyncKind,
3+
DocumentOnTypeFormattingOptions, FoldingRangeProviderCapability, GenericCapability,
4+
ImplementationProviderCapability, RenameOptions, RenameProviderCapability, ServerCapabilities,
5+
SignatureHelpOptions, TextDocumentSyncCapability, TextDocumentSyncKind,
66
TextDocumentSyncOptions, TypeDefinitionProviderCapability,
77
};
88

@@ -44,9 +44,7 @@ pub fn server_capabilities() -> ServerCapabilities {
4444
prepare_provider: Some(true),
4545
})),
4646
color_provider: None,
47-
execute_command_provider: Some(ExecuteCommandOptions {
48-
commands: vec!["apply_code_action".to_string()],
49-
}),
47+
execute_command_provider: None,
5048
workspace: None,
5149
}
5250
}

crates/ra_lsp_server/src/main_loop.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,12 @@ fn on_notification(
431431
}
432432
Err(not) => not,
433433
};
434+
let not = match not.cast::<req::DidChangeConfiguration>() {
435+
Ok(_params) => {
436+
return Ok(());
437+
}
438+
Err(not) => not,
439+
};
434440
log::error!("unhandled notification: {:?}", not);
435441
Ok(())
436442
}

crates/ra_lsp_server/src/req.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ use url_serde;
55

66
pub use lsp_types::{
77
notification::*, request::*, ApplyWorkspaceEditParams, CodeActionParams, CodeLens,
8-
CodeLensParams, CompletionParams, CompletionResponse, DocumentOnTypeFormattingParams,
9-
DocumentSymbolParams, DocumentSymbolResponse, ExecuteCommandParams, Hover, InitializeResult,
10-
MessageType, PublishDiagnosticsParams, ReferenceParams, ShowMessageParams, SignatureHelp,
11-
TextDocumentEdit, TextDocumentPositionParams, TextEdit, WorkspaceEdit, WorkspaceSymbolParams,
8+
CodeLensParams, CompletionParams, CompletionResponse, DidChangeConfigurationParams,
9+
DocumentOnTypeFormattingParams, DocumentSymbolParams, DocumentSymbolResponse, Hover,
10+
InitializeResult, MessageType, PublishDiagnosticsParams, ReferenceParams, ShowMessageParams,
11+
SignatureHelp, TextDocumentEdit, TextDocumentPositionParams, TextEdit, WorkspaceEdit,
12+
WorkspaceSymbolParams,
1213
};
1314

1415
pub enum AnalyzerStatus {}

docs/dev/lsp-features.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ This list documents LSP features, supported by rust-analyzer.
1616
- [ ] [workspace/configuration](https://microsoft.github.io/language-server-protocol/specification#workspace_configuration)
1717
- [x] [workspace/didChangeWatchedFiles](https://microsoft.github.io/language-server-protocol/specification#workspace_didChangeWatchedFiles)
1818
- [x] [workspace/symbol](https://microsoft.github.io/language-server-protocol/specification#workspace_symbol)
19-
- [x] [workspace/executeCommand](https://microsoft.github.io/language-server-protocol/specification#workspace_executeCommand)
20-
- `apply_code_action`
2119
- [ ] [workspace/applyEdit](https://microsoft.github.io/language-server-protocol/specification#workspace_applyEdit)
2220

2321
## Text Synchronization

0 commit comments

Comments
 (0)