2016-03-11 68 views
1

在木偶有兩種形式的要求:語法正則表達式中的崇高/ TextMate中/ ATOM

關係

require foo 

Metaparameter

require => 'foo' 

我想改變Texmate/Sublime Text/Atom語法,以便正確突出顯示它們。

現在的代碼如下所示(凌動包,但他們都有着相同的TextMate風格的正則表達式):

{ 
    'begin': '(?i)\\b(import|include|require)\\b\\s*' 
    'beginCaptures': 
     '1': 
     'name': 'keyword.control.import.include.puppet' 
    'end': '(?=\\s|$)' 
    'name': 'meta.include.puppet' 
} 

然而,這意味着require =>仍然得到強調:

Example incorrect highlighting

當語法正確時,require =>應該是橙色。

如何更改正則表達式以適應此要求?它是否需要單獨的規則?

回答

1

您可以添加一個負前瞻:

(?!.*=>)\b(import|include|require)\b\s* 

這將斷言,行不包含=>看到Live Demo

0

嘗試以下的正則表達式。我知道這很漫長,但試圖涵蓋很多可能性。

(?mi)(?<=\b)(require|import|include)\s+(=>\s*)?('\S+'|[^\s']+)\s*$ 

DEMO這裏

相關問題