0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.0.1154: 'indentkeys' does not work properly

Problem:    'indentkeys' does not work properly. (Gary Johnson)
Solution:   Get the cursor line again. (Christian Brabandt, closes #2151)
This commit is contained in:
Bram Moolenaar 2017-09-26 20:04:54 +02:00
parent 97fbc404fc
commit 1b38344e00
3 changed files with 30 additions and 1 deletions

View File

@ -8202,7 +8202,7 @@ in_cinkeys(
{
/* "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

View File

@ -761,6 +761,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1154,
/**/
1153,
/**/