Skip to content
Merged
11 changes: 11 additions & 0 deletions crates/ark/src/lsp/backend.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ use tower_lsp::jsonrpc;
use tower_lsp::jsonrpc::Result;
use tower_lsp::lsp_types::request::GotoImplementationParams;
use tower_lsp::lsp_types::request::GotoImplementationResponse;
use tower_lsp::lsp_types::FoldingRange;
use tower_lsp::lsp_types::SelectionRange;
use tower_lsp::lsp_types::*;
use tower_lsp::Client;
Expand Down Expand Up @@ -131,6 +132,7 @@ pub(crate) enum LspRequest {
Initialize(InitializeParams),
WorkspaceSymbol(WorkspaceSymbolParams),
DocumentSymbol(DocumentSymbolParams),
FoldingRange(FoldingRangeParams),
ExecuteCommand(ExecuteCommandParams),
Completion(CompletionParams),
CompletionResolve(CompletionItem),
Expand All @@ -152,6 +154,7 @@ pub(crate) enum LspResponse {
Initialize(InitializeResult),
WorkspaceSymbol(Option<Vec<SymbolInformation>>),
DocumentSymbol(Option<DocumentSymbolResponse>),
FoldingRange(Option<Vec<FoldingRange>>),
ExecuteCommand(Option<Value>),
Completion(Option<CompletionResponse>),
CompletionResolve(CompletionItem),
Expand Down Expand Up @@ -261,6 +264,14 @@ impl LanguageServer for Backend {
)
}

async fn folding_range(&self, params: FoldingRangeParams) -> Result<Option<Vec<FoldingRange>>> {
cast_response!(
self,
self.request(LspRequest::FoldingRange(params)).await,
LspResponse::FoldingRange
)
}

async fn execute_command(
&self,
params: ExecuteCommandParams,
Expand Down
Loading
Loading