File tree 1 file changed +15
-0
lines changed
1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -225,6 +225,10 @@ function! clang_format#replace(line1, line2) abort
225
225
let screen_save = line('w0')
226
226
let sel_save = &l:selection
227
227
let &l:selection = 'inclusive'
228
+ let fold_save = 0
229
+ if &foldenable
230
+ let fold_save = foldlevel(line('.'))
231
+ endif
228
232
let [save_g_reg, save_g_regtype] = [getreg('g'), getregtype('g')]
229
233
let [save_unnamed_reg, save_unnamed_regtype] = [getreg(v:register), getregtype(v:register)]
230
234
@@ -242,6 +246,17 @@ function! clang_format#replace(line1, line2) abort
242
246
let &l:selection = sel_save
243
247
call setpos('.', pos_save)
244
248
call s:restore_screen_pos(screen_save)
249
+ if fold_save > 0
250
+ let level = foldlevel(line('.'))
251
+ while fold_save > level
252
+ foldopen
253
+ let l = foldlevel(line('.'))
254
+ if l == level
255
+ break
256
+ endif
257
+ let level = l
258
+ endwhile
259
+ endif
245
260
endtry
246
261
endfunction
247
262
" }}}
You can’t perform that action at this time.
0 commit comments