1

我有一个包含以下行的 perl 脚本作为示例:

print "my newvar = $newvar";

VIM 语法高亮理解双引号中的 $var 是插值变量,并用不同的颜色标记它,但是在 Geany 编辑器中,双引号内的任何文本和变量都被视为注释文本。是否可以像在 vim 中一样配置它?

4

1 回答 1

1

据我所知,问题来源是 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 ;
       *
       *

解决方案可能是在那个时候修改或添加新的词法分析器。但是由于评论中提到的更新,现在没有必要这样做。

于 2015-07-15T08:12:45.193 回答