Skip to content

Commit

Permalink
fix: break state when okuriari convert at EOL
Browse files Browse the repository at this point in the history
  • Loading branch information
kuuote committed Mar 12, 2024
1 parent 3f56f47 commit dbca9ae
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions autoload/skkeleton/internal/option.vim
Original file line number Diff line number Diff line change
@@ -1,18 +1,26 @@
let s:textwidth = {}
let s:virtualedit = {}

function s:ensure(dict, key, value)
let a:dict[a:key] = get(a:dict, a:key, a:value)
endfunction

function skkeleton#internal#option#save_and_set()
call s:ensure(s:textwidth, bufnr(), &l:textwidth)
call s:ensure(s:virtualedit, win_getid(), &l:virtualedit)
" 不意に改行が発生してバッファが壊れるため 'textwidth' を無効化
setlocal textwidth=0
" 末尾で送りあり変換をした際にバッファが壊れるため、一時的に 'virtualedit' を使う
setlocal virtualedit=all
endfunction

function skkeleton#internal#option#restore()
let bufnr = bufnr()
let winid = win_getid()
if has_key(s:textwidth, bufnr)
let &l:textwidth = remove(s:textwidth, bufnr)
endif
if has_key(s:virtualedit, winid)
let &l:virtualedit = remove(s:virtualedit, winid)
endif
endfunction

0 comments on commit dbca9ae

Please sign in to comment.