Skip to content

Commit 63e1c15

Browse files
authored
Add folding ranges (#815)
1 parent 1db309f commit 63e1c15

20 files changed

+1187
-1
lines changed

crates/ark/src/lsp/backend.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ use tower_lsp::jsonrpc;
2424
use tower_lsp::jsonrpc::Result;
2525
use tower_lsp::lsp_types::request::GotoImplementationParams;
2626
use tower_lsp::lsp_types::request::GotoImplementationResponse;
27+
use tower_lsp::lsp_types::FoldingRange;
2728
use tower_lsp::lsp_types::SelectionRange;
2829
use tower_lsp::lsp_types::*;
2930
use tower_lsp::Client;
@@ -131,6 +132,7 @@ pub(crate) enum LspRequest {
131132
Initialize(InitializeParams),
132133
WorkspaceSymbol(WorkspaceSymbolParams),
133134
DocumentSymbol(DocumentSymbolParams),
135+
FoldingRange(FoldingRangeParams),
134136
ExecuteCommand(ExecuteCommandParams),
135137
Completion(CompletionParams),
136138
CompletionResolve(CompletionItem),
@@ -153,6 +155,7 @@ pub(crate) enum LspResponse {
153155
Initialize(InitializeResult),
154156
WorkspaceSymbol(Option<Vec<SymbolInformation>>),
155157
DocumentSymbol(Option<DocumentSymbolResponse>),
158+
FoldingRange(Option<Vec<FoldingRange>>),
156159
ExecuteCommand(Option<Value>),
157160
Completion(Option<CompletionResponse>),
158161
CompletionResolve(CompletionItem),
@@ -263,6 +266,14 @@ impl LanguageServer for Backend {
263266
)
264267
}
265268

269+
async fn folding_range(&self, params: FoldingRangeParams) -> Result<Option<Vec<FoldingRange>>> {
270+
cast_response!(
271+
self,
272+
self.request(LspRequest::FoldingRange(params)).await,
273+
LspResponse::FoldingRange
274+
)
275+
}
276+
266277
async fn execute_command(
267278
&self,
268279
params: ExecuteCommandParams,

0 commit comments

Comments
 (0)