mirror of
https://github.com/neovim/neovim.git
synced 2025-09-23 19:48:32 +00:00
vim-patch:7.4.405
Problem: Screen updating is slow when using matches. Solution: Do not use the ">=" as in patch 7.4.362, check the lnum. https://code.google.com/p/vim/source/detail?r=v7-4-405
This commit is contained in:
@@ -2948,7 +2948,7 @@ win_line (
|
|||||||
&& v >= (long)shl->startcol
|
&& v >= (long)shl->startcol
|
||||||
&& v < (long)shl->endcol) {
|
&& v < (long)shl->endcol) {
|
||||||
shl->attr_cur = shl->attr;
|
shl->attr_cur = shl->attr;
|
||||||
} else if (v >= (long)shl->endcol) {
|
} else if (v >= (long)shl->endcol && shl->lnum == lnum) {
|
||||||
shl->attr_cur = 0;
|
shl->attr_cur = 0;
|
||||||
|
|
||||||
next_search_hl(wp, shl, lnum, (colnr_T)v, cur);
|
next_search_hl(wp, shl, lnum, (colnr_T)v, cur);
|
||||||
|
@@ -3,6 +3,7 @@ Test for ":match", ":2match", ":3match", "clearmatches()", "getmatches()",
|
|||||||
|
|
||||||
STARTTEST
|
STARTTEST
|
||||||
:so small.vim
|
:so small.vim
|
||||||
|
:set encoding=utf8
|
||||||
:" --- Check that "matcharg()" returns the correct group and pattern if a match
|
:" --- Check that "matcharg()" returns the correct group and pattern if a match
|
||||||
:" --- is defined.
|
:" --- is defined.
|
||||||
:let @r = "*** Test 1: "
|
:let @r = "*** Test 1: "
|
||||||
@@ -164,7 +165,27 @@ STARTTEST
|
|||||||
:if v1 != v5 && v6 == v1 && v8 == v5 && v10 == v5 && v11 == v1
|
:if v1 != v5 && v6 == v1 && v8 == v5 && v10 == v5 && v11 == v1
|
||||||
: let @r .= "OK\n"
|
: let @r .= "OK\n"
|
||||||
:else
|
:else
|
||||||
: let @r .= "FAILED\n"
|
: let @r .= "FAILED: " . v5 . "/" . v6 . "/" . v8 . "/" . v10 . "/" . v11 . "\n"
|
||||||
|
:endif
|
||||||
|
:call clearmatches()
|
||||||
|
:"
|
||||||
|
:call setline(1, 'abcdΣabcdef')
|
||||||
|
:call matchaddpos("MyGroup1", [[1, 4, 2], [1, 9, 2]])
|
||||||
|
:1
|
||||||
|
:redraw!
|
||||||
|
:let v1 = screenattr(1, 1)
|
||||||
|
:let v4 = screenattr(1, 4)
|
||||||
|
:let v5 = screenattr(1, 5)
|
||||||
|
:let v6 = screenattr(1, 6)
|
||||||
|
:let v7 = screenattr(1, 7)
|
||||||
|
:let v8 = screenattr(1, 8)
|
||||||
|
:let v9 = screenattr(1, 9)
|
||||||
|
:let v10 = screenattr(1, 10)
|
||||||
|
:let @r .= string(getmatches())."\n"
|
||||||
|
:if v1 != v4 && v5 == v4 && v6 == v1 && v7 == v1 && v8 == v4 && v9 == v4 && v10 == v1
|
||||||
|
: let @r .= "OK\n"
|
||||||
|
:else
|
||||||
|
: let @r .= "FAILED: " . v4 . "/" . v5 . "/" . v6 . "/" . v7 . "/" . v8 . "/" . v9 . "/" . v10 . "\n"
|
||||||
:endif
|
:endif
|
||||||
:call clearmatches()
|
:call clearmatches()
|
||||||
G"rp
|
G"rp
|
||||||
|
@@ -12,3 +12,5 @@ Results of test63:
|
|||||||
*** Test 11:
|
*** Test 11:
|
||||||
[{'group': 'MyGroup1', 'id': 3, 'priority': 10, 'pos1': [1, 5, 1], 'pos2': [1, 8, 3]}]
|
[{'group': 'MyGroup1', 'id': 3, 'priority': 10, 'pos1': [1, 5, 1], 'pos2': [1, 8, 3]}]
|
||||||
OK
|
OK
|
||||||
|
[{'group': 'MyGroup1', 'id': 11, 'priority': 10, 'pos1': [1, 4, 2], 'pos2': [1, 9, 2]}]
|
||||||
|
OK
|
||||||
|
@@ -223,7 +223,7 @@ static int included_patches[] = {
|
|||||||
//408,
|
//408,
|
||||||
407,
|
407,
|
||||||
//406,
|
//406,
|
||||||
//405,
|
405,
|
||||||
//404 NA
|
//404 NA
|
||||||
//403 NA
|
//403 NA
|
||||||
//402,
|
//402,
|
||||||
|
Reference in New Issue
Block a user