2013-11-25 61 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 ; 
     * 
     * 

解決方案可以是修改或在那個時候增加新的詞法分析。但是由於評論中提到的更新現在沒有必要。