我正在编写vim语法高亮脚本,以确定全局参数是否仅大写。如果不是,我想突出显示它。 问题在于全局参数位于页面的特定部分。
代码看起来像这样:
// Find All elements at once
list<WebElement> pictureURLs = driver.findElements(By.xpath("//div[@class='gallery-
list']//a/picture"));
//Loop through the element list & print the required attributes
for(WebElement pictureurl:pictureURLs)
{
System.out.println(pictureurl..get_attribute("sl-video-preview"));
}
所以我希望 VARS 下的所有包含小写字母的变量都突出显示-在我的示例中,仅应突出显示$ {var2}。
我试图这样做:
***VARS***
${VAR1}
${var2}
***OTHERS***
${var3}
但是还会突出显示$ {VAR1}和$ {var2}。
答案 0 :(得分:0)
一个问题是输入中的简单错字:
hi link global_variables ErrorMsg
应该是
hi link global_var_match ErrorMsg
即匹配不良,而不是包含区域。但是,通过此更改,包含小写字母的变量仍在***OTHERS***
下匹配。
该问题是由您与***OTHERS***
的匹配中存在虚假空格引起的。
我还更改了您的global_var_match
正则表达式。我有它:
syn match global_var_match "\${[^}]*[a-z][^}]*}" contained
在像这样的测试案例中,这对我来说表现很好
${VAR} blah ${VAr} ${vAR}
和其他:仅标记包含小写字母的var。仍在调查该区域不正确的原因。
这是我所拥有的:
syn match global_var_match "\${[^}]*[a-z][^}]*}" contained
syn region global_variables start="\(\*\*\*VARS\*\*\*\)\@<=" end="\(\*\*\*OTHERS
\*\*\*\)\@=" contains=global_var_match
hi link global_var_match ErrorMsg