Skip to content

Commit e81a47b

Browse files
committed
Remove executeCommandProvider: apply_code_action.
This appears to have been introduced ages ago in be742a5 but has since been removed. As it stands, it is problematic if multiple instances of the rust-analyzer LSP are launched during the same VS Code session because VS Code complains about multiple LSP servers trying to register the same command. Most LSP servers workaround this by parameterizing the command by the process id. For example, this is where `rls` does this: https://github.com/rust-lang/rls/blob/ff0b9057c8f62bc4f8113d741e96c9587ef1a817/rls/src/server/mod.rs#L413-L421 Though `apply_code_action` does not seems to be used, so it seems better to delete it than to parameterize it.
1 parent a814883 commit e81a47b

File tree

3 files changed

+8
-12
lines changed

3 files changed

+8
-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/req.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ use url_serde;
66
pub use lsp_types::{
77
notification::*, request::*, ApplyWorkspaceEditParams, CodeActionParams, CodeLens,
88
CodeLensParams, CompletionParams, CompletionResponse, DidChangeConfigurationParams,
9-
DocumentOnTypeFormattingParams, DocumentSymbolParams, DocumentSymbolResponse,
10-
ExecuteCommandParams, Hover, InitializeResult, MessageType, PublishDiagnosticsParams,
11-
ReferenceParams, ShowMessageParams, SignatureHelp, TextDocumentEdit,
12-
TextDocumentPositionParams, TextEdit, WorkspaceEdit, WorkspaceSymbolParams,
9+
DocumentOnTypeFormattingParams, DocumentSymbolParams, DocumentSymbolResponse, Hover,
10+
InitializeResult, MessageType, PublishDiagnosticsParams, ReferenceParams, ShowMessageParams,
11+
SignatureHelp, TextDocumentEdit, TextDocumentPositionParams, TextEdit, WorkspaceEdit,
12+
WorkspaceSymbolParams,
1313
};
1414

1515
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)