Skip to content

Commit c487320

Browse files
committed
document unstable extensions
1 parent 726b102 commit c487320

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

text/0000-rust-analyzer.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,27 @@ Presently, rust-analyzer binaries are distributed on a weekly basis by the rust-
102102

103103
Before the deprecation period begins, rust-analyzer should fully conform to the LSP protocol.
104104

105+
Furthermore, rust-analyzer sometimes adds extensions to the core LSP
106+
protocol, to enable features that the core LSP does not yet
107+
support. Some examples include:
108+
109+
* running specific tests (https://github.com/microsoft/language-server-protocol/issues/944)
110+
* inlay hints (https://github.com/microsoft/vscode-languageserver-node/pull/609)
111+
112+
In some cases, these extensions go on to become part of the standard
113+
protocol, as happened with these two extensions:
114+
115+
* extend selection (https://github.com/microsoft/language-server-protocol/issues/613)
116+
* syntax highlighting (https://github.com/microsoft/vscode-languageserver-node/issues/576)
117+
118+
rust-analyzer will document the status and stability of these
119+
extensions. Further, disruptive or unstable extensions will be made
120+
opt-in (via client settings) until they are suitable for wider
121+
use. However, we do not consider it a "semver violation" to remove
122+
support for extensions if they don't seem to be working out, as the
123+
LSP protocol already permits a negotiation between client and server
124+
with respect to which extensions are supported.
125+
105126
### What is the transition plan?
106127

107128
The precise transition plan is not part of this RFC. It will be determined and announced as we enter the deprecation period, based on the feedback we've gotten and how many users have manually transitioned away from the RLS. We will endeavor to keep the experience as smooth as possible, but it may require some manual steps.

0 commit comments

Comments
 (0)