@@ -95,7 +95,7 @@ Invoking code action at this position will yield two code actions for importing
9595
9696This request is send from client to server to handle "Join Lines" editor action.
9797
98- ** Method:** ` experimental/JoinLines `
98+ ** Method:** ` experimental/joinLines `
9999
100100** Request:**
101101
@@ -172,3 +172,48 @@ SSR with query `foo($a:expr, $b:expr) ==>> ($a).foo($b)` will transform, eg `foo
172172
173173* Probably needs search without replace mode
174174* Needs a way to limit the scope to certain files.
175+
176+ ## Matching Brace
177+
178+ ** Issue:** https://github.com/microsoft/language-server-protocol/issues/999
179+
180+ ** Server Capability:** ` { "matchingBrace": boolean } `
181+
182+ This request is send from client to server to handle "Matching Brace" editor action.
183+
184+ ** Method:** ` experimental/matchingBrace `
185+
186+ ** Request:**
187+
188+ ``` typescript
189+ interface MatchingBraceParams {
190+ textDocument: TextDocumentIdentifier ,
191+ // / Position for each cursor
192+ positions: Position [],
193+ }
194+ ```
195+
196+ ** Response:**
197+
198+ ``` typescript
199+ Position []
200+ ```
201+
202+ ### Example
203+
204+ ``` rust
205+ fn main () {
206+ let x : Vec <()>/*cursor here*/ = vec! []
207+ }
208+ ```
209+
210+ ` experimental/matchingBrace ` yields the position of ` < ` .
211+ In many cases, matching braces can be handled by the editor.
212+ However, some cases (like disambiguating between generics and comparison operations) need a real parser.
213+ Moreover, it would be cool if editors didn't need to implement even basic language parsing
214+
215+ ### Unresolved Question
216+
217+ * Should we return a a nested brace structure, to allow paredit-like actions of jump * out* of the current brace pair?
218+ This is how ` SelectionRange ` request works.
219+ * Alternatively, should we perhaps flag certain ` SelectionRange ` s as being brace pairs?
0 commit comments