Skip to content

Commit

Permalink
Trim trailing whitespace only on modified lines
Browse files Browse the repository at this point in the history
Fixes: #106
  • Loading branch information
Felix Weilbach committed Jul 28, 2022
1 parent d354117 commit 2ff5db7
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions plugin/editorconfig.vim
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,8 @@ function! s:ApplyConfig(config) abort " Set the buffer options {{{1
autocmd! BufWritePre <buffer>
if s:IsRuleActive('trim_trailing_whitespace', a:config) &&
\ get(a:config, 'trim_trailing_whitespace', 'false') ==# 'true'
autocmd BufWritePre <buffer> call s:TrimTrailingWhitespace()
autocmd InsertEnter <buffer> let s:pos_on_insert_enter = getpos('.')
autocmd InsertLeave <buffer> call s:TrimTrailingWhitespace()
endif
augroup END

Expand Down Expand Up @@ -500,10 +501,14 @@ endfunction

function! s:TrimTrailingWhitespace() " {{{1
if &l:modifiable
let insert_end_pos = getpos('.')[1]
let insert_start_pos = get(s:, 'pos_on_insert_enter', insert_end_pos)[1]
echom insert_start_pos
echom insert_end_pos
" don't lose user position when trimming trailing whitespace
let s:view = winsaveview()
try
silent! keeppatterns keepjumps %s/\s\+$//e
execute 'silent! keeppatterns keepjumps :' . insert_start_pos . ',' . insert_end_pos . 's/\s\+$//e'
finally
call winrestview(s:view)
endtry
Expand Down

0 comments on commit 2ff5db7

Please sign in to comment.