diff --git a/autoload/fern.vim b/autoload/fern.vim index cc6778f..8fd1d4f 100644 --- a/autoload/fern.vim +++ b/autoload/fern.vim @@ -31,6 +31,7 @@ call s:Config.config(expand(':p'), { \ 'disable_drawer_hover_popup': 0, \ 'disable_drawer_tabpage_isolation': 0, \ 'disable_drawer_auto_restore_focus': 0, + \ 'disable_drawer_auto_restore_winfixwidth': 0, \ 'default_hidden': 0, \ 'default_include': '', \ 'default_exclude': '', diff --git a/autoload/fern/internal/drawer.vim b/autoload/fern/internal/drawer.vim index cee211d..5094bbb 100644 --- a/autoload/fern/internal/drawer.vim +++ b/autoload/fern/internal/drawer.vim @@ -50,9 +50,11 @@ function! fern#internal#drawer#init() abort call fern#internal#drawer#auto_resize#init() call fern#internal#drawer#auto_winfixwidth#init() call fern#internal#drawer#auto_restore_focus#init() + call fern#internal#drawer#auto_restore_winfixwidth#init() call fern#internal#drawer#smart_quit#init() call fern#internal#drawer#hover_popup#init() call fern#internal#drawer#resize() + setlocal winfixwidth endfunction diff --git a/autoload/fern/internal/drawer/auto_restore_winfixwidth.vim b/autoload/fern/internal/drawer/auto_restore_winfixwidth.vim new file mode 100644 index 0000000..71f4079 --- /dev/null +++ b/autoload/fern/internal/drawer/auto_restore_winfixwidth.vim @@ -0,0 +1,20 @@ +function! fern#internal#drawer#auto_restore_winfixwidth#init() abort + if g:fern#disable_drawer_auto_restore_winfixwidth + return + endif + + let b:fern_drawer_auto_restore_winfixwidth = get(b:, 'fern_drawer_auto_restore_winfixwidth', &winfixwidth) + + augroup fern_internal_drawer_auto_restore_winfixwidth + autocmd! * + autocmd BufWinLeave call s:restore_winfixwidth() + augroup END +endfunction + +function! s:restore_winfixwidth() abort + if !exists('b:fern_drawer_auto_restore_winfixwidth') + return + endif + let &winfixwidth = b:fern_drawer_auto_restore_winfixwidth + silent! unlet! b:fern_drawer_auto_restore_winfixwidth +endfunction diff --git a/doc/fern.txt b/doc/fern.txt index ff8ffdd..51f9ec4 100644 --- a/doc/fern.txt +++ b/doc/fern.txt @@ -500,6 +500,12 @@ VARIABLE *fern-variable* < Default: 0 +*g:fern#disable_drawer_auto_restore_winfixwidth* + Set 1 to disable automatically restore 'winfixwidth' on |BufWinLeave| + autocmd. + + Default: 0 + *g:fern#default_hidden* Set 1 to enter hidden mode (show hidden files) in default. Default: 0