Skip to content

Commit 2ff5db7

Browse files
author
Felix Weilbach
committed
Trim trailing whitespace only on modified lines
Fixes: #106
1 parent d354117 commit 2ff5db7

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

plugin/editorconfig.vim

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,8 @@ function! s:ApplyConfig(config) abort " Set the buffer options {{{1
440440
autocmd! BufWritePre <buffer>
441441
if s:IsRuleActive('trim_trailing_whitespace', a:config) &&
442442
\ get(a:config, 'trim_trailing_whitespace', 'false') ==# 'true'
443-
autocmd BufWritePre <buffer> call s:TrimTrailingWhitespace()
443+
autocmd InsertEnter <buffer> let s:pos_on_insert_enter = getpos('.')
444+
autocmd InsertLeave <buffer> call s:TrimTrailingWhitespace()
444445
endif
445446
augroup END
446447

@@ -500,10 +501,14 @@ endfunction
500501

501502
function! s:TrimTrailingWhitespace() " {{{1
502503
if &l:modifiable
504+
let insert_end_pos = getpos('.')[1]
505+
let insert_start_pos = get(s:, 'pos_on_insert_enter', insert_end_pos)[1]
506+
echom insert_start_pos
507+
echom insert_end_pos
503508
" don't lose user position when trimming trailing whitespace
504509
let s:view = winsaveview()
505510
try
506-
silent! keeppatterns keepjumps %s/\s\+$//e
511+
execute 'silent! keeppatterns keepjumps :' . insert_start_pos . ',' . insert_end_pos . 's/\s\+$//e'
507512
finally
508513
call winrestview(s:view)
509514
endtry

0 commit comments

Comments
 (0)