我有一个包含以下行的perl脚本作为示例:
print "my newvar = $newvar";
VIM语法高亮显示双引号中的$ var是插值变量,并将其标记为不同颜色,但在Geany编辑器中,双引号内的任何文本和变量都被视为注释文本。是否可以像在vim中一样配置它?
答案 0 :(得分:1)
据我所知,问题来源是Scintilla的Perl Lexer。
所以在那个旧词法分析器中,如果样式上下文处于默认状态并且双引号匹配,那么样式上下文将被设置为 string 状态,另一方面如果样式位于 string 状态,则双引号匹配,则样式 context 将设置为返回默认状态。双引号之间没有任何其他样式上下文切换。
提供代码段示例:
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 ;
*
*
解决方案可能是修改或添加新的词法分析器。但是,由于评论中提到的更新现在没有必要。