forked from aniani/vim
patch 8.2.1568: prop_find() skips properties in the same line
Problem: prop_find() skips properties in the same line if "skipstart" is
used.
Solution: Use "continue" instead of "break". (closes #6840)
This commit is contained in:
@@ -211,6 +211,22 @@ func Test_prop_find()
|
|||||||
|
|
||||||
call prop_clear(1,6)
|
call prop_clear(1,6)
|
||||||
call prop_type_delete('prop_name')
|
call prop_type_delete('prop_name')
|
||||||
|
|
||||||
|
" Multiple props per line, start on the first, should find the second.
|
||||||
|
let expected = {'lnum': 1, 'id': 0, 'col': 14, 'end': 1, 'type': 'misspell', 'length': 2, 'start': 1}
|
||||||
|
eval ['the quikc bronw fox jumsp over the layz dog']->repeat(2)->setline(1)
|
||||||
|
call prop_type_add('misspell', #{highlight: 'ErrorMsg'})
|
||||||
|
for lnum in [1, 2]
|
||||||
|
for col in [8, 14, 24, 38]
|
||||||
|
call prop_add(lnum, col, #{type: 'misspell', length: 2})
|
||||||
|
endfor
|
||||||
|
endfor
|
||||||
|
call cursor(1, 8)
|
||||||
|
let result = prop_find(#{type: 'misspell', skipstart: 1}, 'f')
|
||||||
|
call assert_equal(expected, result)
|
||||||
|
|
||||||
|
call prop_type_delete('misspell')
|
||||||
|
bwipe!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_prop_find_smaller_len_than_match_col()
|
func Test_prop_find_smaller_len_than_match_col()
|
||||||
|
|||||||
@@ -718,7 +718,7 @@ f_prop_find(typval_T *argvars, typval_T *rettv)
|
|||||||
// on a prop and we're not skipping.
|
// on a prop and we're not skipping.
|
||||||
if (start_pos_has_prop && !skipstart)
|
if (start_pos_has_prop && !skipstart)
|
||||||
dir = -1;
|
dir = -1;
|
||||||
break;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If skipstart is true, skip the prop at start pos (even if
|
// If skipstart is true, skip the prop at start pos (even if
|
||||||
@@ -726,7 +726,7 @@ f_prop_find(typval_T *argvars, typval_T *rettv)
|
|||||||
if (start_pos_has_prop && skipstart && !seen_end)
|
if (start_pos_has_prop && skipstart && !seen_end)
|
||||||
{
|
{
|
||||||
start_pos_has_prop = 0;
|
start_pos_has_prop = 0;
|
||||||
break;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
prop_fill_dict(rettv->vval.v_dict, &prop, buf);
|
prop_fill_dict(rettv->vval.v_dict, &prop, buf);
|
||||||
|
|||||||
@@ -754,6 +754,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1568,
|
||||||
/**/
|
/**/
|
||||||
1567,
|
1567,
|
||||||
/**/
|
/**/
|
||||||
|
|||||||
Reference in New Issue
Block a user