Merge "2.13: Cleanup duplicate paragraph"
[lttng-docs.git] / eos-adoc.sublime-syntax
CommitLineData
76ceaf09
PP
1%YAML 1.2
2---
ae1833e0 3
76ceaf09
PP
4# Copyright (c) 2018 Philippe Proulx <pproulx@efficios.com>
5#
6# This is a Sublime Text 3 syntax definition for the specific subset of
7# AsciiDoc markup used for EfficiOS projects, namely:
8#
9# * The LTTng Documentation
10# * The LTTng man pages
11# * The Babeltrace man pages
12#
13# Permission is hereby granted, free of charge, to any person obtaining a copy
14# of this software and associated documentation files (the "Software"), to deal
15# in the Software without restriction, including without limitation the rights
16# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17# copies of the Software, and to permit persons to whom the Software is
18# furnished to do so, subject to the following conditions:
19#
20# The above copyright notice and this permission notice shall be included in
21# all copies or substantial portions of the Software.
22#
23# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
29# THE SOFTWARE.
30
31name: EfficiOS AsciiDoc
32file_extensions:
33 - asciidoc
34 - adoc
35scope: source.eos-adoc
36contexts:
37 main:
38 - include: comment-start
39 - include: include
40 - include: image
41 - include: set-adoc-attr
42 - include: man-heading
43 - include: section-id
44 - include: term-sig
45 - include: source-sig
46 - include: gen-role
47 - include: verse-sig
48 - include: gen-pre-sig
49 - include: admonition-sig
ae1833e0 50 - include: admonition-para
76ceaf09
PP
51 - include: internal-link-start
52 - include: external-link-start
53 - include: list-bullets
54 - include: block-sep
55 - include: dl
56 - include: inline
57 comment-start:
58 - match: '^/////*$'
59 push: comment
60 comment:
61 - meta_scope: comment.block.eos-adoc
62 - match: '^/////*$'
63 pop: true
64 include:
65 - match: '^include::.*$'
ae1833e0 66 scope: entity.name.tag.include.eos-adoc
76ceaf09
PP
67 image:
68 - match: '^image::.*$'
ae1833e0 69 scope: entity.name.tag.image.eos-adoc
76ceaf09
PP
70 man-heading:
71 - match: '^[A-Z][A-Z -]*$'
72 scope: keyword.control.conditional.heading.eos-adoc
73 push: man-heading-underline
74 man-heading-underline:
75 - match: '^-+$'
76 scope: keyword.control.conditional.heading.eos-adoc
77 pop: true
78 - match: '^~+$'
79 scope: keyword.control.conditional.heading.eos-adoc
80 pop: true
81 - match: '^$'
82 pop: true
83 section-id:
84 - match: '^\[\[[a-zA-Z0-9_-]+]]$'
85 scope: string.quoted.double.anchor.eos-adoc
86 push: heading-start
87 heading-start:
88 - match: '=+'
89 set: heading
90 - match: '^[^\[].*$'
91 scope: keyword.control.conditional.heading.eos-adoc
92 set: man-heading-underline
93 heading:
94 - meta_scope: keyword.control.conditional.heading.eos-adoc
95 - match: '$'
96 pop: true
97 term-sig:
98 - match: '^\[role="term"]$'
99 scope: constant.character.eos-adoc
100 push: term-start
101 term-start:
102 - match: '^-----*$'
103 set: term
104 term:
105 - meta_scope: comment.block.term.eos-adoc
ae1833e0
PP
106 - match: '^(\$|#)'
107 captures:
108 1: constant.character.escape.prompt.eos-adoc
76ceaf09
PP
109 - match: '^-----*$'
110 pop: true
111 source-sig:
112 - match: '^\[source,\s*\w+]$'
113 scope: constant.character.source.eos-adoc
114 push: source-title
115 source-title:
116 - match: '^\..+$'
117 set: source-start
118 - include: source-start
119 source-start:
120 - match: '^-----*$'
121 set: source
122 source:
123 - meta_scope: comment.block.eos-adoc
124 - match: '^-----*$'
125 pop: true
126 list-bullets:
127 - match: '^(\*|\.)+ '
128 scope: constant.character.escape.list-bullet.eos-adoc
129 dl:
130 - match: '::$'
131 scope: constant.character.escape.dl.eos-adoc
132 verse-sig:
133 - match: '^\[verse]$'
134 scope: constant.character.verse.eos-adoc
135 gen-role:
136 - match: '^\[role="[^"]+"]$'
137 scope: constant.character.gen-role.eos-adoc
138 gen-pre-sig:
139 - match: '^-----*$'
140 push: gen-pre
141 gen-pre:
142 - meta_scope: comment.block.gen-pre.eos-adoc
143 - match: '^-----*$'
144 pop: true
145 admonition-sig:
ae1833e0
PP
146 - match: '^\[(TIP|WARNING|IMPORTANT|NOTE)]$'
147 scope: constant.character.admonition.eos-adoc
148 admonition-para:
149 - match: '^(TIP|WARNING|IMPORTANT|NOTE):'
76ceaf09
PP
150 scope: constant.character.admonition.eos-adoc
151 block-sep:
152 - match: '^\+$'
153 scope: constant.character.escape.block-sep.eos-adoc
154 inline:
155 - include: external-link-start
156 - include: external-link-expl-start
157 - include: internal-link-start
158 - include: nbsp
159 - include: em-dash
160 - include: word-macro
161 - include: lttng-docs-opt
162 - include: lttng-docs-path
163 - include: lttng-docs-dir
164 - include: lttng-docs-env
165 - include: lttng-docs-cmd
166 - include: man
167 - include: man-opt
168 - include: man-nlopt
169 - include: man-genopt
170 - include: man-bt-compcls
171 - include: man-bt-manparam
172 - include: man-bt-manopt
173 - include: adoc-attr
ae1833e0 174 - include: quotes
76ceaf09
PP
175 - include: code-backtick-start
176 - include: code-plus-start
177 - include: double-emphasis-start
178 - include: emphasis-start
179 - include: emphasis-quote
180 - include: strong-start
181 - include: escape-adoc-start
182 - include: anchor
183 nbsp:
184 - match: '\{nbsp}'
185 scope: comment.block.nbsp.eos-adoc
186 em-dash:
187 - match: '(?<!^)--(?!$)'
188 scope: comment.block.em-dash.eos-adoc
189 word-macro:
190 - match: ':(not|escwc|esccomma|escstar|escdot|bs):'
191 scope: entity.name.tag.not.eos-adoc
192 internal-link-start:
193 - match: '(<<)([a-zA-Z0-9_-]+),'
194 captures:
195 1: entity.name.function.link.eos-adoc
196 2: storage.modifier.c
197 push: internal-link
198 internal-link:
199 - meta_scope: int-link.eos-adoc
200 - match: '"'
201 set: internal-link-text
202 - match: '>>'
203 scope: entity.name.function.link.eos-adoc
204 pop: true
205 - include: inline
206 internal-link-text:
207 - meta_scope: string.quoted.double.int-link-text.eos-adoc
208 - match: '"'
209 pop: true
210 external-link-start:
ae1833e0 211 - match: '(https?://.*?)(\[)'
76ceaf09
PP
212 captures:
213 1: storage.modifier.c
ae1833e0 214 2: entity.name.function.ext-link.eos-adoc
76ceaf09
PP
215 push: external-link
216 external-link:
217 - meta_scope: ext-link.eos-adoc
218 - match: ']'
ae1833e0 219 scope: entity.name.function.ext-link.eos-adoc
76ceaf09
PP
220 pop: true
221 - include: inline
222 external-link-expl-start:
ae1833e0 223 - match: '(link:)([^]]+)(\[)'
76ceaf09 224 captures:
ae1833e0
PP
225 1: entity.name.function.ext-link.eos-adoc
226 2: storage.modifier.c
227 3: entity.name.function.ext-link.eos-adoc
76ceaf09
PP
228 push: external-link-expl
229 external-link-expl:
230 - meta_scope: ext-link.eos-adoc
231 - match: ']'
ae1833e0 232 scope: entity.name.function.ext-link.eos-adoc
76ceaf09
PP
233 pop: true
234 - include: inline
235 lttng-docs-opt:
236 - match: 'opt:(lttng[a-zA-Z-]*\([a-zA-Z0-9]+\)):(--?[a-zA-Z0-9_-]+)'
237 scope: entity.name.function.opt.eos-adoc
238 captures:
239 1: storage.modifier.c
240 2: storage.modifier.c
241 lttng-docs-path:
242 - match: 'path:\{(.+)}'
243 scope: entity.name.function.path.eos-adoc
244 captures:
245 1: storage.modifier.c
246 lttng-docs-dir:
247 - match: 'dir:\{(.+)}'
248 scope: entity.name.function.dir.eos-adoc
249 captures:
250 1: storage.modifier.c
251 lttng-docs-env:
252 - match: 'env:([a-zA-Z0-9_]+)'
253 scope: entity.name.function.env.eos-adoc
254 captures:
255 1: storage.modifier.c
256 lttng-docs-cmd:
257 - match: 'cmd:([a-zA-Z0-9_-]+)'
258 scope: entity.name.function.cmd.eos-adoc
259 captures:
260 1: storage.modifier.c
261 man:
ae1833e0 262 - match: 'man:([a-zA-Z0-9_.+-]+\([a-zA-Z0-9]+\))'
76ceaf09
PP
263 scope: entity.name.function.man.eos-adoc
264 captures:
265 1: storage.modifier.c
266 man-opt:
267 - match: 'opt(?:ion)?:(--?[a-zA-Z0-9_-]+)'
268 scope: entity.name.function.opt.eos-adoc
269 captures:
270 1: storage.modifier.c
271 man-nlopt:
272 - match: 'nlopt(?:ion)?:(--?[a-zA-Z0-9_-]+)'
273 scope: entity.name.function.nlopt.eos-adoc
274 captures:
275 1: storage.modifier.c
276 man-genopt:
277 - match: 'genopt(?:ion)?:(--?[a-zA-Z0-9_-]+)'
278 scope: entity.name.function.genopt.eos-adoc
279 captures:
280 1: storage.modifier.c
281 man-bt-compcls:
282 - match: 'compcls:(src|source|flt|filter|sink)\.([a-zA-Z0-9_-]+)\.([a-zA-Z0-9_-]+)'
283 scope: entity.name.function.opt.eos-adoc
284 captures:
285 1: storage.modifier.c
286 2: storage.modifier.c
287 3: storage.modifier.c
288 man-bt-manparam:
289 - match: 'manparam:(src|source|flt|filter|sink)\.([a-zA-Z0-9_-]+)\.([a-zA-Z0-9_-]+):([a-zA-Z0-9_-]+)'
290 scope: entity.name.function.opt.eos-adoc
291 captures:
292 1: storage.modifier.c
293 2: storage.modifier.c
294 3: storage.modifier.c
295 4: storage.modifier.c
296 man-bt-manopt:
ae1833e0 297 - match: 'manopt:([a-zA-Z0-9_.+-]+\([a-zA-Z0-9]+\)):(--?[a-zA-Z0-9_-]+)'
76ceaf09
PP
298 scope: entity.name.function.opt.eos-adoc
299 captures:
300 1: storage.modifier.c
301 2: storage.modifier.c
ae1833e0
PP
302 quotes:
303 - match: "``|''"
304 scope: constant.character.escape.quotes.eos-adoc
76ceaf09
PP
305 code-backtick-start:
306 - match: '`(?!\s)'
307 push: code-backtick
308 code-backtick:
309 - meta_scope: entity.name.function.code.eos-adoc
310 - match: '(?<!\s)`'
311 pop: true
312 code-plus-start:
313 - match: '\+(?!\{)'
314 push: code-plus
315 code-plus:
316 - meta_scope: entity.name.function.code.eos-adoc
317 - match: '(?<!\s)\+'
318 pop: true
319 - match: '$'
320 pop: true
321 - match: '__.+?__'
322 scope: storage.modifier.c
323 double-emphasis-start:
324 - match: '__(?!\s)'
325 push: double-emphasis
326 double-emphasis:
327 - meta_scope: entity.name.function.double-em.eos-adoc
328 - match: '(?<!\s)__'
329 pop: true
330 - include: inline
331 emphasis-start:
332 - match: '(?<![A-Za-z0-9_])_(?!\s)'
333 push: emphasis
334 emphasis:
335 - meta_scope: entity.name.function.em.eos-adoc
336 - match: '(?<!\s)_'
337 pop: true
338 - include: inline
339 emphasis-quote:
ae1833e0 340 - match: "(?<![A-Za-z0-9_])'[^']+'"
76ceaf09
PP
341 scope: entity.name.function.em-quote.eos-adoc
342 strong-start:
343 - match: '\*\*(?!\s)'
344 push: strong
345 strong:
346 - meta_scope: entity.name.function.strong.eos-adoc
347 - match: '(?<!\s)\*\*'
348 pop: true
349 - include: inline
350 escape-adoc-start:
351 - match: '\$\$(?!\s)'
352 push: escape-adoc
353 escape-adoc:
354 - meta_scope: entity.name.function.escape-adoc.eos-adoc
355 - match: '(?<!\s)\$\$'
356 pop: true
357 anchor:
358 - match: \[\[[a-zA-Z0-9_-]+]]
359 scope: string.quoted.double.anchor.eos-adoc
360 adoc-attr:
361 - match: '\{[a-zA-Z0-9_-]+\}'
362 scope: entity.name.tag.eos-adoc
363 set-adoc-attr:
364 - match: '^:([a-zA-Z0-9_-]+):\s+'
365 captures:
366 1: constant.numeric.set-adoc-attr.eos-adoc
This page took 0.03577 seconds and 4 git commands to generate.