2016-08-19 3 views
8

私はさらに進んでより多くのものを作りたいと思っています。たとえば、私は次のスタイルを好きになる:Atomパッケージでは、どのようにパターンを文法でオーバーラップさせますか?

setting1 = 4 
setting2 = 192.168.1.12 
etc... 

私は右の紫の=青、すべての左側にすべてのスタイルを好きになるでしょう。

原子正規表現エンジンは、ネガティブルックアヘッドまたはポジティブルックアヘッドをサポートしていません。その結果、私はbeginendディレクティブを使用しようとしましたが、それでも動作しません。つまり、私が試してみました:

enter image description here

任意のアイデア:

{ 
    # section reference 
    'begin': '^\\s*.*?=' # match a line that contains an = sign 
    'end': '.+$' # continue until the end of the line 
    'match': '^\\s*[^=]*' #only match everything that is not an equal sign 
    'name': 'blue' #style it with the blue style 
}, 

だから基本的に、私はそれがこのように見えるする必要がありますか?

答えて

3

私はこの解決策を考え出した:(reules.cson)

'scopeName': 'source.conf' 
'name': 'CONF' 
'fileTypes': ['CONF'] 
'patterns': [  
    { 
    # equality 
    'match': '(?x)^([^=;]+) (=) (.+?)\\n' 
    'captures': 
     '1' : 
     'name' : 'blue' 
     '2' : 
     'name' : 'yellow' 
     '3' : 
     'name' : 'purple' 
    } 

] 

あなたは違ったすべてのキャプチャのスタイルを設定することができます。

+0

fyi:必要な量の '([^ =;] +)'と一致しない場合、必要な '(=)(。+?)'と決して一致することはありません。そしてその逆。少なくとも、 '(?x)^([^ =;] +)(=)(。*)\\ n?' 'に変更する必要があります。 – sln

関連する問題