linguist-js 2.4.1 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,690 @@
1
+
2
+ ---
3
+ disambiguations:
4
+ - extensions: ['.1', '.2', '.3', '.4', '.5', '.6', '.7', '.8', '.9']
5
+ rules:
6
+ - language: Roff Manpage
7
+ and:
8
+ - named_pattern: mdoc-date
9
+ - named_pattern: mdoc-title
10
+ - named_pattern: mdoc-heading
11
+ - language: Roff Manpage
12
+ and:
13
+ - named_pattern: man-title
14
+ - named_pattern: man-heading
15
+ - language: Roff
16
+ pattern: '^\.(?:[A-Za-z]{2}(?:\s|$)|\\")'
17
+ - extensions: ['.1in', '.1m', '.1x', '.3in', '.3m', '.3p', '.3pm', '.3qt', '.3x', '.man', '.mdoc']
18
+ rules:
19
+ - language: Roff Manpage
20
+ and:
21
+ - named_pattern: mdoc-date
22
+ - named_pattern: mdoc-title
23
+ - named_pattern: mdoc-heading
24
+ - language: Roff Manpage
25
+ and:
26
+ - named_pattern: man-title
27
+ - named_pattern: man-heading
28
+ - language: Roff
29
+ - extensions: ['.al']
30
+ rules:
31
+ - language: AL
32
+ and:
33
+ - pattern: '\b(?i:(CODEUNIT|PAGE|PAGEEXTENSION|PAGECUSTOMIZATION|DOTNET|ENUM|ENUMEXTENSION|VALUE|QUERY|REPORT|TABLE|TABLEEXTENSION|XMLPORT|PROFILE|CONTROLADDIN))\b'
34
+ - language: Perl
35
+ - extensions: ['.as']
36
+ rules:
37
+ - language: ActionScript
38
+ pattern: '^\s*(?:package(?:\s+[\w.]+)?\s+(?:{|$)|import\s+[\w.*]+\s*;|(?=.*?(?:intrinsic|extends))(intrinsic\s+)?class\s+[\w<>.]+(?:\s+extends\s+[\w<>.]+)?|(?:(?:public|protected|private|static)\s+)*(?:(?:var|const|local)\s+\w+\s*:\s*[\w<>.]+(?:\s*=.*)?\s*;|function\s+\w+\s*\((?:\s*\w+\s*:\s*[\w<>.]+\s*(,\s*\w+\s*:\s*[\w<>.]+\s*)*)?\)))'
39
+ - extensions: ['.asc']
40
+ rules:
41
+ - language: Public Key
42
+ pattern: '^(----[- ]BEGIN|ssh-(rsa|dss)) '
43
+ - language: AsciiDoc
44
+ pattern: '^[=-]+(\s|\n)|{{[A-Za-z]'
45
+ - language: AGS Script
46
+ pattern: '^(\/\/.+|((import|export)\s+)?(function|int|float|char)\s+((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+)\s*[;\(])'
47
+ - extensions: ['.asm']
48
+ rules:
49
+ - language: Motorola 68K Assembly
50
+ named_pattern: m68k
51
+ - extensions: ['.asy']
52
+ rules:
53
+ - language: LTspice Symbol
54
+ pattern: '^SymbolType[ \t]'
55
+ - language: Asymptote
56
+ - extensions: ['.bas']
57
+ rules:
58
+ - language: FreeBasic
59
+ pattern: '^[ \t]*#(?:define|endif|endmacro|ifn?def|if|include|lang|macro)\s'
60
+ - language: BASIC
61
+ pattern: '^\s*\d+'
62
+ - extensions: ['.bb']
63
+ rules:
64
+ - language: BlitzBasic
65
+ pattern: '(<^\s*; |End Function)'
66
+ - language: BitBake
67
+ pattern: '^\s*(# |include|require)\b'
68
+ - language: Clojure
69
+ pattern: '\((def|defn|defmacro|let)\s'
70
+ - extensions: ['.bi']
71
+ rules:
72
+ - language: FreeBasic
73
+ pattern: '^[ \t]*#(?:define|endif|endmacro|ifn?def|if|include|lang|macro)\s'
74
+ - extensions: ['.bs']
75
+ rules:
76
+ - language: Bikeshed
77
+ pattern: '^(?i:<pre\s+class)\s*=\s*(''|\"|\b)metadata\b\1[^>\r\n]*>'
78
+ - language: BrighterScript
79
+ pattern:
80
+ - (?i:^\s*(?=^sub\s)(?:sub\s*\w+\(.*?\))|(?::\s*sub\(.*?\))$)
81
+ - (?i:^\s*(end\ssub)$)
82
+ - (?i:^\s*(?=^function\s)(?:function\s*\w+\(.*?\)\s*as\s*\w*)|(?::\s*function\(.*?\)\s*as\s*\w*)$)
83
+ - (?i:^\s*(end\sfunction)$)
84
+ - extensions: ['.builds']
85
+ rules:
86
+ - language: XML
87
+ pattern: '^(\s*)(?i:<Project|<Import|<Property|<?xml|xmlns)'
88
+ - extensions: ['.ch']
89
+ rules:
90
+ - language: xBase
91
+ pattern: '^\s*#\s*(?i:if|ifdef|ifndef|define|command|xcommand|translate|xtranslate|include|pragma|undef)\b'
92
+ - extensions: ['.cl']
93
+ rules:
94
+ - language: Common Lisp
95
+ pattern: '^\s*\((?i:defun|in-package|defpackage) '
96
+ - language: Cool
97
+ pattern: '^class'
98
+ - language: OpenCL
99
+ pattern: '\/\* |\/\/ |^\}'
100
+ - extensions: ['.cls']
101
+ rules:
102
+ - language: TeX
103
+ pattern: '^\s*\\(?:NeedsTeXFormat|ProvidesClass){'
104
+ - language: ObjectScript
105
+ pattern: '^Class\s'
106
+ - extensions: ['.cmp']
107
+ rules:
108
+ - language: Gerber Image
109
+ pattern: '^[DGMT][0-9]{2}\*\r?\n'
110
+ - extensions: ['.cs']
111
+ rules:
112
+ - language: Smalltalk
113
+ pattern: '![\w\s]+methodsFor: '
114
+ - language: 'C#'
115
+ pattern: '^(\s*namespace\s*[\w\.]+\s*{|\s*\/\/)'
116
+ - extensions: ['.csc']
117
+ rules:
118
+ - language: GSC
119
+ named_pattern: gsc
120
+ - extensions: ['.csl']
121
+ rules:
122
+ - language: XML
123
+ pattern: '(?i:^\s*(\<\?xml|xmlns))'
124
+ - language: Kusto
125
+ pattern: '(^\|\s*(where|extend|project|limit|summarize))|(^\.\w+)'
126
+ - extensions: ['.d']
127
+ rules:
128
+ - language: D
129
+ pattern: '^module\s+[\w.]*\s*;|import\s+[\w\s,.:]*;|\w+\s+\w+\s*\(.*\)(?:\(.*\))?\s*{[^}]*}|unittest\s*(?:\(.*\))?\s*{[^}]*}'
130
+ - language: DTrace
131
+ pattern: '^(\w+:\w*:\w*:\w*|BEGIN|END|provider\s+|(tick|profile)-\w+\s+{[^}]*}|#pragma\s+D\s+(option|attributes|depends_on)\s|#pragma\s+ident\s)'
132
+ - language: Makefile
133
+ pattern: '([\/\\].*:\s+.*\s\\$|: \\$|^[ %]:|^[\w\s\/\\.]+\w+\.\w+\s*:\s+[\w\s\/\\.]+\w+\.\w+)'
134
+ - extensions: ['.dsp']
135
+ rules:
136
+ - language: Microsoft Developer Studio Project
137
+ pattern: '# Microsoft Developer Studio Generated Build File'
138
+ - language: Faust
139
+ pattern: '\bprocess\s*[(=]|\b(library|import)\s*\(\s*"|\bdeclare\s+(name|version|author|copyright|license)\s+"'
140
+ - extensions: ['.e']
141
+ rules:
142
+ - language: E
143
+ pattern:
144
+ - '^\s*(def|var)\s+(.+):='
145
+ - '^\s*(def|to)\s+(\w+)(\(.+\))?\s+{'
146
+ - '^\s*(when)\s+(\(.+\))\s+->\s+{'
147
+ - language: Eiffel
148
+ pattern:
149
+ - '^\s*\w+\s*(?:,\s*\w+)*[:]\s*\w+\s'
150
+ - '^\s*\w+\s*(?:\(\s*\w+[:][^)]+\))?(?:[:]\s*\w+)?(?:--.+\s+)*\s+(?:do|local)\s'
151
+ - '^\s*(?:across|deferred|elseif|ensure|feature|from|inherit|inspect|invariant|note|once|require|undefine|variant|when)\s*$'
152
+ - language: Euphoria
153
+ named_pattern: euphoria
154
+ - extensions: ['.ecl']
155
+ rules:
156
+ - language: ECLiPSe
157
+ pattern: '^[^#]+:-'
158
+ - language: ECL
159
+ pattern: ':='
160
+ - extensions: ['.es']
161
+ rules:
162
+ - language: Erlang
163
+ pattern: '^\s*(?:%%|main\s*\(.*?\)\s*->)'
164
+ - language: JavaScript
165
+ pattern: '(?m:\/\/|("|'')use strict\1|export\s+default\s|\/\*.*?\*\/)'
166
+ - extensions: ['.ex']
167
+ rules:
168
+ - language: Elixir
169
+ pattern:
170
+ - '^\s*@moduledoc\s'
171
+ - '^\s*(?:cond|import|quote|unless)\s'
172
+ - '^\s*def(?:exception|impl|macro|module|protocol)[(\s]'
173
+ - language: Euphoria
174
+ named_pattern: euphoria
175
+ - extensions: ['.f']
176
+ rules:
177
+ - language: Forth
178
+ pattern: '^: '
179
+ - language: Filebench WML
180
+ pattern: 'flowop'
181
+ - language: Fortran
182
+ named_pattern: fortran
183
+ - extensions: ['.for']
184
+ rules:
185
+ - language: Forth
186
+ pattern: '^: '
187
+ - language: Fortran
188
+ named_pattern: fortran
189
+ - extensions: ['.fr']
190
+ rules:
191
+ - language: Forth
192
+ pattern: '^(: |also |new-device|previous )'
193
+ - language: Frege
194
+ pattern: '^\s*(import|module|package|data|type) '
195
+ - language: Text
196
+ - extensions: ['.fs']
197
+ rules:
198
+ - language: Forth
199
+ pattern: '^(: |new-device)'
200
+ - language: 'F#'
201
+ pattern: '^\s*(#light|import|let|module|namespace|open|type)'
202
+ - language: GLSL
203
+ pattern: '^\s*(#version|precision|uniform|varying|vec[234])'
204
+ - language: Filterscript
205
+ pattern: '#include|#pragma\s+(rs|version)|__attribute__'
206
+ - extensions: ['.ftl']
207
+ rules:
208
+ - language: FreeMarker
209
+ pattern: '^(?:<|[a-zA-Z-][a-zA-Z0-9_-]+[ \t]+\w)|\${\w+[^\n]*?}|^[ \t]*(?:<#--.*?-->|<#([a-z]+)(?=\s|>)[^>]*>.*?</#\1>|\[#--.*?--\]|\[#([a-z]+)(?=\s|\])[^\]]*\].*?\[#\2\])'
210
+ - language: Fluent
211
+ pattern: '^-?[a-zA-Z][a-zA-Z0-9_-]* *=|\{\$-?[a-zA-Z][-\w]*(?:\.[a-zA-Z][-\w]*)?\}'
212
+ - extensions: ['.gd']
213
+ rules:
214
+ - language: GAP
215
+ pattern: '\s*(Declare|BindGlobal|KeyDependentOperation)'
216
+ - language: GDScript
217
+ pattern: '\s*(extends|var|const|enum|func|class|signal|tool|yield|assert|onready)'
218
+ - extensions: ['.gml']
219
+ rules:
220
+ - language: XML
221
+ pattern: '(?i:^\s*(\<\?xml|xmlns))'
222
+ - language: Graph Modeling Language
223
+ pattern: '(?i:^\s*(graph|node)\s+\[$)'
224
+ - language: Gerber Image
225
+ pattern: '^[DGMT][0-9]{2}\*$'
226
+ - language: Game Maker Language
227
+ - extensions: ['.gs']
228
+ rules:
229
+ - language: GLSL
230
+ pattern: '^#version\s+[0-9]+\b'
231
+ - language: Gosu
232
+ pattern: '^uses (java|gw)\.'
233
+ - language: Genie
234
+ pattern: '^\[indent=[0-9]+\]'
235
+ - extensions: ['.gsc']
236
+ rules:
237
+ - language: GSC
238
+ named_pattern: gsc
239
+ - extensions: ['.gsh']
240
+ rules:
241
+ - language: GSC
242
+ named_pattern: gsc
243
+ - extensions: ['.h']
244
+ rules:
245
+ - language: Objective-C
246
+ named_pattern: objectivec
247
+ - language: C++
248
+ named_pattern: cpp
249
+ - language: C
250
+ - extensions: ['.hh']
251
+ rules:
252
+ - language: Hack
253
+ pattern: '<\?hh'
254
+ - extensions: ['.i']
255
+ rules:
256
+ - language: Motorola 68K Assembly
257
+ named_pattern: m68k
258
+ - language: SWIG
259
+ pattern: '^[ \t]*%[a-z_]+\b|^%[{}]$'
260
+ - extensions: ['.ice']
261
+ rules:
262
+ - language: JSON
263
+ pattern: '\A\s*[{\[]'
264
+ - language: Slice
265
+ - extensions: ['.inc']
266
+ rules:
267
+ - language: Motorola 68K Assembly
268
+ named_pattern: m68k
269
+ - language: PHP
270
+ pattern: '^<\?(?:php)?'
271
+ - language: SourcePawn
272
+ pattern:
273
+ - '^public\s+(?:SharedPlugin(?:\s+|:)__pl_\w+\s*=(?:\s*{)?|(?:void\s+)?__pl_\w+_SetNTVOptional\(\)(?:\s*{)?)'
274
+ - '^methodmap\s+\w+\s+<\s+\w+'
275
+ - '^\s*MarkNativeAsOptional\s*\('
276
+ - language: NASL
277
+ pattern:
278
+ - '^\s*include\s*\(\s*(?:"|'')[\\/\w\-\.:\s]+\.(?:nasl|inc)\s*(?:"|'')\s*\)\s*;'
279
+ - '^\s*(?:global|local)_var\s+(?:\w+(?:\s*=\s*[\w\-"'']+)?\s*)(?:,\s*\w+(?:\s*=\s*[\w\-"'']+)?\s*)*+\s*;'
280
+ - '^\s*namespace\s+\w+\s*{'
281
+ - '^\s*object\s+\w+\s*(?:extends\s+\w+(?:::\w+)?)?\s*{'
282
+ - '^\s*(?:public\s+|private\s+|\s*)function\s+\w+\s*\([\w\s,]*\)\s*{'
283
+ - language: POV-Ray SDL
284
+ pattern: '^\s*#(declare|local|macro|while)\s'
285
+ - language: Pascal
286
+ pattern:
287
+ - '(?i:^\s*{\$(?:mode|ifdef|undef|define)[ ]+[a-z0-9_]+})'
288
+ - '^\s*end[.;]\s*$'
289
+ - extensions: ['.l']
290
+ rules:
291
+ - language: Common Lisp
292
+ pattern: '\(def(un|macro)\s'
293
+ - language: Lex
294
+ pattern: '^(%[%{}]xs|<.*>)'
295
+ - language: Roff
296
+ pattern: '^\.[A-Za-z]{2}(\s|$)'
297
+ - language: PicoLisp
298
+ pattern: '^\((de|class|rel|code|data|must)\s'
299
+ - extensions: ['.ls']
300
+ rules:
301
+ - language: LoomScript
302
+ pattern: '^\s*package\s*[\w\.\/\*\s]*\s*{'
303
+ - language: LiveScript
304
+ - extensions: ['.lsp', '.lisp']
305
+ rules:
306
+ - language: Common Lisp
307
+ pattern: '^\s*\((?i:defun|in-package|defpackage) '
308
+ - language: NewLisp
309
+ pattern: '^\s*\(define '
310
+ - extensions: ['.m']
311
+ rules:
312
+ - language: Objective-C
313
+ named_pattern: objectivec
314
+ - language: Mercury
315
+ pattern: ':- module'
316
+ - language: MUF
317
+ pattern: '^: '
318
+ - language: M
319
+ pattern: '^\s*;'
320
+ - language: Mathematica
321
+ and:
322
+ - pattern: '\(\*'
323
+ - pattern: '\*\)$'
324
+ - language: MATLAB
325
+ pattern: '^\s*%'
326
+ - language: Limbo
327
+ pattern: '^\w+\s*:\s*module\s*{'
328
+ - extensions: ['.m4']
329
+ rules:
330
+ - language: M4Sugar
331
+ pattern:
332
+ - 'AC_DEFUN|AC_PREREQ|AC_INIT'
333
+ - '^_?m4_'
334
+ - language: 'M4'
335
+ - extensions: ['.mask']
336
+ rules:
337
+ - language: Unity3D Asset
338
+ pattern: 'tag:unity3d.com'
339
+ - extensions: ['.mc']
340
+ rules:
341
+ - language: Win32 Message File
342
+ pattern: '(?i)^[ \t]*(?>\/\*\s*)?MessageId=|^\.$'
343
+ - language: M4
344
+ pattern: '^dnl|^divert\((?:-?\d+)?\)|^\w+\(`[^\n]*?''[),]'
345
+ - language: Monkey C
346
+ pattern: '\b(?:using|module|function|class|var)\s+\w'
347
+ - extensions: ['.md']
348
+ rules:
349
+ - language: Markdown
350
+ pattern:
351
+ - '(^[-A-Za-z0-9=#!\*\[|>])|<\/'
352
+ - '\A\z'
353
+ - language: GCC Machine Description
354
+ pattern: '^(;;|\(define_)'
355
+ - language: Markdown
356
+ - extensions: ['.ml']
357
+ rules:
358
+ - language: OCaml
359
+ pattern: '(^\s*module)|let rec |match\s+(\S+\s)+with'
360
+ - language: Standard ML
361
+ pattern: '=> |case\s+(\S+\s)+of'
362
+ - extensions: ['.mod']
363
+ rules:
364
+ - language: XML
365
+ pattern: '<!ENTITY '
366
+ - language: Modula-2
367
+ pattern: '^\s*(?i:MODULE|END) [\w\.]+;'
368
+ - language: [Linux Kernel Module, AMPL]
369
+ - extensions: ['.ms']
370
+ rules:
371
+ - language: Roff
372
+ pattern: '^[.''][A-Za-z]{2}(\s|$)'
373
+ - language: Unix Assembly
374
+ and:
375
+ - negative_pattern: '/\*'
376
+ - pattern: '^\s*\.(?:include\s|globa?l\s|[A-Za-z][_A-Za-z0-9]*:)'
377
+ - language: MAXScript
378
+ - extensions: ['.n']
379
+ rules:
380
+ - language: Roff
381
+ pattern: '^[.'']'
382
+ - language: Nemerle
383
+ pattern: '^(module|namespace|using)\s'
384
+ - extensions: ['.ncl']
385
+ rules:
386
+ - language: XML
387
+ pattern: '^\s*<\?xml\s+version'
388
+ - language: Gerber Image
389
+ pattern: '^[DGMT][0-9]{2}\*\r?\n'
390
+ - language: Text
391
+ pattern: 'THE_TITLE'
392
+ - extensions: ['.nl']
393
+ rules:
394
+ - language: NL
395
+ pattern: '^(b|g)[0-9]+ '
396
+ - language: NewLisp
397
+ - extensions: ['.odin']
398
+ rules:
399
+ - language: Object Data Instance Notation
400
+ pattern: '(?:^|<)\s*[A-Za-z0-9_]+\s*=\s*<'
401
+ - language: Odin
402
+ pattern: 'package\s+\w+|\b(?:im|ex)port\s*"[\w:./]+"|\w+\s*::\s*(?:proc|struct)\s*\(|^\s*//\s'
403
+ - extensions: ['.p']
404
+ rules:
405
+ - language: Gnuplot
406
+ pattern:
407
+ - '^s?plot\b'
408
+ - '^set\s+(term|terminal|out|output|[xy]tics|[xy]label|[xy]range|style)\b'
409
+ - language: OpenEdge ABL
410
+ - extensions: ['.php']
411
+ rules:
412
+ - language: Hack
413
+ pattern: '<\?hh'
414
+ - language: PHP
415
+ pattern: '<\?[^h]'
416
+ - extensions: ['.pl']
417
+ rules:
418
+ - language: Prolog
419
+ pattern: '^[^#]*:-'
420
+ - language: Perl
421
+ named_pattern: perl5
422
+ - language: Raku
423
+ named_pattern: perl6
424
+ - extensions: ['.plist']
425
+ rules:
426
+ - language: XML Property List
427
+ pattern: '<!DOCTYPE\s+plist'
428
+ - language: OpenStep Property List
429
+ - extensions: ['.pm']
430
+ rules:
431
+ - language: Perl
432
+ named_pattern: perl5
433
+ - language: Raku
434
+ named_pattern: perl6
435
+ - language: X PixMap
436
+ pattern: '^\s*\/\* XPM \*\/'
437
+ - extensions: ['.pod']
438
+ rules:
439
+ - language: Pod 6
440
+ pattern: '^[\s&&[^\n]]*=(comment|begin pod|begin para|item\d+)'
441
+ - language: Pod
442
+ - extensions: ['.pp']
443
+ rules:
444
+ - language: Pascal
445
+ pattern: '^\s*end[.;]'
446
+ - language: Puppet
447
+ pattern: '^\s+\w+\s+=>\s'
448
+ - extensions: ['.pro']
449
+ rules:
450
+ - language: Proguard
451
+ pattern: '^-(include\b.*\.pro$|keep\b|keepclassmembers\b|keepattributes\b)'
452
+ - language: Prolog
453
+ pattern: '^[^\[#]+:-'
454
+ - language: INI
455
+ pattern: 'last_client='
456
+ - language: QMake
457
+ and:
458
+ - pattern: HEADERS
459
+ - pattern: SOURCES
460
+ - language: IDL
461
+ pattern: '^\s*function[ \w,]+$'
462
+ - extensions: ['.properties']
463
+ rules:
464
+ - language: INI
465
+ and:
466
+ - named_pattern: key_equals_value
467
+ - pattern: '^[;\[]'
468
+ - language: Java Properties
469
+ and:
470
+ - named_pattern: key_equals_value
471
+ - pattern: '^[#!]'
472
+ - language: INI
473
+ named_pattern: key_equals_value
474
+ - language: Java Properties
475
+ pattern: '^[^#!][^:]*:'
476
+ - extensions: ['.q']
477
+ rules:
478
+ - language: q
479
+ pattern: '((?i:[A-Z.][\w.]*:{)|(^|\n)\\(cd?|d|l|p|ts?) )'
480
+ - language: HiveQL
481
+ pattern: '(?i:SELECT\s+[\w*,]+\s+FROM|(CREATE|ALTER|DROP)\s(DATABASE|SCHEMA|TABLE))'
482
+ - extensions: ['.qs']
483
+ rules:
484
+ - language: Q#
485
+ pattern: '^((\/{2,3})?\s*(namespace|operation)\b)'
486
+ - language: Qt Script
487
+ pattern: '(\w+\.prototype\.\w+|===|\bvar\b)'
488
+ - extensions: ['.r']
489
+ rules:
490
+ - language: Rebol
491
+ pattern: '(?i:\bRebol\b)'
492
+ - language: R
493
+ pattern: '<-|^\s*#'
494
+ - extensions: ['.re']
495
+ rules:
496
+ - language: Reason
497
+ pattern:
498
+ - '^\s*module\s+type\s'
499
+ - '^\s*(?:include|open)\s+\w+\s*;\s*$'
500
+ - '^\s*let\s+(?:module\s\w+\s*=\s*{|\w+:\s+.*=.*;\s*$)'
501
+ - language: C++
502
+ pattern:
503
+ - '^\s*#(?:(?:if|ifdef|define|pragma)\s+\w|\s*include\s+<[^>]+>)'
504
+ - '^\s*template\s*<'
505
+ - extensions: ['.res']
506
+ rules:
507
+ - language: ReScript
508
+ pattern:
509
+ - '^\s*(let|module|type)\s+\w*\s+=\s+'
510
+ - '^\s*(?:include|open)\s+\w+\s*$'
511
+ - extensions: ['.rno']
512
+ rules:
513
+ - language: RUNOFF
514
+ pattern: '(?i:^\.!|^\f|\f$|^\.end lit(?:eral)?\b|^\.[a-zA-Z].*?;\.[a-zA-Z](?:[; \t])|\^\*[^\s*][^*]*\\\*(?=$|\s)|^\.c;[ \t]*\w+)'
515
+ - language: Roff
516
+ pattern: '^\.\\" '
517
+ - extensions: ['.rpy']
518
+ rules:
519
+ - language: Python
520
+ pattern: '(?m:^(import|from|class|def)\s)'
521
+ - language: "Ren'Py"
522
+ - extensions: ['.rs']
523
+ rules:
524
+ - language: Rust
525
+ pattern: '^(use |fn |mod |pub |macro_rules|impl|#!?\[)'
526
+ - language: RenderScript
527
+ pattern: '#include|#pragma\s+(rs|version)|__attribute__'
528
+ - language: XML
529
+ pattern: '^\s*<\?xml'
530
+ - extensions: ['.s']
531
+ rules:
532
+ - language: Motorola 68K Assembly
533
+ named_pattern: m68k
534
+ - extensions: ['.sc']
535
+ rules:
536
+ - language: SuperCollider
537
+ pattern: '(?i:\^(this|super)\.|^\s*~\w+\s*=\.)'
538
+ - language: Scala
539
+ pattern: '(^\s*import (scala|java)\.|^\s*class\b)'
540
+ - extensions: ['.sol']
541
+ rules:
542
+ - language: Solidity
543
+ pattern: '\bpragma\s+solidity\b|\b(?:abstract\s+)?contract\s+(?!\d)[a-zA-Z0-9$_]+(?:\s+is\s+(?:[a-zA-Z0-9$_][^\{]*?)?)?\s*\{'
544
+ - language: Gerber Image
545
+ pattern: '^[DGMT][0-9]{2}\*\r?\n'
546
+ - extensions: ['.sql']
547
+ rules:
548
+ - language: PLpgSQL
549
+ pattern: '(?i:^\\i\b|AS\s+\$\$|LANGUAGE\s+''?plpgsql''?|BEGIN(\s+WORK)?\s*;)'
550
+ - language: SQLPL
551
+ pattern: '(?i:ALTER\s+MODULE|MODE\s+DB2SQL|\bSYS(CAT|PROC)\.|ASSOCIATE\s+RESULT\s+SET|\bEND!\s*$)'
552
+ - language: PLSQL
553
+ pattern: '(?i:\$\$PLSQL_|XMLTYPE|systimestamp|\.nextval|CONNECT\s+BY|AUTHID\s+(DEFINER|CURRENT_USER)|constructor\W+function)'
554
+ - language: TSQL
555
+ pattern: '(?i:^\s*GO\b|BEGIN(\s+TRY|\s+CATCH)|OUTPUT\s+INSERTED|DECLARE\s+@|\[dbo\])'
556
+ - language: SQL
557
+ - extensions: ['.srt']
558
+ rules:
559
+ - language: SubRip Text
560
+ pattern: '^(\d{2}:\d{2}:\d{2},\d{3})\s*(-->)\s*(\d{2}:\d{2}:\d{2},\d{3})$'
561
+ - extensions: ['.st']
562
+ rules:
563
+ - language: StringTemplate
564
+ pattern: '\$\w+[($]|(.)!\s*.+?\s*!\1|<!\s*.+?\s*!>|\[!\s*.+?\s*!\]|\{!\s*.+?\s*!\}'
565
+ - language: Smalltalk
566
+ pattern: '\A\s*[\[{(^"''\w#]|[a-zA-Z_]\w*\s*:=\s*[a-zA-Z_]\w*|class\s*>>\s*[a-zA-Z_]\w*|^[a-zA-Z_]\w*\s+[a-zA-Z_]\w*:|^Class\s*{|if(?:True|False):\s*\['
567
+ - extensions: ['.star']
568
+ rules:
569
+ - language: STAR
570
+ pattern: '^loop_\s*$'
571
+ - language: Starlark
572
+ - extensions: ['.stl']
573
+ rules:
574
+ - language: STL
575
+ pattern: '\A\s*solid(?=$|\s)(?m:.*?)\Rendsolid(?:$|\s)'
576
+ - extensions: ['.t']
577
+ rules:
578
+ - language: Perl
579
+ named_pattern: perl5
580
+ - language: Raku
581
+ pattern: '^\s*(?:use\s+v6\b|\bmodule\b|\bmy\s+class\b)'
582
+ - language: Turing
583
+ pattern: '^\s*%[ \t]+|^\s*var\s+\w+(\s*:\s*\w+)?\s*:=\s*\w+'
584
+ - extensions: ['.toc']
585
+ rules:
586
+ - language: World of Warcraft Addon Data
587
+ pattern: '^## |@no-lib-strip@'
588
+ - language: TeX
589
+ pattern: '^\\(contentsline|defcounter|beamer|boolfalse)'
590
+ - extensions: ['.ts']
591
+ rules:
592
+ - language: XML
593
+ pattern: '<TS\b'
594
+ - language: TypeScript
595
+ - extensions: ['.tst']
596
+ rules:
597
+ - language: GAP
598
+ pattern: 'gap> '
599
+ - language: Scilab
600
+ - extensions: ['.tsx']
601
+ rules:
602
+ - language: TSX
603
+ pattern: '^\s*(import.+(from\s+|require\()[''"]react|\/\/\/\s*<reference\s)'
604
+ - language: XML
605
+ pattern: '(?i:^\s*<\?xml\s+version)'
606
+ - extensions: ['.txt']
607
+ rules:
608
+ - language: Vim Help File
609
+ pattern: '(?:(?:^|[ \t])(?:vi|Vi(?=m))(?:m[<=>]?[0-9]+|m)?|[ \t]ex)(?=:(?=[ \t]*set?[ \t][^\r\n:]+:)|:(?![ \t]*set?[ \t]))(?:(?:[ \t]*:[ \t]*|[ \t])\w*(?:[ \t]*=(?:[^\\\s]|\\.)*)?)*[ \t:](?:filetype|ft|syntax)[ \t]*=(help)(?=$|\s|:)'
610
+ - language: Text
611
+ - extensions: ['.url']
612
+ rules:
613
+ - language: INI
614
+ pattern: '^\[InternetShortcut\]\R(?>[^\s\[][^\n]*\R)*URL='
615
+ - extensions: ['.v']
616
+ rules:
617
+ - language: Coq
618
+ pattern: '(?:^|\s)(?:Proof|Qed)\.(?:$|\s)|(?:^|\s)Require[ \t]+(Import|Export)\s'
619
+ - language: Verilog
620
+ pattern: '^[ \t]*module\s+[^\s()]+\s+\#?\(|^[ \t]*`(?:define|ifdef|ifndef|include|timescale)|^[ \t]*always[ \t]+@|^[ \t]*initial[ \t]+(begin|@)'
621
+ - language: V
622
+ pattern: '\$(?:if|else)[ \t]|^[ \t]*fn\s+[^\s()]+\(.*?\).*?\{|^[ \t]*for\s*\{'
623
+ - extensions: ['.vba']
624
+ rules:
625
+ - language: Vim Script
626
+ pattern: '^UseVimball'
627
+ - language: VBA
628
+ - extensions: ['.w']
629
+ rules:
630
+ - language: OpenEdge ABL
631
+ pattern: '&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS'
632
+ - language: CWeb
633
+ pattern: '^@(<|\w+\.)'
634
+ - extensions: ['.x']
635
+ rules:
636
+ - language: DirectX 3D File
637
+ pattern: '^xof 030(2|3)(?:txt|bin|tzip|bzip)\b'
638
+ - language: RPC
639
+ pattern: '\b(program|version)\s+\w+\s*{|\bunion\s+\w+\s+switch\s*\('
640
+ - language: Logos
641
+ pattern: '^%(end|ctor|hook|group)\b'
642
+ - language: Linker Script
643
+ pattern: 'OUTPUT_ARCH\(|OUTPUT_FORMAT\(|SECTIONS'
644
+ - extensions: ['.yaml']
645
+ rules:
646
+ - language: MiniYAML
647
+ pattern: '^\t+.*?[^\s:].*?:'
648
+ negative_pattern: '---'
649
+ - language: YAML
650
+ - extensions: ['.yy']
651
+ rules:
652
+ - language: JSON
653
+ pattern: '\"modelName\"\:\s*\"GM'
654
+ - language: Yacc
655
+ named_patterns:
656
+ cpp:
657
+ - '^\s*#\s*include <(cstdint|string|vector|map|list|array|bitset|queue|stack|forward_list|unordered_map|unordered_set|(i|o|io)stream)>'
658
+ - '^\s*template\s*<'
659
+ - '^[ \t]*(try|constexpr)'
660
+ - '^[ \t]*catch\s*\('
661
+ - '^[ \t]*(class|(using[ \t]+)?namespace)\s+\w+'
662
+ - '^[ \t]*(private|public|protected):$'
663
+ - 'std::\w+'
664
+ euphoria:
665
+ - '^\s*namespace\s'
666
+ - '^\s*(?:public\s+)?include\s'
667
+ - '^\s*(?:(?:public|export|global)\s+)?(?:atom|constant|enum|function|integer|object|procedure|sequence|type)\s'
668
+ fortran: '^(?i:[c*][^abd-z]| (subroutine|program|end|data)\s|\s*!)'
669
+ gsc:
670
+ - '^\s*#\s*(?:using|insert|include|define|namespace)[ \t]+\w'
671
+ - '^\s*(?>(?:autoexec|private)\s+){0,2}function\s+(?>(?:autoexec|private)\s+){0,2}\w+\s*\('
672
+ - '\b(?:level|self)[ \t]+thread[ \t]+(?:\[\[[ \t]*(?>\w+\.)*\w+[ \t]*\]\]|\w+)[ \t]*\([^\r\n\)]*\)[ \t]*;'
673
+ - '^[ \t]*#[ \t]*(?:precache|using_animtree)[ \t]*\('
674
+ key_equals_value: '^[^#!;][^=]*='
675
+ m68k:
676
+ - '(?im)\bmoveq(?:\.l)?\s+#(?:\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\s*d[0-7]\b'
677
+ - '(?im)^\s*move(?:\.[bwl])?\s+(?:sr|usp),\s*[^\s]+'
678
+ - '(?im)^\s*move\.[bwl]\s+.*\b[ad]\d'
679
+ - '(?im)^\s*movem\.[bwl]\b'
680
+ - '(?im)^\s*move[mp](?:\.[wl])?\b'
681
+ - '(?im)^\s*btst\b'
682
+ - '(?im)^\s*dbra\b'
683
+ man-heading: '^[.''][ \t]*SH +(?:[^"\s]+|"[^"\s]+)'
684
+ man-title: '^[.''][ \t]*TH +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)'
685
+ mdoc-date: '^[.''][ \t]*Dd +(?:[^"\s]+|"[^"]+")'
686
+ mdoc-heading: '^[.''][ \t]*Sh +(?:[^"\s]|"[^"]+")'
687
+ mdoc-title: '^[.''][ \t]*Dt +(?:[^"\s]+|"[^"]+") +"?(?:[1-9]|@[^\s@]+@)'
688
+ objectivec: '^\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\b|#import\s+.+\.h[">])'
689
+ perl5: '\buse\s+(?:strict\b|v?5\.)'
690
+ perl6: '^\s*(?:use\s+v6\b|\bmodule\b|\b(?:my\s+)?class\b)'