Skip to content

Commit 1237977

Browse files
authored
Merge pull request #414 from lambdalisue/fix-413
Restore `winfixwidth` automatically
2 parents 53d8cf7 + 2e37485 commit 1237977

File tree

4 files changed

+29
-0
lines changed

4 files changed

+29
-0
lines changed

autoload/fern.vim

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ call s:Config.config(expand('<sfile>:p'), {
3131
\ 'disable_drawer_hover_popup': 0,
3232
\ 'disable_drawer_tabpage_isolation': 0,
3333
\ 'disable_drawer_auto_restore_focus': 0,
34+
\ 'disable_drawer_auto_restore_winfixwidth': 0,
3435
\ 'default_hidden': 0,
3536
\ 'default_include': '',
3637
\ 'default_exclude': '',

autoload/fern/internal/drawer.vim

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,11 @@ function! fern#internal#drawer#init() abort
5050
call fern#internal#drawer#auto_resize#init()
5151
call fern#internal#drawer#auto_winfixwidth#init()
5252
call fern#internal#drawer#auto_restore_focus#init()
53+
call fern#internal#drawer#auto_restore_winfixwidth#init()
5354
call fern#internal#drawer#smart_quit#init()
5455
call fern#internal#drawer#hover_popup#init()
5556
call fern#internal#drawer#resize()
57+
5658
setlocal winfixwidth
5759
endfunction
5860

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
function! fern#internal#drawer#auto_restore_winfixwidth#init() abort
2+
if g:fern#disable_drawer_auto_restore_winfixwidth
3+
return
4+
endif
5+
6+
let b:fern_drawer_auto_restore_winfixwidth = get(b:, 'fern_drawer_auto_restore_winfixwidth', &winfixwidth)
7+
8+
augroup fern_internal_drawer_auto_restore_winfixwidth
9+
autocmd! * <buffer>
10+
autocmd BufWinLeave <buffer> call s:restore_winfixwidth()
11+
augroup END
12+
endfunction
13+
14+
function! s:restore_winfixwidth() abort
15+
if !exists('b:fern_drawer_auto_restore_winfixwidth')
16+
return
17+
endif
18+
let &winfixwidth = b:fern_drawer_auto_restore_winfixwidth
19+
silent! unlet! b:fern_drawer_auto_restore_winfixwidth
20+
endfunction

doc/fern.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,12 @@ VARIABLE *fern-variable*
500500
<
501501
Default: 0
502502

503+
*g:fern#disable_drawer_auto_restore_winfixwidth*
504+
Set 1 to disable automatically restore 'winfixwidth' on |BufWinLeave|
505+
autocmd.
506+
507+
Default: 0
508+
503509
*g:fern#default_hidden*
504510
Set 1 to enter hidden mode (show hidden files) in default.
505511
Default: 0

0 commit comments

Comments
 (0)