ruby-uv 0.0.6.3 → 0.0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/uv/version.rb +1 -1
- data/syntax/bundler.syntax +11 -0
- data/syntax/cucumber_plain_text_feature.syntax +140 -0
- data/syntax/cucumber_steps.syntax +154 -0
- data/syntax/rspec.syntax +68 -0
- data/syntax/ruby_sass.syntax +395 -0
- data/syntax/shoulda.syntax +160 -0
- metadata +11 -5
data/lib/uv/version.rb
CHANGED
@@ -0,0 +1,140 @@
|
|
1
|
+
---
|
2
|
+
fileTypes:
|
3
|
+
- feature
|
4
|
+
firstLineMatch: 기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функция|Функционалност|Функционал|Свойство|Особина|Могућност|Özellik|Właściwość|Tính
|
5
|
+
năng|Trajto|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalitéit|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Funcţionalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd|Ahoy
|
6
|
+
matey!(.*)
|
7
|
+
foldingStartMarker: ^\s*\b(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو
|
8
|
+
مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий
|
9
|
+
структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка
|
10
|
+
на сценарий|Примеры|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Örnekler|Założenia|Yo-ho-ho|Wharrimean
|
11
|
+
is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon
|
12
|
+
scenariusza|Stsenaarium|Struktura scenarija|Structură scenariu|Structura scenariu|Skica|Skenario
|
13
|
+
konsep|Skenario|Situācija|Shiver me timbers|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema
|
14
|
+
dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenaro|Scenariusz|Scenariu|Scenarios|Scenariomall|Scenariomal|Scenario
|
15
|
+
Template|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenariji|Scenarijaus
|
16
|
+
šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plang
|
17
|
+
vum Szenario|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova
|
18
|
+
scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Konturo
|
19
|
+
de la scenaro|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung
|
20
|
+
kịch bản|Juhtumid|Háttér|Heave to|Hannergrond|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Fono|Exemplos|Exemples|Exemple|Exempel|Examples|Esquema
|
21
|
+
do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|EXAMPLZ|Dữ
|
22
|
+
liệu|Dis is what went down|Dead men tell no tales|Dasar|Contoh|Contexto|Contexte|Context|Contesto|Cobber|Cenário|Cenario|Cefndir|Bối
|
23
|
+
cảnh|Blokes|Beispiller|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All
|
24
|
+
y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario)
|
25
|
+
foldingStopMarker: ^\s*$
|
26
|
+
keyEquivalent: ^~C
|
27
|
+
name: Gherkin
|
28
|
+
patterns:
|
29
|
+
- include: ! '#feature_element_keyword'
|
30
|
+
- include: ! '#description'
|
31
|
+
- include: ! '#feature_keyword'
|
32
|
+
- include: ! '#step_keyword'
|
33
|
+
- include: ! '#strings_triple_quote'
|
34
|
+
- include: ! '#strings_single_quote'
|
35
|
+
- include: ! '#strings_double_quote'
|
36
|
+
- include: ! '#comments'
|
37
|
+
- include: ! '#tags'
|
38
|
+
- include: ! '#scenario_outline_variable'
|
39
|
+
- include: ! '#table'
|
40
|
+
repository:
|
41
|
+
comments:
|
42
|
+
captures:
|
43
|
+
'0':
|
44
|
+
name: comment.line.number-sign
|
45
|
+
match: \s*(#.*)
|
46
|
+
table:
|
47
|
+
begin: ^\s*\|
|
48
|
+
end: \|\s*$
|
49
|
+
name: keyword.control.cucumber.table
|
50
|
+
patterns:
|
51
|
+
- match: \w
|
52
|
+
name: source
|
53
|
+
feature_keyword:
|
54
|
+
captures:
|
55
|
+
'1':
|
56
|
+
name: keyword.language.gherkin.feature
|
57
|
+
'2':
|
58
|
+
name: string.language.gherkin.feature.title
|
59
|
+
match: ^\s*(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функция|Функционалност|Функционал|Свойство|Особина|Могућност|Özellik|Właściwość|Tính
|
60
|
+
năng|Trajto|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalitéit|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Funcţionalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd|Ahoy
|
61
|
+
matey!):(.*)\b
|
62
|
+
step_keyword:
|
63
|
+
captures:
|
64
|
+
'1':
|
65
|
+
name: keyword.language.gherkin.feature.step
|
66
|
+
match: ^\s*(하지만|조건|먼저|만일|만약|단|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|و
|
67
|
+
|متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Унда
|
68
|
+
|Тоді |Тогда |То |Та |Пусть |Припустимо, що |Припустимо |Онда |Но |Нехай |Лекин
|
69
|
+
|Коли |Когда |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если
|
70
|
+
|Допустим |Дано |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А також |А |І |Și
|
71
|
+
|Şi |És |wann |ugeholl |mä |dann |awer |an |a |Zatati |Zakładając |Zadato |Zadate
|
72
|
+
|Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna
|
73
|
+
|Ya know how |Ya gotta |Y |Wun |Wtedy |When y'all |When |Wenn |WEN |Và |Ve |Und
|
74
|
+
|Un |Thì |Then y'all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Sed
|
75
|
+
|Se |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond
|
76
|
+
|Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka
|
77
|
+
|Mając |Majd |Mais |Maar |Ma |Lorsque |Lorsqu'|Let go and haul |Kun |Kuid |Kui
|
78
|
+
|Khi |Keď |Ketika |Když |Kaj |Kai |Kada |Kad |Jeżeli |Jeśli |Ja |Ir |I CAN HAZ
|
79
|
+
|I |Ha |Givun |Givet |Given y'all |Given |Gitt |Gegeven |Gegeben sei |Gangway!
|
80
|
+
|Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota
|
81
|
+
|Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dați
|
82
|
+
fiind |Daţi fiind |Dato |Dati fiind |Date fiind |Dat fiind |Dar |Dann |Dan |Dado
|
83
|
+
|DEN |Când |Cuando |Cho |Cept |Cand |Cal |But y'all |But |Buh |Blimey! |Biết
|
84
|
+
|Bet |BUT |Aye |Avast! |Atès |Atunci |Atesa |Anrhegedig a |Angenommen |And y'all
|
85
|
+
|And |An |Amikor |Amennyiben |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor
|
86
|
+
|Adott |Aber |AN |A také |A |\* )
|
87
|
+
feature_element_keyword:
|
88
|
+
captures:
|
89
|
+
'1':
|
90
|
+
name: keyword.language.gherkin.feature.scenario
|
91
|
+
'2':
|
92
|
+
name: string.language.gherkin.scenario.title.title
|
93
|
+
match: ^\s*(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو
|
94
|
+
مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий
|
95
|
+
структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка
|
96
|
+
на сценарий|Примеры|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Örnekler|Założenia|Yo-ho-ho|Wharrimean
|
97
|
+
is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon
|
98
|
+
scenariusza|Stsenaarium|Struktura scenarija|Structură scenariu|Structura scenariu|Skica|Skenario
|
99
|
+
konsep|Skenario|Situācija|Shiver me timbers|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema
|
100
|
+
dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenaro|Scenariusz|Scenariu|Scenarios|Scenariomall|Scenariomal|Scenario
|
101
|
+
Template|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenariji|Scenarijaus
|
102
|
+
šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plang
|
103
|
+
vum Szenario|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova
|
104
|
+
scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Konturo
|
105
|
+
de la scenaro|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung
|
106
|
+
kịch bản|Juhtumid|Háttér|Heave to|Hannergrond|Grundlage|Geçmiş|Forgatókönyv
|
107
|
+
vázlat|Forgatókönyv|Fono|Exemplos|Exemples|Exemple|Exempel|Examples|Esquema
|
108
|
+
do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|EXAMPLZ|Dữ
|
109
|
+
liệu|Dis is what went down|Dead men tell no tales|Dasar|Contoh|Contexto|Contexte|Context|Contesto|Cobber|Cenário|Cenario|Cefndir|Bối
|
110
|
+
cảnh|Blokes|Beispiller|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All
|
111
|
+
y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario):(.*)
|
112
|
+
scenario_outline_variable:
|
113
|
+
begin: <
|
114
|
+
end: ! '>'
|
115
|
+
name: variable.other
|
116
|
+
strings_double_quote:
|
117
|
+
begin: ! '"'
|
118
|
+
end: ! '"'
|
119
|
+
name: string.quoted.double
|
120
|
+
patterns:
|
121
|
+
- match: \\.
|
122
|
+
name: constant.character.escape.untitled
|
123
|
+
strings_single_quote:
|
124
|
+
begin: (?<![a-zA-Z"])'
|
125
|
+
end: ! '''(?![a-zA-Z])'
|
126
|
+
name: string.quoted.single
|
127
|
+
patterns:
|
128
|
+
- match: \\.
|
129
|
+
name: constant.character.escape
|
130
|
+
strings_triple_quote:
|
131
|
+
begin: ! '"""'
|
132
|
+
end: ! '"""'
|
133
|
+
name: string.quoted.single
|
134
|
+
tags:
|
135
|
+
captures:
|
136
|
+
'0':
|
137
|
+
name: storage.type.tag.cucumber
|
138
|
+
match: (@[^@\r\n\t ]+)
|
139
|
+
scopeName: text.gherkin.feature
|
140
|
+
uuid: 85E2C52C-9B16-4A54-81E7-6D8D3ADAEFA8
|
@@ -0,0 +1,154 @@
|
|
1
|
+
---
|
2
|
+
fileTypes:
|
3
|
+
- steps.rb
|
4
|
+
foldingStartMarker: ^\s*\b(Given|When|Then|def)
|
5
|
+
foldingStopMarker: ^\s*(end)$
|
6
|
+
keyEquivalent: ^~C
|
7
|
+
name: Cucumber Steps
|
8
|
+
patterns:
|
9
|
+
- match: \b(GivenScenario|Given|When|Then)\b
|
10
|
+
name: keyword.other.step.cucumber
|
11
|
+
- begin: \b(?<=GivenScenario|Given|When|Then) (")
|
12
|
+
captures:
|
13
|
+
'1':
|
14
|
+
name: string.quoted.double.ruby
|
15
|
+
'2':
|
16
|
+
name: punctuation.definition.string.ruby
|
17
|
+
comment: string after a Cucumber keyword
|
18
|
+
contentName: string.quoted.step.cucumber.classic.ruby
|
19
|
+
end: ((\1))
|
20
|
+
patterns:
|
21
|
+
- include: ! '#interpolated_ruby'
|
22
|
+
- include: ! '#regex_sub'
|
23
|
+
- begin: \b(?<=GivenScenario|Given|When|Then) (')
|
24
|
+
captures:
|
25
|
+
'1':
|
26
|
+
name: string.quoted.single.ruby
|
27
|
+
'2':
|
28
|
+
name: punctuation.definition.string.ruby
|
29
|
+
comment: string after a Cucumber keyword
|
30
|
+
contentName: string.quoted.step.cucumber.classic.ruby
|
31
|
+
end: ((\1))
|
32
|
+
patterns:
|
33
|
+
- include: ! '#regex_sub'
|
34
|
+
- include: ! '#interpolated_ruby'
|
35
|
+
- begin: \b(?<=GivenScenario|Given|When|Then) (/)
|
36
|
+
captures:
|
37
|
+
'1':
|
38
|
+
name: string.regexp.classic.ruby
|
39
|
+
'2':
|
40
|
+
name: punctuation.definition.string.ruby
|
41
|
+
comment: regular expression after a Cucumber keyword
|
42
|
+
contentName: string.regexp.step.cucumber.classic.ruby
|
43
|
+
end: ((/[eimnosux]*))
|
44
|
+
patterns:
|
45
|
+
- include: ! '#regex_sub'
|
46
|
+
- begin: \b(?<=GivenScenario|Given|When|Then) (%r{)
|
47
|
+
captures:
|
48
|
+
'1':
|
49
|
+
name: string.regexp.mod-r.ruby
|
50
|
+
'2':
|
51
|
+
name: punctuation.definition.string.ruby
|
52
|
+
comment: regular expression after a Cucumber keyword
|
53
|
+
contentName: string.regexp.step.cucumber.mod-r.ruby
|
54
|
+
end: ((}[eimnosux]*))
|
55
|
+
patterns:
|
56
|
+
- include: ! '#regex_sub'
|
57
|
+
- begin: (?><<-CUCUMBER\b)
|
58
|
+
beginCaptures:
|
59
|
+
'0':
|
60
|
+
name: punctuation.definition.string.begin.ruby
|
61
|
+
comment: embedded Cucumber feature
|
62
|
+
contentName: text.cucumber.embedded.ruby
|
63
|
+
end: \s*CUCUMBER$
|
64
|
+
endCaptures:
|
65
|
+
'0':
|
66
|
+
name: punctuation.definition.string.end.ruby
|
67
|
+
name: string.unquoted.embedded.cucumber.feature
|
68
|
+
patterns:
|
69
|
+
- include: text.gherkin.feature
|
70
|
+
- include: source.ruby
|
71
|
+
repository:
|
72
|
+
escaped_char:
|
73
|
+
match: \\(?:[0-7]{1,3}|x[\da-fA-F]{1,2}|.)
|
74
|
+
name: constant.character.escape.ruby
|
75
|
+
interpolated_ruby:
|
76
|
+
patterns:
|
77
|
+
- captures:
|
78
|
+
'0':
|
79
|
+
name: punctuation.section.embedded.ruby
|
80
|
+
'1':
|
81
|
+
name: source.ruby.embedded.source.empty
|
82
|
+
match: ! '#\{(\})'
|
83
|
+
name: source.ruby.embedded.source
|
84
|
+
- begin: ! '#\{'
|
85
|
+
captures:
|
86
|
+
'0':
|
87
|
+
name: punctuation.section.embedded.ruby
|
88
|
+
end: \}
|
89
|
+
name: source.ruby.embedded.source
|
90
|
+
patterns:
|
91
|
+
- include: ! '#nest_curly_and_self'
|
92
|
+
- include: source.ruby
|
93
|
+
- captures:
|
94
|
+
'1':
|
95
|
+
name: punctuation.definition.variable.ruby
|
96
|
+
match: (#@)[a-zA-Z_]\w*
|
97
|
+
name: variable.other.readwrite.instance.ruby
|
98
|
+
- captures:
|
99
|
+
'1':
|
100
|
+
name: punctuation.definition.variable.ruby
|
101
|
+
match: (#@@)[a-zA-Z_]\w*
|
102
|
+
name: variable.other.readwrite.class.ruby
|
103
|
+
- captures:
|
104
|
+
'1':
|
105
|
+
name: punctuation.definition.variable.ruby
|
106
|
+
match: (#\$)[a-zA-Z_]\w*
|
107
|
+
name: variable.other.readwrite.global.ruby
|
108
|
+
nest_curly_and_self:
|
109
|
+
patterns:
|
110
|
+
- begin: \{
|
111
|
+
captures:
|
112
|
+
'0':
|
113
|
+
name: punctuation.section.scope.ruby
|
114
|
+
end: \}
|
115
|
+
patterns:
|
116
|
+
- include: ! '#nest_curly_and_self'
|
117
|
+
- include: source.ruby
|
118
|
+
regex_sub:
|
119
|
+
patterns:
|
120
|
+
- include: ! '#interpolated_ruby'
|
121
|
+
- include: ! '#escaped_char'
|
122
|
+
- captures:
|
123
|
+
'1':
|
124
|
+
name: punctuation.definition.arbitrary-repitition.ruby
|
125
|
+
'3':
|
126
|
+
name: punctuation.definition.arbitrary-repitition.ruby
|
127
|
+
match: (\{)\d+(,\d+)?(\})
|
128
|
+
name: string.regexp.arbitrary-repitition.ruby
|
129
|
+
- begin: \[(?:\^?\])?
|
130
|
+
captures:
|
131
|
+
'0':
|
132
|
+
name: punctuation.definition.character-class.ruby
|
133
|
+
end: \]
|
134
|
+
name: string.regexp.character-class.ruby
|
135
|
+
patterns:
|
136
|
+
- include: ! '#escaped_char'
|
137
|
+
- begin: \(
|
138
|
+
captures:
|
139
|
+
'0':
|
140
|
+
name: punctuation.definition.group.ruby
|
141
|
+
end: \)
|
142
|
+
name: string.regexp.group.ruby
|
143
|
+
patterns:
|
144
|
+
- include: ! '#regex_sub'
|
145
|
+
- captures:
|
146
|
+
'1':
|
147
|
+
name: punctuation.definition.comment.ruby
|
148
|
+
comment: We are restrictive in what we allow to go after the comment character
|
149
|
+
to avoid false positives, since the availability of comments depend on regexp
|
150
|
+
flags.
|
151
|
+
match: (?<=^|\s)(#)\s[[a-zA-Z0-9,. \t?!-][^\x{00}-\x{7F}]]*$
|
152
|
+
name: comment.line.number-sign.ruby
|
153
|
+
scopeName: source.ruby.rspec.cucumber.steps
|
154
|
+
uuid: B269B8F3-3A6D-4169-9E70-DD89A679416A
|
data/syntax/rspec.syntax
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
---
|
2
|
+
fileTypes:
|
3
|
+
- spec.rb
|
4
|
+
foldingStartMarker: ! "(?x)^\n\t (\\s*+\n\t (module|class|def\n\t |unless|if\n\t
|
5
|
+
\ |case\n\t |begin\n\t |for|while|until\n\t\t\t |^=begin\n\t
|
6
|
+
\ |( \"(\\\\.|[^\"])*+\" # eat a double quoted string\n\t |
|
7
|
+
'(\\\\.|[^'])*+' # eat a single quoted string\n\t | [^#\"'] #
|
8
|
+
eat all but comments and strings\n\t )*\n\t ( \\s
|
9
|
+
\ (do|begin|case)\n\t | (?<!\\$)[-+=&|*/~%^<>~] \\s*+ (if|unless)\n\t )\n\t
|
10
|
+
\ )\\b\n\t (?! [^;]*+ ; .*? \\bend\\b )\n\t |( \"(\\\\.|[^\"])*+\"
|
11
|
+
\ # eat a double quoted string\n\t | '(\\\\.|[^'])*+' #
|
12
|
+
eat a single quoted string\n\t | [^#\"'] # eat all but
|
13
|
+
comments and strings\n\t )*\n\t ( \\{ (?! [^}]*+ \\} )\n\t | \\[ (?!
|
14
|
+
[^\\]]*+ \\] )\n\t )\n\t ).*$\n\t| [#] .*? \\(fold\\) \\s*+ $ #
|
15
|
+
Sune’s special marker\n\t"
|
16
|
+
foldingStopMarker: ! "(?x)\n\t\t( (^|;) \\s*+ end \\s*+ ([#].*)? $\n\t\t| (^|;)
|
17
|
+
\\s*+ end \\. .* $\n\t\t| ^ \\s*+ [}\\]] \\s*+ ([#].*)? $\n\t\t| [#] .*?
|
18
|
+
\\(end\\) \\s*+ $ # Sune’s special marker\n\t\t| ^=end\n\t\t)"
|
19
|
+
keyEquivalent: ^~R
|
20
|
+
name: RSpec
|
21
|
+
patterns:
|
22
|
+
- match: (?<!\.)\b(before|after)\b(?![?!])
|
23
|
+
name: keyword.other.rspec
|
24
|
+
- include: ! '#behaviour'
|
25
|
+
- include: ! '#single-line-example'
|
26
|
+
- include: ! '#pending'
|
27
|
+
- include: ! '#example'
|
28
|
+
- include: source.ruby
|
29
|
+
repository:
|
30
|
+
behaviour:
|
31
|
+
begin: ^\s*(describe|context)\b
|
32
|
+
beginCaptures:
|
33
|
+
'1':
|
34
|
+
name: keyword.other.rspec.behaviour
|
35
|
+
end: \b(do)\s*$
|
36
|
+
endCaptures:
|
37
|
+
'1':
|
38
|
+
name: keyword.control.ruby.start-block
|
39
|
+
name: meta.rspec.behaviour
|
40
|
+
patterns:
|
41
|
+
- include: source.ruby
|
42
|
+
example:
|
43
|
+
begin: ^\s*(it|specify)\b
|
44
|
+
beginCaptures:
|
45
|
+
'1':
|
46
|
+
name: keyword.other.rspec.example
|
47
|
+
end: \b(do)\s*$
|
48
|
+
endCaptures:
|
49
|
+
'1':
|
50
|
+
name: keyword.control.ruby.start-block
|
51
|
+
name: meta.rspec.example
|
52
|
+
patterns:
|
53
|
+
- include: source.ruby
|
54
|
+
pending:
|
55
|
+
captures:
|
56
|
+
'1':
|
57
|
+
name: keyword.other.rspec.pending
|
58
|
+
'2':
|
59
|
+
name: string.ruby
|
60
|
+
match: ^\s*(it|specify)\s+(.*[^do])\s*$
|
61
|
+
name: meta.rspec.pending
|
62
|
+
single-line-example:
|
63
|
+
captures:
|
64
|
+
'1':
|
65
|
+
name: keyword.other.rspec.example
|
66
|
+
match: ^\s*(it|specify)\s*{
|
67
|
+
scopeName: source.ruby.rspec
|
68
|
+
uuid: 923F0A10-96B9-4792-99A4-94FEF66E0B8C
|
@@ -0,0 +1,395 @@
|
|
1
|
+
---
|
2
|
+
comment: ''
|
3
|
+
fileTypes:
|
4
|
+
- sass
|
5
|
+
foldingStartMarker: ^\s*([-%#\:\.\w\=].*)\s$
|
6
|
+
foldingStopMarker: ^\s*$
|
7
|
+
keyEquivalent: ^~S
|
8
|
+
name: Ruby Sass
|
9
|
+
patterns:
|
10
|
+
- begin: ^(\!|\$)([a-zA-Z0-9_-]+)\s*((?:\|\|)?=|:)
|
11
|
+
beginCaptures:
|
12
|
+
'1':
|
13
|
+
name: punctuation.definition.entity.sass
|
14
|
+
'2':
|
15
|
+
name: variable.other.sass
|
16
|
+
'3':
|
17
|
+
name: punctuation.definition.entity.sass
|
18
|
+
end: (;)?$
|
19
|
+
endCaptures:
|
20
|
+
'1':
|
21
|
+
name: invalid.illegal.punctuation.sass
|
22
|
+
name: meta.variable-declaration.sass
|
23
|
+
patterns:
|
24
|
+
- include: ! '#property-value'
|
25
|
+
- begin: ^(=|@mixin\s+)([a-zA-Z0-9_-]+)
|
26
|
+
beginCaptures:
|
27
|
+
'1':
|
28
|
+
name: keyword.control.at-rule.mixin.sass
|
29
|
+
'2':
|
30
|
+
name: variable.other.sass
|
31
|
+
'3':
|
32
|
+
name: punctuation.definition.entity.sass
|
33
|
+
end: (;)?$
|
34
|
+
endCaptures:
|
35
|
+
'1':
|
36
|
+
name: invalid.illegal.punctuation.sass
|
37
|
+
name: meta.variable-declaration.sass.mixin
|
38
|
+
patterns:
|
39
|
+
- include: ! '#property-value'
|
40
|
+
- begin: ^\s*(\+|@include\s+)([a-zA-Z0-9_-]+)
|
41
|
+
beginCaptures:
|
42
|
+
'1':
|
43
|
+
name: keyword.control.at-rule.import.sass
|
44
|
+
'2':
|
45
|
+
name: variable.other.sass
|
46
|
+
'3':
|
47
|
+
name: punctuation.definition.entity.sass
|
48
|
+
end: (;)?$
|
49
|
+
endCaptures:
|
50
|
+
'1':
|
51
|
+
name: invalid.illegal.punctuation.sass
|
52
|
+
name: meta.function.include.sass
|
53
|
+
patterns:
|
54
|
+
- include: ! '#property-value'
|
55
|
+
- captures:
|
56
|
+
'1':
|
57
|
+
name: keyword.control.at-rule.extend.sass
|
58
|
+
'2':
|
59
|
+
name: variable.other.sass
|
60
|
+
'3':
|
61
|
+
name: invalid.illegal.punctuation.sass
|
62
|
+
match: ^\s*(@extend)\s+([.*&#a-zA-Z][:.*&#a-zA-Z]*)\s*(;)?\s*$
|
63
|
+
name: meta.function.extend.sass
|
64
|
+
- begin: ^\s*(\+)([a-zA-Z0-9_-]+)
|
65
|
+
beginCaptures:
|
66
|
+
'1':
|
67
|
+
name: punctuation.definition.entity.sass
|
68
|
+
'2':
|
69
|
+
name: variable.other.sass
|
70
|
+
'3':
|
71
|
+
name: punctuation.definition.entity.sass
|
72
|
+
end: (;)?$
|
73
|
+
endCaptures:
|
74
|
+
'1':
|
75
|
+
name: invalid.illegal.punctuation.sass
|
76
|
+
name: meta.variable-usage.sass
|
77
|
+
patterns:
|
78
|
+
- captures:
|
79
|
+
'1':
|
80
|
+
name: punctuation.definition.entity.css
|
81
|
+
'2':
|
82
|
+
name: variable.other.sass
|
83
|
+
match: (\!|\$)([a-zA-Z0-9_-]+)
|
84
|
+
name: meta.variable-usage.sass
|
85
|
+
- include: ! '#string-single'
|
86
|
+
- include: ! '#string-double'
|
87
|
+
- begin: (?=[.*&#a-zA-Z][:.*&#a-zA-Z]*)
|
88
|
+
end: (;)?$
|
89
|
+
endCaptures:
|
90
|
+
'1':
|
91
|
+
name: invalid.illegal.punctuation.sass
|
92
|
+
name: meta.selector.css
|
93
|
+
patterns:
|
94
|
+
- include: ! '#comment-block'
|
95
|
+
- match: (&)
|
96
|
+
name: keyword.other.parent-reference.sass
|
97
|
+
- match: ! "(?x)\\b\n\t\t\t\t\t (a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|\n\t\t\t\t
|
98
|
+
\ br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|\n\t\t\t\t
|
99
|
+
\ details|dfn|div|dl|dt|em|embed|fieldset|figure|footer|form|frame|frameset|\n\t\t\t\t
|
100
|
+
\ (h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|\n\t\t\t\t
|
101
|
+
\ label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|\n\t\t\t\t
|
102
|
+
\ ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|\n\t\t\t\t
|
103
|
+
\ section|select|small|source|span|strike|strong|sub|sup|table|tbody|td|\n\t\t\t\t
|
104
|
+
\ textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b"
|
105
|
+
name: entity.name.tag.css.sass
|
106
|
+
- captures:
|
107
|
+
'1':
|
108
|
+
name: punctuation.definition.entity.css
|
109
|
+
match: (\.)[a-zA-Z0-9_-]+
|
110
|
+
name: entity.other.attribute-name.class.sass
|
111
|
+
- captures:
|
112
|
+
'1':
|
113
|
+
name: punctuation.definition.entity.sass
|
114
|
+
match: (#)[a-zA-Z][a-zA-Z0-9_-]*
|
115
|
+
name: entity.other.attribute-name.id.css.sass
|
116
|
+
- match: \*
|
117
|
+
name: entity.name.tag.wildcard.sass
|
118
|
+
- captures:
|
119
|
+
'1':
|
120
|
+
name: punctuation.definition.entity.sass
|
121
|
+
match: (:+)\b(after|before|first-child|first-letter|first-line|last-child|selection)\b
|
122
|
+
name: entity.other.attribute-name.pseudo-element.sass
|
123
|
+
- captures:
|
124
|
+
'1':
|
125
|
+
name: punctuation.definition.entity.sass
|
126
|
+
match: (:)\b(active|hover|link|visited|focus)\b
|
127
|
+
name: entity.other.attribute-name.pseudo-class.css.sass
|
128
|
+
- captures:
|
129
|
+
'1':
|
130
|
+
name: punctuation.definition.entity.sass
|
131
|
+
'2':
|
132
|
+
name: entity.other.attribute-name.attribute.sass
|
133
|
+
'3':
|
134
|
+
name: punctuation.separator.operator.sass
|
135
|
+
'4':
|
136
|
+
name: string.unquoted.attribute-value.sass
|
137
|
+
'5':
|
138
|
+
name: string.quoted.double.attribute-value.sass
|
139
|
+
'6':
|
140
|
+
name: punctuation.definition.string.begin.sass
|
141
|
+
'7':
|
142
|
+
name: punctuation.definition.string.end.sass
|
143
|
+
match: (?i)(\[)\s*(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)(?:\s*([~|^$*]?=)\s*(?:(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)|((?>(['"])(?:[^\\]|\\.)*?(\6)))))?\s*(\])
|
144
|
+
name: meta.attribute-selector.css.sass
|
145
|
+
- include: ! '#comment-block'
|
146
|
+
- begin: ^\s*((@)import\b)
|
147
|
+
beginCaptures:
|
148
|
+
'1':
|
149
|
+
name: keyword.control.at-rule.import.sass
|
150
|
+
'2':
|
151
|
+
name: punctuation.definition.keyword.sass
|
152
|
+
end: (;)?$
|
153
|
+
endCaptures:
|
154
|
+
'1':
|
155
|
+
name: invalid.illegal.punctuation.sass
|
156
|
+
name: meta.at-rule.import.sass
|
157
|
+
patterns:
|
158
|
+
- include: ! '#string-double'
|
159
|
+
- begin: (url)\s*(\()\s*
|
160
|
+
beginCaptures:
|
161
|
+
'1':
|
162
|
+
name: support.function.url.sass
|
163
|
+
'2':
|
164
|
+
name: punctuation.section.function.sass
|
165
|
+
end: \s*(\))\s*
|
166
|
+
endCaptures:
|
167
|
+
'1':
|
168
|
+
name: punctuation.section.function.sass
|
169
|
+
patterns:
|
170
|
+
- match: ! '[^''") \t]+'
|
171
|
+
name: variable.parameter.url.sass
|
172
|
+
- include: ! '#string-single'
|
173
|
+
- include: ! '#string-double'
|
174
|
+
- match: ([^"'\n;]+)
|
175
|
+
name: variable.parameter.url.sass
|
176
|
+
- begin: ^\s*((@)media)\s+(((all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)\s*,?\s*)+)\s*{
|
177
|
+
captures:
|
178
|
+
'1':
|
179
|
+
name: keyword.control.at-rule.media.sass
|
180
|
+
'2':
|
181
|
+
name: punctuation.definition.keyword.sass
|
182
|
+
'3':
|
183
|
+
name: support.constant.media.sass
|
184
|
+
end: \s*((?=;|\}))
|
185
|
+
name: meta.at-rule.media.sass
|
186
|
+
patterns:
|
187
|
+
- include: $self
|
188
|
+
- begin: (?<!|\$[-a-z])(:)(?=[-a-z])
|
189
|
+
beginCaptures:
|
190
|
+
'1':
|
191
|
+
name: punctuation.definition.entity.css.sass
|
192
|
+
end: (;)?$
|
193
|
+
endCaptures:
|
194
|
+
'1':
|
195
|
+
name: invalid.illegal.punctuation.sass
|
196
|
+
name: meta.property-name.sass
|
197
|
+
patterns:
|
198
|
+
- match: ! "(?x)\n\t\t\t\t\t (azimuth|background-attachment|background-color|background-image|\n\t\t\t\t
|
199
|
+
\ background-position|background-repeat|background|border-bottom-color|\n\t\t\t\t
|
200
|
+
\ border-bottom-style|border-bottom-width|border-bottom|border-collapse|\n\t\t\t\t
|
201
|
+
\ border-color|border-left-color|border-left-style|border-left-width|\n\t\t\t\t
|
202
|
+
\ border-left|border-radius|border-right-color|border-right-style|\n\t\t\t\t
|
203
|
+
\ border-right-width|border-right|border-spacing|border-style|border-top-color|\n\t\t\t\t
|
204
|
+
\ border-top-style|border-top-width|border-top|border-width|border|bottom|\n\t\t\t\t
|
205
|
+
\ box-shadow|caption-side|clear|clip|color|content|counter-increment|\n\t\t\t\t
|
206
|
+
\ counter-reset| cue-after|cue-before|cue|cursor|decoration|direction|display|\n\t\t\t\t
|
207
|
+
\ elevation|empty-cells|family|float|font-family|font-size-adjust|font-size|\n\t\t\t\t
|
208
|
+
\ font-stretch|font-style|font-variant|font-weight|font|height|image|indent|\n\t\t\t\t
|
209
|
+
\ left|letter-spacing|line-height|list-style-image|list-style-position|\n\t\t\t\t
|
210
|
+
\ list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|\n\t\t\t\t
|
211
|
+
\ marker-offset|margin|marks|max-height|max-width|min-height|min-width|\n\t\t\t\t
|
212
|
+
\ -moz-border-radius|-moz-box-shadow|opacity|orphans|outline-color|\n\t\t\t\t
|
213
|
+
\ outline-style|outline-width|outline|overflow(-[xy])?|padding-bottom|\n\t\t\t\t
|
214
|
+
\ padding-left|padding-right|padding-top|padding|page-break-after|\n\t\t\t\t
|
215
|
+
\ page-break-before|page-break-inside|page|pause-after|pause-before|pause|\n\t\t\t\t
|
216
|
+
\ pitch-range|pitch|play-during|position|quotes|repeat|richness|right|shadow|\n\t\t\t\t
|
217
|
+
\ size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|src|\n\t\t\t\t
|
218
|
+
\ stress|style|table-layout|text|text-align|text-decoration|text-indent|\n\t\t\t\t
|
219
|
+
\ text-shadow|text-transform|top|transform|unicode-bidi|vertical-align|\n\t\t\t\t
|
220
|
+
\ visibility|voice-family|volume|weight|white-space|widows|width|word-spacing|\n\t\t\t\t
|
221
|
+
\ z-index)\\b"
|
222
|
+
name: support.type.property-name.css.sass
|
223
|
+
- include: ! '#property-value'
|
224
|
+
- begin: ! "(?x)^[\\s\\t]+\n\t\t\t (align|azimuth|background-attachment|background-color|background-image|\n\t\t\t
|
225
|
+
\ background-position|background-repeat|background|border-bottom-color|\n\t\t\t
|
226
|
+
\ border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|\n\t\t\t
|
227
|
+
\ border-left-color|border-left-style|border-left-width|border-left|border-radius|\n\t\t\t
|
228
|
+
\ border-right-color|border-right-style|border-right-width|border-right|border-spacing|\n\t\t\t
|
229
|
+
\ border-style|border-top-color|border-top-style|border-top-width|border-top|\n\t\t\t
|
230
|
+
\ border-width|border|bottom|box-shadow|caption-side|clear|clip|color|content|\n\t\t\t
|
231
|
+
\ counter-increment|counter-reset|cue-after|cue-before|cue|cursor|decoration|direction|\n\t\t\t
|
232
|
+
\ display|elevation|empty-cells|family|float|font-family|font-size-adjust|font-size|\n\t\t\t
|
233
|
+
\ font-stretch|font-style|font-variant|font-weight|font|height|image|indent|left|\n\t\t\t
|
234
|
+
\ letter-spacing|line-height|list-style-image|list-style-position|list-style-type|\n\t\t\t
|
235
|
+
\ list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|\n\t\t\t
|
236
|
+
\ marks|max-height|max-width|min-height|min-width|-moz-border-radius|-moz-box-shadow|\n\t\t\t
|
237
|
+
\ opacity|orphans|outline-color|outline-style|outline-width|outline|overflow(-[xy])?|\n\t\t\t
|
238
|
+
\ padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|\n\t\t\t
|
239
|
+
\ page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|\n\t\t\t
|
240
|
+
\ pitch|play-during|position|quotes|repeat|richness|right|shadow|size|speak-header|\n\t\t\t
|
241
|
+
\ speak-numeral|speak-punctuation|speech-rate|speak|src|stress|style|table-layout|text|\n\t\t\t
|
242
|
+
\ text-align|text-decoration|text-indent|text-shadow|text-transform|top|transform|\n\t\t\t
|
243
|
+
\ unicode-bidi|vertical-align|visibility|voice-family|volume|-webkit-border-radius|\n\t\t\t
|
244
|
+
\ -webkit-box-shadow|weight|white-space|widows|width|word-spacing|z-index\n\t\t\t
|
245
|
+
\ )\\b(:|\\s?=)"
|
246
|
+
beginCaptures:
|
247
|
+
'1':
|
248
|
+
name: support.type.property-name.css.sass
|
249
|
+
'2':
|
250
|
+
name: punctuation.definition.entity.css.sass
|
251
|
+
end: (;)?$
|
252
|
+
endCaptures:
|
253
|
+
'1':
|
254
|
+
name: invalid.illegal.punctuation.sass
|
255
|
+
name: meta.property-name.sass
|
256
|
+
patterns:
|
257
|
+
- include: ! '#property-value'
|
258
|
+
repository:
|
259
|
+
comment-block:
|
260
|
+
begin: ^(\s*)(\/\/|\/\*)
|
261
|
+
captures:
|
262
|
+
'0':
|
263
|
+
name: punctuation.definition.comment.sass
|
264
|
+
end: ^(?!\1\s)
|
265
|
+
name: comment.sass
|
266
|
+
property-value:
|
267
|
+
begin: (:)?\s?+
|
268
|
+
beginCaptures:
|
269
|
+
'1':
|
270
|
+
name: invalid.illegal.punctuation.sass
|
271
|
+
end: (;)?$
|
272
|
+
endCaptures:
|
273
|
+
'1':
|
274
|
+
name: invalid.illegal.punctuation.sass
|
275
|
+
name: meta.property-value.sass
|
276
|
+
patterns:
|
277
|
+
- match: ([-=+*/])
|
278
|
+
name: punctuation.definition.entity.css
|
279
|
+
- captures:
|
280
|
+
'1':
|
281
|
+
name: punctuation.definition.entity.css
|
282
|
+
'2':
|
283
|
+
name: variable.other.sass
|
284
|
+
match: (\!|\$)([a-zA-Z0-9_-]+)
|
285
|
+
name: meta.variable-usage.sass
|
286
|
+
- match: ! "(?x)\\b(absolute|all-scroll|always|auto|baseline|below|bidi-override|block|bold|\n\t\t\t\t\t
|
287
|
+
\ bolder|both|bottom|break-all|break-word|capitalize|center|char|circle|\n\t\t\t\t\t
|
288
|
+
\ col-resize|collapse|crosshair|dashed|decimal|default|disabled|disc|\n\t\t\t\t\t
|
289
|
+
\ distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|\n\t\t\t\t\t
|
290
|
+
\ double|e-resize|ellipsis|fixed|groove|hand|help|hidden|horizontal|\n\t\t\t\t\t
|
291
|
+
\ ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|\n\t\t\t\t\t
|
292
|
+
\ inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|\n\t\t\t\t\t
|
293
|
+
\ inter-word|italic|justify|keep-all|left|lighter|line-edge|line-through|\n\t\t\t\t\t
|
294
|
+
\ line|list-item|loose|lower-alpha|lower-roman|lowercase|lr-tb|ltr|medium|\n\t\t\t\t\t
|
295
|
+
\ middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|\n\t\t\t\t\t
|
296
|
+
\ normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|\n\t\t\t\t\t
|
297
|
+
\ relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|\n\t\t\t\t\t
|
298
|
+
\ scroll|se-resize|separate|small-caps|solid|square|static|strict|super|\n\t\t\t\t\t
|
299
|
+
\ sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|\n\t\t\t\t\t
|
300
|
+
\ text|thick|thin|top|transparent|underline|upper-alpha|upper-roman|uppercase|\n\t\t\t\t\t
|
301
|
+
\ vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace\n\t\t\t\t\t
|
302
|
+
\ )\\b"
|
303
|
+
name: support.constant.property-value.css.sass
|
304
|
+
- match: ! "(?x)(\\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|\n\t\t\t\t\t
|
305
|
+
\ lucida(?: sans)?|symbol|system|tahoma|times(?: new roman)?|trebuchet|utopia|verdana|\n\t\t\t\t\t
|
306
|
+
\ webdings|sans-serif|serif|mono|monospace)\\b)"
|
307
|
+
name: support.constant.font-name.css.sass
|
308
|
+
- match: (\b((?:x{1,2}-)?small|smaller|medium|(?:x{1,2}-)?large|larger)\b)
|
309
|
+
name: support.constant.font-size.css.sass
|
310
|
+
- comment: http://www.w3schools.com/css/css_colors.asp
|
311
|
+
match: ! "(?x)\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|purple|\n\t\t\t\t\t
|
312
|
+
\ red|silver|teal|white|yellow)\\b"
|
313
|
+
name: support.constant.color.w3c-standard-color-name.css.sass
|
314
|
+
- comment: ! 'These colours are mostly recognised but will not validate. ref:
|
315
|
+
http://www.w3schools.com/css/css_colornames.asp'
|
316
|
+
match: ! "(?x)\\b(seagreen|hotpink|lawngreen|darkgreen|violet|darkred|crimson|green|\n\t\t\t\t\t
|
317
|
+
\ sandybrown|navy|magenta|darkslategray|steelblue|silver|darkgrey|mistyrose|gray|\n\t\t\t\t\t
|
318
|
+
\ aliceblue|blueviolet|lightpink|saddlebrown|chocolate|limegreen|lightslategray|\n\t\t\t\t\t
|
319
|
+
\ yellowgreen|pink|lightskyblue|indigo|lightblue|floralwhite|navajowhite|\n\t\t\t\t\t
|
320
|
+
\ mediumvioletred|honeydew|aquamarine|blue|olivedrab|palegreen|slategray|lavenderblush|\n\t\t\t\t\t
|
321
|
+
\ wheat|moccasin|mediumturquoise|mediumspringgreen|lightcoral|mintcream|tomato|\n\t\t\t\t\t
|
322
|
+
\ lightgrey|black|darkmagenta|dimgray|darkturquoise|midnightblue|plum|indianred|coral|\n\t\t\t\t\t
|
323
|
+
\ lightcyan|mediumslateblue|darkcyan|darkslateblue|darkkhaki|ivory|azure|khaki|\n\t\t\t\t\t
|
324
|
+
\ powderblue|darkgoldenrod|orangered|burlywood|turquoise|royalblue|maroon|cornsilk|\n\t\t\t\t\t
|
325
|
+
\ antiquewhite|yellow|teal|orange|grey|darkslategrey|slateblue|seashell|darkorchid|\n\t\t\t\t\t
|
326
|
+
\ snow|lightslategrey|cyan|greenyellow|palevioletred|goldenrod|deepskyblue|lightyellow|\n\t\t\t\t\t
|
327
|
+
\ lightseagreen|sienna|lemonchiffon|darkviolet|paleturquoise|slategrey|skyblue|purple|\n\t\t\t\t\t
|
328
|
+
\ mediumpurple|cadetblue|fuchsia|chartreuse|darksalmon|lightgoldenrodyellow|white|\n\t\t\t\t\t
|
329
|
+
\ springgreen|olive|forestgreen|peachpuff|peru|dimgrey|mediumseagreen|thistle|firebrick|\n\t\t\t\t\t
|
330
|
+
\ darkgray|mediumaquamarine|darkolivegreen|mediumblue|palegoldenrod|blanchedalmond|\n\t\t\t\t\t
|
331
|
+
\ ghostwhite|gold|gainsboro|darkseagreen|cornflowerblue|lime|lavender|beige|orchid|\n\t\t\t\t\t
|
332
|
+
\ mediumorchid|whitesmoke|bisque|lightgray|tan|salmon|rosybrown|red|dodgerblue|brown|\n\t\t\t\t\t
|
333
|
+
\ aqua|oldlace|deeppink|papayawhip|lightsalmon|lightsteelblue|darkorange|darkblue|linen|\n\t\t\t\t\t
|
334
|
+
\ lightgreen)\\b"
|
335
|
+
name: invalid.deprecated.color.w3c-non-standard-color-name.css.sass
|
336
|
+
- match: (-|\+)?\s*[0-9]+(\.[0-9]+)?
|
337
|
+
name: constant.numeric.css
|
338
|
+
- match: (?<=[\d])(px|pt|cm|mm|in|em|ex|pc)\b|%
|
339
|
+
name: keyword.other.unit.css
|
340
|
+
- captures:
|
341
|
+
'1':
|
342
|
+
name: punctuation.definition.constant.css
|
343
|
+
match: (#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b
|
344
|
+
name: constant.other.color.rgb-value.css
|
345
|
+
- include: ! '#string-double'
|
346
|
+
- include: ! '#string-single'
|
347
|
+
- begin: (rgb|url|attr|counter|counters|local|format)\s*(\()
|
348
|
+
beginCaptures:
|
349
|
+
'1':
|
350
|
+
name: support.function.misc.sass
|
351
|
+
'2':
|
352
|
+
name: punctuation.section.function.sass
|
353
|
+
end: (\))
|
354
|
+
endCaptures:
|
355
|
+
'1':
|
356
|
+
name: punctuation.section.function.sass
|
357
|
+
patterns:
|
358
|
+
- include: ! '#string-single'
|
359
|
+
- include: ! '#string-double'
|
360
|
+
- match: (\b0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\s*,\s*)(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\s*,\s*)(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\b)
|
361
|
+
name: constant.other.color.rgb-value.sass
|
362
|
+
- match: \b([0-9]{1,2}|100)\s*%,\s*([0-9]{1,2}|100)\s*%,\s*([0-9]{1,2}|100)\s*%
|
363
|
+
name: constant.other.color.rgb-percentage.sass
|
364
|
+
- match: ! '[^''") \t]+'
|
365
|
+
name: variable.parameter.misc.sass
|
366
|
+
- match: \!\s*important
|
367
|
+
name: keyword.other.important.sass
|
368
|
+
string-double:
|
369
|
+
begin: ! '"'
|
370
|
+
beginCaptures:
|
371
|
+
'0':
|
372
|
+
name: punctuation.definition.string.begin.sass
|
373
|
+
end: ! '"'
|
374
|
+
endCaptures:
|
375
|
+
'0':
|
376
|
+
name: punctuation.definition.string.end.sass
|
377
|
+
name: string.quoted.double.sass
|
378
|
+
patterns:
|
379
|
+
- match: \\.
|
380
|
+
name: constant.character.escape.sass
|
381
|
+
string-single:
|
382
|
+
begin: ! ''''
|
383
|
+
beginCaptures:
|
384
|
+
'0':
|
385
|
+
name: punctuation.definition.string.begin.sass
|
386
|
+
end: ! ''''
|
387
|
+
endCaptures:
|
388
|
+
'0':
|
389
|
+
name: punctuation.definition.string.end.sass
|
390
|
+
name: string.quoted.single.sass
|
391
|
+
patterns:
|
392
|
+
- match: \\.
|
393
|
+
name: constant.character.escape.sass
|
394
|
+
scopeName: source.sass
|
395
|
+
uuid: F73505F1-0CD8-4ED1-93AA-B88050B3D8D4
|
@@ -0,0 +1,160 @@
|
|
1
|
+
---
|
2
|
+
fileTypes: []
|
3
|
+
foldingStartMarker: ! "(?x)^\n\t (\\s*+\n\t (module|class|def\n\t |unless|if\n\t
|
4
|
+
\ |case\n\t |begin\n\t |for|while|until\n\t |( \"(\\\\.|[^\"])*+\"
|
5
|
+
\ # eat a double quoted string\n\t | '(\\\\.|[^'])*+' # eat
|
6
|
+
a single quoted string\n\t | [^#\"'] # eat all but comments
|
7
|
+
and strings\n\t )*\n\t ( \\s (do|begin|case)\n\t
|
8
|
+
\ | [-+=&|*/~%^<>~] \\s*+ (if|unless)\n\t )\n\t )\\b\n\t (?!
|
9
|
+
[^;]*+ ; .*? \\bend\\b )\n\t |( \"(\\\\.|[^\"])*+\" # eat a double
|
10
|
+
quoted string\n\t | '(\\\\.|[^'])*+' # eat a single quoted string\n\t
|
11
|
+
\ | [^#\"'] # eat all but comments and strings\n\t )*\n\t
|
12
|
+
\ ( \\{ (?! [^}]*+ \\} )\n\t | \\[ (?! [^\\]]*+ \\] )\n\t )\n\t ).*$\n\t|
|
13
|
+
\ [#] .*? \\(fold\\) \\s*+ $ # Sune’s special marker\n\t"
|
14
|
+
foldingStopMarker: ! "(?x)\n\t\t( (^|;) \\s*+ end \\s*+ ([#].*)? $\n\t\t| ^
|
15
|
+
\ \\s*+ [}\\]] \\s*+ ([#].*)? $\n\t\t| [#] .*? \\(end\\) \\s*+ $ # Sune’s
|
16
|
+
special marker\n\t\t)"
|
17
|
+
keyEquivalent: ^~R
|
18
|
+
name: Ruby on Rails (Shoulda)
|
19
|
+
patterns:
|
20
|
+
- begin: (^\s*)(?=class\s+(([.a-zA-Z0-9_:]+ControllerTest(\s*<\s*[.a-zA-Z0-9_:]+)?)))
|
21
|
+
comment: Uses lookahead to match classes with the ControllerTest suffix; includes
|
22
|
+
'source.ruby' to avoid infinite recursion
|
23
|
+
end: ^\1(?=end)\b
|
24
|
+
name: meta.rails.functional_test
|
25
|
+
patterns:
|
26
|
+
- include: source.ruby
|
27
|
+
- include: $self
|
28
|
+
- begin: (^\s*)(?=class\s+(([.a-zA-Z0-9_:]+Controller\b(\s*<\s*[.a-zA-Z0-9_:]+)?)|(<<\s*[.a-zA-Z0-9_:]+)))(?!.+\bend\b)
|
29
|
+
comment: Uses lookahead to match classes with the Controller suffix; includes 'source.ruby'
|
30
|
+
to avoid infinite recursion
|
31
|
+
end: ^\1(?=end)\b
|
32
|
+
name: meta.rails.controller
|
33
|
+
patterns:
|
34
|
+
- include: source.ruby
|
35
|
+
- include: $self
|
36
|
+
- begin: (^\s*)(?=module\s+((([A-Z]\w*::)*)[A-Z]\w*)Helper)
|
37
|
+
comment: Uses lookahead to match modules with the Helper suffix; includes 'source.ruby'
|
38
|
+
to avoid infinite recursion
|
39
|
+
end: ^\1(?=end)\b
|
40
|
+
name: meta.rails.helper
|
41
|
+
patterns:
|
42
|
+
- include: source.ruby
|
43
|
+
- include: $self
|
44
|
+
- begin: (^\s*)(?=class\s+(([.a-zA-Z0-9_:]+(\s*<\s*ActionMailer::Base))))
|
45
|
+
comment: Uses lookahead to match classes that inherit from ActionMailer::Base; includes
|
46
|
+
'source.ruby' to avoid infinite recursion
|
47
|
+
end: ^\1(?=end)\b
|
48
|
+
name: meta.rails.mailer
|
49
|
+
patterns:
|
50
|
+
- include: source.ruby
|
51
|
+
- include: $self
|
52
|
+
- begin: (^\s*)(?=class\s+.+ActiveRecord::Base)
|
53
|
+
comment: Uses lookahead to match classes that (may) inherit from ActiveRecord::Base;
|
54
|
+
includes 'source.ruby' to avoid infinite recursion
|
55
|
+
end: ^\1(?=end)\b
|
56
|
+
name: meta.rails.model
|
57
|
+
patterns:
|
58
|
+
- include: source.ruby
|
59
|
+
- include: $self
|
60
|
+
- begin: (^\s*)(?=class\s+.+ActiveRecord::Migration)
|
61
|
+
comment: Uses lookahead to match classes that (may) inherit from ActiveRecord::Migration;
|
62
|
+
includes 'source.ruby' to avoid infinite recursion
|
63
|
+
end: ^\1(?=end)\b
|
64
|
+
name: meta.rails.migration
|
65
|
+
patterns:
|
66
|
+
- begin: (^\s*)(?=change_table)\b
|
67
|
+
comment: Uses lookahead to match methods change_table; includes 'source.ruby'
|
68
|
+
to avoid infinite recursion
|
69
|
+
contentName: meta.rails.migration.change_table
|
70
|
+
end: ^\1(?=end)\b
|
71
|
+
patterns:
|
72
|
+
- include: source.ruby
|
73
|
+
- include: $self
|
74
|
+
- begin: (^\s*)(?=create_table)\b
|
75
|
+
comment: Uses lookahead to match methods create_table; includes 'source.ruby'
|
76
|
+
to avoid infinite recursion
|
77
|
+
contentName: meta.rails.migration.create_table
|
78
|
+
end: ^\1(?=end)\b
|
79
|
+
patterns:
|
80
|
+
- include: source.ruby
|
81
|
+
- include: $self
|
82
|
+
- include: source.ruby
|
83
|
+
- include: $self
|
84
|
+
- begin: (^\s*)(?=ActiveRecord::Schema.define)
|
85
|
+
end: ^\1(?=end)\b
|
86
|
+
name: meta.rails.schema
|
87
|
+
patterns:
|
88
|
+
- begin: (^\s*)(?=create_table)\b
|
89
|
+
comment: Uses lookahead to match methods create_table; includes 'source.ruby'
|
90
|
+
to avoid infinite recursion
|
91
|
+
contentName: meta.rails.migration.create_table
|
92
|
+
end: ^\1(?=end)\b
|
93
|
+
patterns:
|
94
|
+
- include: source.ruby
|
95
|
+
- include: $self
|
96
|
+
- begin: (^\s*)(?=class\s+(?![.a-zA-Z0-9_:]+ControllerTest)(([.a-zA-Z0-9_:]+Test(\s*<\s*[.a-zA-Z0-9_:]+)?)|(<<\s*[.a-zA-Z0-9_:]+)))
|
97
|
+
comment: Uses lookahead to match classes with the Test suffix; includes 'source.ruby'
|
98
|
+
to avoid infinite recursion
|
99
|
+
end: ^\1(?=end)\b
|
100
|
+
name: meta.rails.unit_test
|
101
|
+
patterns:
|
102
|
+
- include: ! '#shoulda'
|
103
|
+
- include: source.ruby
|
104
|
+
- include: $self
|
105
|
+
- begin: (^\s*)ActionController::Routing::Routes
|
106
|
+
comment: Uses ActionController::Routing::Routes to determine it is a routes file;
|
107
|
+
includes 'source.ruby' to avoid infinite recursion
|
108
|
+
end: ^\1(?=end)\b
|
109
|
+
name: meta.rails.routes
|
110
|
+
patterns:
|
111
|
+
- include: source.ruby
|
112
|
+
- include: $self
|
113
|
+
- match: \b(before_filter|skip_before_filter|skip_after_filter|after_filter|around_filter|filter|filter_parameter_logging|layout|require_dependency|render|render_action|render_text|render_file|render_template|render_nothing|render_component|render_without_layout|rescue_from|url_for|redirect_to|redirect_to_path|redirect_to_url|respond_to|helper|helper_method|model|service|observer|serialize|scaffold|verify|hide_action)\b
|
114
|
+
name: support.function.actionpack.rails
|
115
|
+
- match: \b(check_box|content_for|error_messages_for|form_for|fields_for|file_field|hidden_field|image_submit_tag|label|link_to|password_field|radio_button|submit|text_field|text_area)\b
|
116
|
+
name: support.function.viewhelpers.rails
|
117
|
+
- match: \b(named_scope|after_create|after_destroy|after_save|after_update|after_validation|after_validation_on_create|after_validation_on_update|before_create|before_destroy|before_save|before_update|before_validation|before_validation_on_create|before_validation_on_update|composed_of|belongs_to|has_one|has_many|has_and_belongs_to_many|validate|validate_on_create|validates_numericality_of|validate_on_update|validates_acceptance_of|validates_associated|validates_confirmation_of|validates_each|validates_format_of|validates_inclusion_of|validates_exclusion_of|validates_length_of|validates_presence_of|validates_size_of|validates_uniqueness_of|attr_protected|attr_accessible|attr_readonly|accepts_nested_attributes_for|default_scope)\b
|
118
|
+
name: support.function.activerecord.rails
|
119
|
+
- match: \b(alias_method_chain|alias_attribute|delegate|cattr_accessor|mattr_accessor|returning|memoize)\b
|
120
|
+
name: support.function.activesupport.rails
|
121
|
+
- include: source.ruby
|
122
|
+
repository:
|
123
|
+
shoulda:
|
124
|
+
patterns:
|
125
|
+
- begin: (^\s*)(?=(context)\s+((")(.*)\4)\s+(do))\b
|
126
|
+
beginCaptures:
|
127
|
+
'2':
|
128
|
+
name: support.function.context.ruby.rails.shoulda
|
129
|
+
end: ^\1(?=end)\b
|
130
|
+
name: source.ruby.rails.shoulda
|
131
|
+
patterns:
|
132
|
+
- begin: ^\s*(context)\b
|
133
|
+
end: \b(do)\s*$
|
134
|
+
name: meta.context.ruby.shoulda
|
135
|
+
patterns:
|
136
|
+
- include: source.ruby
|
137
|
+
- match: \b(should_validate_presence_of|should_validate_uniqueness_of|should_not_allow_mass_assignment_of|should_not_allow_values_for|should_allow_values_for|should_ensure_length_in_range|should_ensure_length_at_least|should_ensure_value_in_range|should_validate_numericality_of|should_have_many|should_have_and_belong_to_many|should_have_one|should_belong_to|should_be_restful|should_set_the_flash_to|should_not_set_the_flash|should_assign_to|should_not_assign_to|should_respond_with|should_render_template|should_redirect_to|should_render_a_form|setup|teardown|fixtures|load_all_fixtures|should_have_db_column|should_have_db_columns|should_have_index|should_have_indices|should_validate_acceptance_of|shuold_set_the_flash_to|should_have_readonly_attributes|should_change|should_not_change|should_have_named_scope|should_ensure_length_is|should_filter_params|should_respond_with_content_type|should_route|should_return_from_session)\b
|
138
|
+
name: support.shoulda.macro
|
139
|
+
- begin: ^\s*(should|should_eventually)\b
|
140
|
+
end: \b(do)\s*$
|
141
|
+
endCaptures:
|
142
|
+
'1':
|
143
|
+
name: keyword.control.start-block.ruby.shoulda
|
144
|
+
name: meta.should.ruby.shoulda
|
145
|
+
patterns:
|
146
|
+
- include: source.ruby
|
147
|
+
- begin: ^\s*(setup)\b
|
148
|
+
beginCaptures:
|
149
|
+
'1':
|
150
|
+
name: keyword.other.setup.ruby.rails.shoulda
|
151
|
+
end: \b(do)\s*$
|
152
|
+
endCaptures:
|
153
|
+
'1':
|
154
|
+
name: keyword.control.start-block.ruby.shoulda
|
155
|
+
patterns:
|
156
|
+
- include: source.ruby
|
157
|
+
- include: ! '#shoulda'
|
158
|
+
- include: source.ruby
|
159
|
+
scopeName: source.ruby.rails
|
160
|
+
uuid: 7ED2CAAB-8CE7-4A09-9E66-1D622C60029B
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-uv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.6.
|
4
|
+
version: 0.0.6.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ date: 2011-09-20 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: spox-textpow
|
17
|
-
requirement: &
|
17
|
+
requirement: &70183754766680 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70183754766680
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: spox-plist
|
28
|
-
requirement: &
|
28
|
+
requirement: &70183754766000 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,7 +33,7 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70183754766000
|
37
37
|
description: Ruby syntax highlighting
|
38
38
|
email:
|
39
39
|
- spox@modspox.com
|
@@ -120,6 +120,7 @@ files:
|
|
120
120
|
- syntax/blog_textile.syntax
|
121
121
|
- syntax/build.syntax
|
122
122
|
- syntax/bulletin_board.syntax
|
123
|
+
- syntax/bundler.syntax
|
123
124
|
- syntax/cake.syntax
|
124
125
|
- syntax/camlp4.syntax
|
125
126
|
- syntax/cm.syntax
|
@@ -129,6 +130,8 @@ files:
|
|
129
130
|
- syntax/css.syntax
|
130
131
|
- syntax/css_experimental.syntax
|
131
132
|
- syntax/csv.syntax
|
133
|
+
- syntax/cucumber_plain_text_feature.syntax
|
134
|
+
- syntax/cucumber_steps.syntax
|
132
135
|
- syntax/d.syntax
|
133
136
|
- syntax/diff.syntax
|
134
137
|
- syntax/dokuwiki.syntax
|
@@ -219,14 +222,17 @@ files:
|
|
219
222
|
- syntax/remind.syntax
|
220
223
|
- syntax/restructuredtext.syntax
|
221
224
|
- syntax/rez.syntax
|
225
|
+
- syntax/rspec.syntax
|
222
226
|
- syntax/ruby.syntax
|
223
227
|
- syntax/ruby_experimental.syntax
|
224
228
|
- syntax/ruby_on_rails.syntax
|
229
|
+
- syntax/ruby_sass.syntax
|
225
230
|
- syntax/s5.syntax
|
226
231
|
- syntax/scheme.syntax
|
227
232
|
- syntax/scilab.syntax
|
228
233
|
- syntax/setext.syntax
|
229
234
|
- syntax/shell-unix-generic.syntax
|
235
|
+
- syntax/shoulda.syntax
|
230
236
|
- syntax/slate.syntax
|
231
237
|
- syntax/sql.syntax
|
232
238
|
- syntax/sql_rails.syntax
|