Skip to content

Commit 725ebef

Browse files
committed
first working version #23
1 parent bae71d4 commit 725ebef

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

uvls/src/core/ast.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ mod def;
1414
mod transform;
1515
mod visitor;
1616
pub mod graph;
17+
pub mod collapse;
1718
pub use def::*;
1819
pub use visitor::*;
1920
//Easy to work with AST parsing and util.

uvls/src/main.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ impl LanguageServer for Backend {
172172
},
173173
),
174174
),
175+
folding_range_provider: Some(FoldingRangeProviderCapability::Simple(true)),
175176
references_provider: Some(OneOf::Left(true)),
176177
rename_provider : Some(OneOf::Left(true)),
177178
code_lens_provider: Some(CodeLensOptions {
@@ -247,6 +248,16 @@ impl LanguageServer for Backend {
247248
}
248249
Ok(None)
249250
}
251+
async fn folding_range(&self, params: FoldingRangeParams) -> Result<Option<Vec<FoldingRange>>> {
252+
let uri = params.text_document.uri;
253+
let root_fileid = FileID::from_uri(&Url::parse(uri.as_str()).unwrap());
254+
let root_graph = self.pipeline.root().borrow_and_update().clone();
255+
if !root_graph.contains_id(root_fileid){return Ok(None);}
256+
257+
let document = root_graph.files.get(&root_fileid).unwrap();
258+
let c = ast::collapse::Collapse::new(document.source.clone(), document.tree.clone(), uri.clone());
259+
Ok(Some(c.ranges))
260+
}
250261
async fn goto_definition(
251262
&self,
252263
params: GotoDefinitionParams,

0 commit comments

Comments
 (0)