Skip to content

Commit 0634930

Browse files
committed
force make rowan root luachunk
1 parent 937622a commit 0634930

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

crates/emmylua_ls/src/handlers/fold_range/builder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use code_analysis::{Emmyrc, LuaDocument};
1+
use code_analysis::LuaDocument;
22
use emmylua_parser::LuaChunk;
33
use lsp_types::{FoldingRange, FoldingRangeKind};
44
use rowan::TextRange;

crates/emmylua_parser/src/syntax/tree/lua_green_builder.rs

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,28 @@ impl LuaGreenNodeBuilder<'_> {
164164
#[inline]
165165
pub fn finish(mut self, text: &str) -> GreenNode {
166166
if let Some(root_pos) = self.children.get(0) {
167+
let is_chunk_root = matches!(
168+
self.elements[*root_pos],
169+
LuaGreenElement::Node {
170+
kind: LuaSyntaxKind::Chunk,
171+
..
172+
}
173+
);
174+
if !is_chunk_root {
175+
self.builder.start_node(LuaSyntaxKind::Chunk.into());
176+
}
177+
167178
self.build_rowan_green(*root_pos, text);
168-
} else {
169-
self.builder.start_node(LuaSyntaxKind::Chunk.into());
170-
self.builder.finish_node();
179+
180+
if !is_chunk_root {
181+
self.builder.finish_node();
182+
}
183+
184+
return self.builder.finish();
171185
}
172186

187+
self.builder.start_node(LuaSyntaxKind::Chunk.into());
188+
self.builder.finish_node();
173189
self.builder.finish()
174190
}
175191
}

0 commit comments

Comments
 (0)