linguist-js 2.4.2 → 2.5.0

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