Skip to content

Commit

Permalink
Merge pull request #414 from lambdalisue/fix-413
Browse files Browse the repository at this point in the history
Restore `winfixwidth` automatically
  • Loading branch information
lambdalisue authored Apr 7, 2022
2 parents 53d8cf7 + 2e37485 commit 1237977
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 0 deletions.
1 change: 1 addition & 0 deletions autoload/fern.vim
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ call s:Config.config(expand('<sfile>: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': '',
Expand Down
2 changes: 2 additions & 0 deletions autoload/fern/internal/drawer.vim
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
20 changes: 20 additions & 0 deletions autoload/fern/internal/drawer/auto_restore_winfixwidth.vim
Original file line number Diff line number Diff line change
@@ -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! * <buffer>
autocmd BufWinLeave <buffer> 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
6 changes: 6 additions & 0 deletions doc/fern.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 1237977

Please sign in to comment.