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:
parent
97fbc404fc
commit
1b38344e00
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -761,6 +761,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1154,
|
||||
/**/
|
||||
1153,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user