blob: b19fa8a4da7f2205f51bda0d917295fc51b8431b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
use base_db::Workspace;
use crate::util::{from_proto, to_proto, ClientFlags};
pub fn find_all(
workspace: &Workspace,
params: lsp_types::FoldingRangeParams,
client_flags: &ClientFlags,
) -> Option<Vec<serde_json::Value>> {
let params = from_proto::feature_params(workspace, params.text_document)?;
let foldings = folding::find_all(¶ms.document)
.into_iter()
.filter_map(|folding| {
to_proto::folding_range(folding, ¶ms.document.line_index, client_flags)
})
.collect();
Some(foldings)
}
|