2013-11-25 39 views
1

我有一个包含以下行作为例如Perl脚本强调:geany语法双引号

print "my newvar = $newvar"; 

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

+0

有一个开放的[特性请求(http://sourceforge.net/p/geany-plugins/feature-requests/85/)从2011年的突出显示内插字符串。从[此功能要求(http://sourceforge.net/p/scintilla/feature-requests/815/)在Scintilla的它似乎尚未落实。令我困惑的是,Windows上基于Scintilla的Notepad ++没有这个问题。 – psxls

+0

关于Scintilla的不知道,但我知道有很多的编辑有剧本上下的高亮机制和记事本+ +很可能是下游实现所需的功能。如果出现这种情况,您可能会检查记事本++的安装,并确定可能需要进行哪些更改才能使Geany执行相同的操作。 –

+0

你应该多增加一些内容到freature跟踪计算器作为是不正确的地方 – frlan

回答

1

据我知道问题的根源是Perl的词法分析器Scintilla的中。

所以在老词法分析器如果样式上下文是默认状态和双引号匹配,然后风格的背景将被设定为状态,在另一方面,如果风格在状态双引号匹配然后风格方面将被设置为备份默认状态。双引号之间没有任何其他样式上下文切换。

用于给出一个代码段例如:

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 ; 
     * 
     * 

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