File tree Expand file tree Collapse file tree 2 files changed +20
-4
lines changed
emmylua_ls/src/handlers/fold_range
emmylua_parser/src/syntax/tree Expand file tree Collapse file tree 2 files changed +20
-4
lines changed Original file line number Diff line number Diff line change 1
- use code_analysis:: { Emmyrc , LuaDocument } ;
1
+ use code_analysis:: LuaDocument ;
2
2
use emmylua_parser:: LuaChunk ;
3
3
use lsp_types:: { FoldingRange , FoldingRangeKind } ;
4
4
use rowan:: TextRange ;
Original file line number Diff line number Diff line change @@ -164,12 +164,28 @@ impl LuaGreenNodeBuilder<'_> {
164
164
#[ inline]
165
165
pub fn finish ( mut self , text : & str ) -> GreenNode {
166
166
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
+
167
178
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 ( ) ;
171
185
}
172
186
187
+ self . builder . start_node ( LuaSyntaxKind :: Chunk . into ( ) ) ;
188
+ self . builder . finish_node ( ) ;
173
189
self . builder . finish ( )
174
190
}
175
191
}
You can’t perform that action at this time.
0 commit comments