mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.2.2761: using "syn include" does not work properly
Problem: Using "syn include" does not work properly. Solution: Don't add current_syn_inc_tag to topgrp. (Jaehwang Jerry Jung, closes #8104)
This commit is contained in:
13
src/syntax.c
13
src/syntax.c
@@ -5990,12 +5990,17 @@ get_id_list(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (name[1] == 'A')
|
if (name[1] == 'A')
|
||||||
id = SYNID_ALLBUT;
|
id = SYNID_ALLBUT + current_syn_inc_tag;
|
||||||
else if (name[1] == 'T')
|
else if (name[1] == 'T')
|
||||||
id = SYNID_TOP;
|
{
|
||||||
|
if (curwin->w_s->b_syn_topgrp >= SYNID_CLUSTER)
|
||||||
|
id = curwin->w_s->b_syn_topgrp;
|
||||||
else
|
else
|
||||||
id = SYNID_CONTAINED;
|
id = SYNID_TOP + current_syn_inc_tag;
|
||||||
id += current_syn_inc_tag;
|
}
|
||||||
|
else
|
||||||
|
id = SYNID_CONTAINED + current_syn_inc_tag;
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (name[1] == '@')
|
else if (name[1] == '@')
|
||||||
{
|
{
|
||||||
|
@@ -920,4 +920,21 @@ func Test_syn_contained_transparent()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_syn_include_contains_TOP()
|
||||||
|
let l:case = "TOP in included syntax means its group list name"
|
||||||
|
new
|
||||||
|
syntax include @INCLUDED syntax/c.vim
|
||||||
|
syntax region FencedCodeBlockC start=/```c/ end=/```/ contains=@INCLUDED
|
||||||
|
|
||||||
|
call setline(1, ['```c', '#if 0', 'int', '#else', 'int', '#endif', '```' ])
|
||||||
|
let l:expected = ["cCppOutIf2"]
|
||||||
|
eval AssertHighlightGroups(3, 1, l:expected, 1)
|
||||||
|
" cCppOutElse has contains=TOP
|
||||||
|
let l:expected = ["cType"]
|
||||||
|
eval AssertHighlightGroups(5, 1, l:expected, 1, l:case)
|
||||||
|
syntax clear
|
||||||
|
bw!
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -750,6 +750,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 */
|
||||||
|
/**/
|
||||||
|
2761,
|
||||||
/**/
|
/**/
|
||||||
2760,
|
2760,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user