2016-08-19 6 views
8

Я хочу идти дальше и стилить больше вещей. Например, я хотел бы стиль следующего:В пакете Atom, как мне переопределить шаблоны в грамматике?

setting1 = 4 
setting2 = 192.168.1.12 
etc... 

Я хотел стилизовать все, чтобы слева от = синего и все, чтобы право фиолетового.

Проблема заключается в том, что двигатель с двигателем атома не поддерживает отрицательный внешний вид или позитивный взгляд вперед. В результате я попытался использовать директивы begin и end, но это все еще не работает. Другими словами, я попробовал:

{ 
    # 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 
}, 

Так в основном, мне это нужно, чтобы выглядеть следующим образом:

enter image description here

Есть идеи?

ответ

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