我有一个包含以下行的 perl 脚本作为示例:
print "my newvar = $newvar";
VIM 语法高亮理解双引号中的 $var 是插值变量,并用不同的颜色标记它,但是在 Geany 编辑器中,双引号内的任何文本和变量都被视为注释文本。是否可以像在 vim 中一样配置它?
据我所知,问题来源是 Scintilla 中的 Perl Lexer。
因此,在那个旧词法分析器中,如果样式上下文处于默认状态并且双引号匹配,则样式上下文将设置为字符串状态,另一方面,如果样式处于字符串状态双引号匹配,则样式上下文将是设置回默认状态。双引号之间没有任何其他样式上下文切换。
给出一个代码段示例:
for (; scCTX . More () ; scCTX . Forward ()) {
switch ( scCTX . state ) {
case SCE_SPARKS_DEFAULT :
if ( scCTX . Match ( '\"' )) {
scCTX . SetState ( SCE_SPARKS_STRING );
break ;
};
*
*
*
case SCE_SPARKS_STRING :
if ( scCTX . Match ('\"')) {
scCTX . ForwardSetState ( SCE_SPARKS_DEFAULT );
};
break ;
*
*
解决方案可能是在那个时候修改或添加新的词法分析器。但是由于评论中提到的更新,现在没有必要这样做。