vim-patch:8.0.1154: 'indentkeys' does not work properly (#8980)

Problem:    'indentkeys' does not work properly. (Gary Johnson)
Solution:   Get the cursor line again. (Christian Brabandt, closes vim/vim#2151)
1b38344e00
This commit is contained in:
Jan Edmund Lazo 2018-09-11 13:55:46 -04:00 committed by Justin M. Keyes
parent d6b3c09129
commit 61df24b998
2 changed files with 28 additions and 1 deletions

View File

@ -6950,7 +6950,7 @@ bool in_cinkeys(int keytyped, int when, bool line_is_empty)
if (match && try_match_word && !try_match) {
/* "0=word": Check if there are only blanks before the
* word. */
if (getwhitecols(line) !=
if (getwhitecols_curline() !=
(int)(curwin->w_cursor.col - (p - look))) {
match = false;
}

View File

@ -314,6 +314,33 @@ func! Test_edit_11()
bw!
endfunc
func! Test_edit_11_indentexpr()
" Test that indenting kicks in
new
" Use indentexpr instead of cindenting
func! Do_Indent()
let pline=prevnonblank(v:lnum)
if empty(getline(v:lnum))
if getline(pline) =~ 'if\|then'
return shiftwidth()
else
return 0
endif
else
return 0
endif
endfunc
setl indentexpr=Do_Indent() indentkeys+=0=then,0=fi
call setline(1, ['if [ $this ]'])
call cursor(1, 1)
call feedkeys("othen\<cr>that\<cr>fi", 'tnix')
call assert_equal(['if [ $this ]', "then", "\<tab>that", "fi"], getline(1, '$'))
set cinkeys&vim indentkeys&vim
set nocindent indentexpr=
delfu Do_Indent
bw!
endfunc
func! Test_edit_12()
" Test changing indent in replace mode
new