github-linguist 7.5.1 → 7.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/annotation.liquidhaskell.haskell.json +122 -24
  3. data/grammars/etc.json +7 -0
  4. data/grammars/hint.haskell.json +122 -24
  5. data/grammars/hint.message.haskell.json +122 -24
  6. data/grammars/hint.type.haskell.json +122 -24
  7. data/grammars/injections.etc.json +48 -10
  8. data/grammars/source.abnf.json +180 -353
  9. data/grammars/source.ballerina.json +205 -50
  10. data/grammars/source.bnf.json +191 -0
  11. data/grammars/source.cabal.json +1 -1
  12. data/grammars/source.ditroff.desc.json +1 -1
  13. data/grammars/source.ebnf.json +157 -147
  14. data/grammars/source.editorconfig.json +30 -5
  15. data/grammars/source.emacs.lisp.json +4 -4
  16. data/grammars/source.gremlin.json +200 -0
  17. data/grammars/source.haproxy-config.json +65 -13
  18. data/grammars/source.haskell.json +122 -24
  19. data/grammars/source.hql.json +1 -1
  20. data/grammars/source.hsig.json +122 -24
  21. data/grammars/source.hx.json +5 -5
  22. data/grammars/source.hxml.json +4 -4
  23. data/grammars/source.ideal.json +4 -4
  24. data/grammars/source.igor.json +325 -0
  25. data/grammars/source.jlex.json +322 -0
  26. data/grammars/source.julia.json +132 -1
  27. data/grammars/source.lean.json +103 -54
  28. data/grammars/source.lex.json +232 -0
  29. data/grammars/source.lex.regexp.json +269 -0
  30. data/grammars/source.logos.json +1 -1
  31. data/grammars/source.meson.json +1 -1
  32. data/grammars/source.mlir.json +389 -0
  33. data/grammars/source.nanorc.json +3 -0
  34. data/grammars/source.pic.json +19 -19
  35. data/grammars/source.plist.json +336 -0
  36. data/grammars/source.powershell.json +2 -2
  37. data/grammars/source.purescript.json +2 -2
  38. data/grammars/source.rascal.json +1 -0
  39. data/grammars/source.regexp.extended.json +544 -6
  40. data/grammars/source.regexp.json +408 -31
  41. data/grammars/source.renpy.json +3 -1
  42. data/grammars/source.scala.json +199 -97
  43. data/grammars/source.smpl.json +314 -0
  44. data/grammars/source.solidity.json +1 -1
  45. data/grammars/source.sourcepawn.json +654 -0
  46. data/grammars/source.sqf.json +5 -1
  47. data/grammars/source.swift.json +56 -11
  48. data/grammars/source.sy.json +800 -0
  49. data/grammars/source.ts.json +64 -47
  50. data/grammars/source.tsx.json +65 -48
  51. data/grammars/source.v.json +1184 -0
  52. data/grammars/source.viml.json +31 -31
  53. data/grammars/source.wollok.json +1 -1
  54. data/grammars/source.xojo.json +2 -2
  55. data/grammars/source.yacc.json +626 -0
  56. data/grammars/source.yara.json +1 -1
  57. data/grammars/source.yasnippet.json +15 -25
  58. data/grammars/source.zeek.json +4 -4
  59. data/grammars/source.zig.json +594 -195
  60. data/grammars/text.eml.basic.json +19 -6
  61. data/grammars/text.html.php.blade.json +3 -3
  62. data/grammars/text.plain.json +18 -0
  63. data/grammars/text.roff.json +926 -437
  64. data/grammars/text.runoff.json +3 -3
  65. data/grammars/text.tex.latex.haskell.json +122 -24
  66. data/grammars/text.texinfo.json +1525 -0
  67. data/grammars/text.xml.plist.json +664 -0
  68. data/grammars/text.xml.svg.json +556 -0
  69. data/grammars/version +1 -1
  70. data/lib/linguist.rb +3 -1
  71. data/lib/linguist/VERSION +1 -1
  72. data/lib/linguist/generated.rb +62 -17
  73. data/lib/linguist/heuristics.yml +13 -0
  74. data/lib/linguist/language.rb +1 -11
  75. data/lib/linguist/languages.json +1 -1
  76. data/lib/linguist/languages.yml +179 -19
  77. data/lib/linguist/samples.json +2778 -732
  78. data/lib/linguist/strategy/manpage.rb +42 -0
  79. metadata +22 -5
  80. data/grammars/source.bison.json +0 -55
  81. data/grammars/source.sp.json +0 -113
@@ -90,7 +90,7 @@
90
90
  },
91
91
  {
92
92
  "contentName": "markup.raw.runoff",
93
- "begin": "(?i)((\\.)LITERAL\\s*)(?:$|\\n)",
93
+ "begin": "(?i)((\\.)LITERAL\\s*)(?:$|\\R)",
94
94
  "end": "(?i)((\\.)END\\s+LITERAL)\\b",
95
95
  "beginCaptures": {
96
96
  "0": {
@@ -117,7 +117,7 @@
117
117
  },
118
118
  {
119
119
  "contentName": "markup.raw.runoff",
120
- "begin": "(?i)((\\.)LIT)\\s*(?:$|\\n)",
120
+ "begin": "(?i)((\\.)LIT)\\s*(?:$|\\R)",
121
121
  "end": "(?i)^(?=\\.(?:EL|END\\s+LIT)(?:$|[\\s;!]))",
122
122
  "beginCaptures": {
123
123
  "0": {
@@ -234,7 +234,7 @@
234
234
  },
235
235
  {
236
236
  "name": "constant.numeric.runoff",
237
- "match": "\\d+(?=$|\\n|,|\\.(?!\\d))"
237
+ "match": "\\d+(?=$|\\R|,|\\.(?!\\d))"
238
238
  }
239
239
  ]
240
240
  },
@@ -73,6 +73,14 @@
73
73
  }
74
74
  ],
75
75
  "repository": {
76
+ "arrow": {
77
+ "patterns": [
78
+ {
79
+ "name": "keyword.other.arrow.haskell",
80
+ "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"
81
+ }
82
+ ]
83
+ },
76
84
  "assignment_op": {
77
85
  "patterns": [
78
86
  {
@@ -93,6 +101,14 @@
93
101
  }
94
102
  ]
95
103
  },
104
+ "big_arrow": {
105
+ "patterns": [
106
+ {
107
+ "name": "keyword.other.big-arrow.haskell",
108
+ "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"
109
+ }
110
+ ]
111
+ },
96
112
  "block_comment": {
97
113
  "patterns": [
98
114
  {
@@ -329,24 +345,10 @@
329
345
  "include": "#assignment_op"
330
346
  },
331
347
  {
332
- "match": "(?:(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s*)(?:((?:(?!deriving)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|-\u003e|=\u003e)+\\s*)+))(?:(?:\\s+)(?:(?!deriving)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|-\u003e|=\u003e)+\\s*)+)))*)?))",
333
- "captures": {
334
- "1": {
335
- "patterns": [
336
- {
337
- "include": "#type_ctor"
338
- }
339
- ]
340
- },
341
- "2": {
342
- "name": "meta.type-signature.haskell",
343
- "patterns": [
344
- {
345
- "include": "#type_signature"
346
- }
347
- ]
348
- }
349
- }
348
+ "include": "#type_ctor_forall"
349
+ },
350
+ {
351
+ "include": "#type_ctor_alt"
350
352
  },
351
353
  {
352
354
  "match": "\\|",
@@ -1475,6 +1477,97 @@
1475
1477
  }
1476
1478
  ]
1477
1479
  },
1480
+ "type_ctor_alt": {
1481
+ "patterns": [
1482
+ {
1483
+ "contentName": "meta.type-signature.haskell",
1484
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s*",
1485
+ "end": "^(?!^(?:\u003e|\u003c) [ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))",
1486
+ "patterns": [
1487
+ {
1488
+ "include": "#comments"
1489
+ },
1490
+ {
1491
+ "include": "#type_signature"
1492
+ }
1493
+ ],
1494
+ "beginCaptures": {
1495
+ "1": {
1496
+ "patterns": [
1497
+ {
1498
+ "include": "#type_ctor"
1499
+ }
1500
+ ]
1501
+ }
1502
+ }
1503
+ }
1504
+ ]
1505
+ },
1506
+ "type_ctor_forall": {
1507
+ "patterns": [
1508
+ {
1509
+ "contentName": "meta.type-signature.haskell",
1510
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))forall(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
1511
+ "end": "^(?!^(?:\u003e|\u003c) [ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))",
1512
+ "patterns": [
1513
+ {
1514
+ "include": "#comments"
1515
+ },
1516
+ {
1517
+ "match": "\\G.*?(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))",
1518
+ "captures": {
1519
+ "0": {
1520
+ "patterns": [
1521
+ {
1522
+ "include": "#type_signature"
1523
+ }
1524
+ ]
1525
+ }
1526
+ }
1527
+ },
1528
+ {
1529
+ "match": "\\G.*?\\.",
1530
+ "captures": {
1531
+ "0": {
1532
+ "patterns": [
1533
+ {
1534
+ "include": "#type_signature"
1535
+ }
1536
+ ]
1537
+ }
1538
+ }
1539
+ },
1540
+ {
1541
+ "include": "#big_arrow"
1542
+ },
1543
+ {
1544
+ "include": "#type_variable"
1545
+ },
1546
+ {
1547
+ "begin": "\\(",
1548
+ "end": "\\)",
1549
+ "patterns": [
1550
+ {
1551
+ "include": "#type_signature"
1552
+ }
1553
+ ]
1554
+ },
1555
+ {
1556
+ "include": "#type_ctor_alt"
1557
+ }
1558
+ ],
1559
+ "beginCaptures": {
1560
+ "0": {
1561
+ "patterns": [
1562
+ {
1563
+ "include": "#type_signature"
1564
+ }
1565
+ ]
1566
+ }
1567
+ }
1568
+ }
1569
+ ]
1570
+ },
1478
1571
  "type_name": {
1479
1572
  "patterns": [
1480
1573
  {
@@ -1548,12 +1641,10 @@
1548
1641
  "include": "#string"
1549
1642
  },
1550
1643
  {
1551
- "name": "keyword.other.arrow.haskell",
1552
- "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"
1644
+ "include": "#arrow"
1553
1645
  },
1554
1646
  {
1555
- "name": "keyword.other.big-arrow.haskell",
1556
- "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"
1647
+ "include": "#big_arrow"
1557
1648
  },
1558
1649
  {
1559
1650
  "name": "keyword.operator.promoted.haskell",
@@ -1572,8 +1663,7 @@
1572
1663
  "include": "#operator"
1573
1664
  },
1574
1665
  {
1575
- "name": "variable.other.generic-type.haskell",
1576
- "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"
1666
+ "include": "#type_variable"
1577
1667
  },
1578
1668
  {
1579
1669
  "name": "entity.name.type.promoted.haskell",
@@ -1596,6 +1686,14 @@
1596
1686
  }
1597
1687
  ]
1598
1688
  },
1689
+ "type_variable": {
1690
+ "patterns": [
1691
+ {
1692
+ "name": "variable.other.generic-type.haskell",
1693
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"
1694
+ }
1695
+ ]
1696
+ },
1599
1697
  "unit": {
1600
1698
  "patterns": [
1601
1699
  {
@@ -0,0 +1,1525 @@
1
+ {
2
+ "name": "Texinfo",
3
+ "scopeName": "text.texinfo",
4
+ "patterns": [
5
+ {
6
+ "match": "\\A\\s*((\\\\)input)\\s+([^@\\s\\x7F]+)",
7
+ "captures": {
8
+ "1": {
9
+ "name": "support.function.general.tex"
10
+ },
11
+ "2": {
12
+ "name": "punctuation.definition.function.tex"
13
+ },
14
+ "3": {
15
+ "name": "support.constant.language.other.tex"
16
+ }
17
+ }
18
+ },
19
+ {
20
+ "include": "#main"
21
+ }
22
+ ],
23
+ "repository": {
24
+ "alias": {
25
+ "name": "meta.command.alias.texinfo",
26
+ "match": "((@)alias)\\s+([^=\\s]+)\\s*(=)\\s*([^=\\s]+)",
27
+ "captures": {
28
+ "1": {
29
+ "name": "keyword.operator.command.alias.texinfo"
30
+ },
31
+ "2": {
32
+ "name": "punctuation.definition.function.texinfo"
33
+ },
34
+ "3": {
35
+ "name": "entity.name.function.alias.texinfo"
36
+ },
37
+ "4": {
38
+ "name": "punctuation.separator.separator.texinfo"
39
+ },
40
+ "5": {
41
+ "name": "entity.name.function.source.texinfo"
42
+ }
43
+ }
44
+ },
45
+ "blockCommands": {
46
+ "name": "meta.command.$3.block.texinfo",
47
+ "begin": "(?x) ((@)\n(cartouche|copying|direntry|display|documentdescription|enumerate\n|float|flushleft|flushright|format|ftable|group|itemize|multitable\n|raggedright|smalldisplay|smallformat|smallindentedblock|table\n|titlepage|vtable))\n(?=\\s|$)(.*)",
48
+ "end": "((@)end\\s+\\3)\\b",
49
+ "patterns": [
50
+ {
51
+ "include": "#main"
52
+ }
53
+ ],
54
+ "beginCaptures": {
55
+ "1": {
56
+ "name": "keyword.operator.command.$3.texinfo"
57
+ },
58
+ "2": {
59
+ "name": "punctuation.definition.function.texinfo"
60
+ },
61
+ "4": {
62
+ "patterns": [
63
+ {
64
+ "include": "#param"
65
+ },
66
+ {
67
+ "include": "#main"
68
+ }
69
+ ]
70
+ }
71
+ },
72
+ "endCaptures": {
73
+ "1": {
74
+ "name": "keyword.operator.command.end-$3.texinfo"
75
+ },
76
+ "2": {
77
+ "name": "punctuation.definition.function.texinfo"
78
+ }
79
+ }
80
+ },
81
+ "boldText": {
82
+ "patterns": [
83
+ {
84
+ "name": "meta.command.$3.braced.texinfo",
85
+ "contentName": "markup.bold.texinfo",
86
+ "begin": "((@)(b|strong))({)",
87
+ "end": "}",
88
+ "patterns": [
89
+ {
90
+ "include": "#main"
91
+ }
92
+ ],
93
+ "beginCaptures": {
94
+ "1": {
95
+ "name": "keyword.operator.command.$3.texinfo"
96
+ },
97
+ "2": {
98
+ "name": "punctuation.definition.function.texinfo"
99
+ },
100
+ "4": {
101
+ "name": "punctuation.section.scope.begin.texinfo"
102
+ }
103
+ },
104
+ "endCaptures": {
105
+ "0": {
106
+ "name": "punctuation.section.scope.end.texinfo"
107
+ }
108
+ }
109
+ },
110
+ {
111
+ "name": "meta.command.$3.line.texinfo",
112
+ "contentName": "markup.heading.string.unquoted.texinfo",
113
+ "begin": "(?x) ^ ((@)\n(appendixsection|appendixsec|appendixsubsec|appendixsubsubsec|appendix\n|chapheading|chapter|heading|majorheading|section|subheading|subsection\n|subsubheading|subsubsection|top|unnumberedsec|unnumberedsubsec\n|unnumberedsubsubsec|unnumbered))\n(?=\\s|$)",
114
+ "end": "$",
115
+ "patterns": [
116
+ {
117
+ "include": "#main"
118
+ }
119
+ ],
120
+ "beginCaptures": {
121
+ "0": {
122
+ "name": "markup.bold.texinfo"
123
+ },
124
+ "1": {
125
+ "name": "keyword.operator.command.$3.texinfo"
126
+ },
127
+ "2": {
128
+ "name": "punctuation.definition.function.texinfo"
129
+ }
130
+ }
131
+ }
132
+ ]
133
+ },
134
+ "booleanCommands": {
135
+ "patterns": [
136
+ {
137
+ "name": "meta.command.headings.texinfo",
138
+ "match": "((@)headings)\\s+(?:(on)|(off)|(single|double))\\b",
139
+ "captures": {
140
+ "1": {
141
+ "name": "keyword.operator.command.headings.texinfo"
142
+ },
143
+ "2": {
144
+ "name": "punctuation.defining.function.texinfo"
145
+ },
146
+ "3": {
147
+ "name": "constant.language.boolean.true.texinfo"
148
+ },
149
+ "4": {
150
+ "name": "constant.language.boolean.false.texinfo"
151
+ },
152
+ "5": {
153
+ "name": "constant.language.heading-type.$5.texinfo"
154
+ }
155
+ }
156
+ },
157
+ {
158
+ "name": "meta.command.setchapternewpage.texinfo",
159
+ "match": "((@)setchapternewpage)\\s+(?:(on)|(off)|(odd))\\b",
160
+ "captures": {
161
+ "1": {
162
+ "name": "keyword.operator.command.headings.texinfo"
163
+ },
164
+ "2": {
165
+ "name": "punctuation.defining.function.texinfo"
166
+ },
167
+ "3": {
168
+ "name": "constant.language.boolean.true.texinfo"
169
+ },
170
+ "4": {
171
+ "name": "constant.language.boolean.false.texinfo"
172
+ },
173
+ "5": {
174
+ "name": "constant.language.odd.texinfo"
175
+ }
176
+ }
177
+ },
178
+ {
179
+ "name": "meta.command.$3.texinfo",
180
+ "match": "((@)(allowcodebreaks))\\s+(true|false)(?=\\s|$)",
181
+ "captures": {
182
+ "1": {
183
+ "name": "keyword.operator.command.$3.texinfo"
184
+ },
185
+ "2": {
186
+ "name": "punctuation.definition.function.texinfo"
187
+ },
188
+ "4": {
189
+ "name": "constant.language.boolean.$4.texinfo"
190
+ }
191
+ }
192
+ },
193
+ {
194
+ "name": "meta.command.$3.texinfo",
195
+ "match": "(?x) ((@)\n(codequotebacktick|codequoteundirected|deftypefnnewline\n|frenchspacing|validatemenus|xrefautomaticsectiontitle))\n\\s+ (?:(on)|(off)) \\b",
196
+ "captures": {
197
+ "1": {
198
+ "name": "keyword.operator.command.$3.texinfo"
199
+ },
200
+ "2": {
201
+ "name": "punctuation.definition.function.texinfo"
202
+ },
203
+ "4": {
204
+ "name": "constant.language.boolean.true.texinfo"
205
+ },
206
+ "5": {
207
+ "name": "constant.language.boolean.false.texinfo"
208
+ }
209
+ }
210
+ }
211
+ ]
212
+ },
213
+ "codeBlocks": {
214
+ "patterns": [
215
+ {
216
+ "name": "meta.command.$3.block.texinfo",
217
+ "contentName": "source.embedded.emacs.lisp",
218
+ "begin": "((@)(lisp|smalllisp))(?=\\s|$)",
219
+ "end": "((@)end\\s+\\3)\\b",
220
+ "patterns": [
221
+ {
222
+ "include": "source.emacs.lisp"
223
+ },
224
+ {
225
+ "include": "#main"
226
+ }
227
+ ],
228
+ "beginCaptures": {
229
+ "1": {
230
+ "name": "keyword.operator.command.$3.texinfo"
231
+ },
232
+ "2": {
233
+ "name": "punctuation.definition.function.texinfo"
234
+ }
235
+ },
236
+ "endCaptures": {
237
+ "1": {
238
+ "name": "keyword.operator.command.end-$3.texinfo"
239
+ },
240
+ "2": {
241
+ "name": "punctuation.definition.function.texinfo"
242
+ }
243
+ }
244
+ },
245
+ {
246
+ "name": "meta.command.$3.block.texinfo",
247
+ "contentName": "markup.raw.texinfo",
248
+ "begin": "((@)(example|smallexample|verbatim))(?=\\s|$)",
249
+ "end": "((@)end\\s+\\3)\\b",
250
+ "patterns": [
251
+ {
252
+ "include": "#main"
253
+ }
254
+ ],
255
+ "beginCaptures": {
256
+ "1": {
257
+ "name": "keyword.operator.command.$3.texinfo"
258
+ },
259
+ "2": {
260
+ "name": "punctuation.definition.function.texinfo"
261
+ }
262
+ },
263
+ "endCaptures": {
264
+ "1": {
265
+ "name": "keyword.operator.command.end-$3.texinfo"
266
+ },
267
+ "2": {
268
+ "name": "punctuation.definition.function.texinfo"
269
+ }
270
+ }
271
+ }
272
+ ]
273
+ },
274
+ "comma": {
275
+ "name": "punctuation.separator.delimiter.comma.texinfo",
276
+ "match": ","
277
+ },
278
+ "command": {
279
+ "patterns": [
280
+ {
281
+ "name": "meta.command.braced.texinfo",
282
+ "begin": "((@)(\\w+))({)",
283
+ "end": "}",
284
+ "patterns": [
285
+ {
286
+ "include": "#param"
287
+ },
288
+ {
289
+ "include": "#comma"
290
+ },
291
+ {
292
+ "include": "#main"
293
+ }
294
+ ],
295
+ "beginCaptures": {
296
+ "1": {
297
+ "name": "keyword.operator.command.$3.texinfo"
298
+ },
299
+ "2": {
300
+ "name": "punctuation.definition.function.texinfo"
301
+ },
302
+ "4": {
303
+ "name": "punctuation.section.scope.begin.texinfo"
304
+ }
305
+ },
306
+ "endCaptures": {
307
+ "0": {
308
+ "name": "punctuation.section.scope.end.texinfo"
309
+ }
310
+ }
311
+ },
312
+ {
313
+ "name": "keyword.operator.command.$2.texinfo",
314
+ "match": "(@)(\\w+)",
315
+ "captures": {
316
+ "1": {
317
+ "name": "punctuation.definition.function.texinfo"
318
+ }
319
+ }
320
+ }
321
+ ]
322
+ },
323
+ "comments": {
324
+ "patterns": [
325
+ {
326
+ "name": "comment.line.at-sign.texinfo",
327
+ "begin": "((@)c(?:omment)?)(?=$|[^-A-Za-z0-9])",
328
+ "end": "$",
329
+ "beginCaptures": {
330
+ "1": {
331
+ "name": "keyword.operator.command.start-comment.texinfo"
332
+ },
333
+ "2": {
334
+ "name": "punctuation.definition.function.texinfo"
335
+ }
336
+ }
337
+ },
338
+ {
339
+ "name": "comment.line.tex-style.texinfo",
340
+ "begin": "\\x7F",
341
+ "end": "$",
342
+ "beginCaptures": {
343
+ "0": {
344
+ "name": "punctuation.whitespace.delete.texinfo"
345
+ }
346
+ }
347
+ }
348
+ ]
349
+ },
350
+ "conditionals": {
351
+ "patterns": [
352
+ {
353
+ "name": "meta.command.$3.conditional.block.texinfo",
354
+ "begin": "((@)(ifclear|ifcommanddefined|ifcommandnotdefined|ifset))\\s+(\\S+)",
355
+ "end": "((@)end\\s+\\3)\\b",
356
+ "patterns": [
357
+ {
358
+ "include": "#main"
359
+ }
360
+ ],
361
+ "beginCaptures": {
362
+ "1": {
363
+ "name": "keyword.control.command.$3.texinfo"
364
+ },
365
+ "2": {
366
+ "name": "punctuation.definition.function.texinfo"
367
+ },
368
+ "4": {
369
+ "name": "variable.parameter.texinfo"
370
+ }
371
+ },
372
+ "endCaptures": {
373
+ "1": {
374
+ "name": "keyword.control.command.end-$3.texinfo"
375
+ },
376
+ "2": {
377
+ "name": "punctuation.definition.function.texinfo"
378
+ }
379
+ }
380
+ },
381
+ {
382
+ "name": "meta.command.$3.conditional.block.texinfo",
383
+ "begin": "(?x) ((@)\n(ifdocbook|ifhtml|ifinfo|ifnotdocbook|ifnothtml|ifnotinfo|ifnotplaintext\n|ifnottex|ifnotxml|ifplaintext|iftex|ifxml))\n(?=\\s|$)",
384
+ "end": "((@)end\\s+\\3)\\b",
385
+ "patterns": [
386
+ {
387
+ "include": "#main"
388
+ }
389
+ ],
390
+ "beginCaptures": {
391
+ "1": {
392
+ "name": "keyword.control.command.$3.texinfo"
393
+ },
394
+ "2": {
395
+ "name": "punctuation.definition.function.texinfo"
396
+ },
397
+ "4": {
398
+ "name": "variable.parameter.texinfo"
399
+ }
400
+ },
401
+ "endCaptures": {
402
+ "1": {
403
+ "name": "keyword.control.command.end-$3.texinfo"
404
+ },
405
+ "2": {
406
+ "name": "punctuation.definition.function.texinfo"
407
+ }
408
+ }
409
+ }
410
+ ]
411
+ },
412
+ "dashes": {
413
+ "patterns": [
414
+ {
415
+ "name": "constant.character.dash.em-dash.texinfo",
416
+ "match": "---"
417
+ },
418
+ {
419
+ "name": "constant.character.dash.en-dash.texinfo",
420
+ "match": "--"
421
+ }
422
+ ]
423
+ },
424
+ "definitions": {
425
+ "patterns": [
426
+ {
427
+ "name": "meta.command.$3.line.texinfo",
428
+ "begin": "((@)(defcodeindex|defindex|defopt|defoptx|defvar|defvarx))(?=\\s|$)",
429
+ "end": "$",
430
+ "patterns": [
431
+ {
432
+ "name": "entity.name.var.texinfo",
433
+ "match": "\\G\\s*(?:({)[^}]*(})|\\S+)",
434
+ "captures": {
435
+ "1": {
436
+ "name": "punctuation.definition.begin.texinfo"
437
+ },
438
+ "2": {
439
+ "name": "punctuation.definition.end.texinfo"
440
+ }
441
+ }
442
+ },
443
+ {
444
+ "include": "#main"
445
+ }
446
+ ],
447
+ "beginCaptures": {
448
+ "1": {
449
+ "name": "keyword.operator.command.$3.texinfo"
450
+ },
451
+ "2": {
452
+ "name": "punctuation.definition.function.texinfo"
453
+ }
454
+ }
455
+ },
456
+ {
457
+ "name": "meta.command.$3.line.texinfo",
458
+ "begin": "((@)(defcvx|defcv|defopx|defop))(?=\\s|$)",
459
+ "end": "$",
460
+ "patterns": [
461
+ {
462
+ "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?",
463
+ "captures": {
464
+ "1": {
465
+ "name": "storage.type.var.texinfo"
466
+ },
467
+ "2": {
468
+ "name": "punctuation.definition.begin.texinfo"
469
+ },
470
+ "3": {
471
+ "name": "punctuation.definition.end.texinfo"
472
+ },
473
+ "4": {
474
+ "name": "entity.other.inherited-class.texinfo"
475
+ },
476
+ "5": {
477
+ "name": "punctuation.definition.begin.texinfo"
478
+ },
479
+ "6": {
480
+ "name": "punctuation.definition.end.texinfo"
481
+ },
482
+ "7": {
483
+ "name": "entity.name.var.texinfo"
484
+ },
485
+ "8": {
486
+ "name": "punctuation.definition.begin.texinfo"
487
+ },
488
+ "9": {
489
+ "name": "punctuation.definition.end.texinfo"
490
+ }
491
+ }
492
+ },
493
+ {
494
+ "include": "#param"
495
+ },
496
+ {
497
+ "include": "#main"
498
+ }
499
+ ],
500
+ "beginCaptures": {
501
+ "1": {
502
+ "name": "keyword.operator.command.$3.texinfo"
503
+ },
504
+ "2": {
505
+ "name": "punctuation.definition.function.texinfo"
506
+ }
507
+ }
508
+ },
509
+ {
510
+ "name": "meta.command.$3.line.texinfo",
511
+ "begin": "((@)(deffnx|deffn|deftpx|deftp|defvrx|defvr))(?=\\s|$)",
512
+ "end": "$",
513
+ "patterns": [
514
+ {
515
+ "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?",
516
+ "captures": {
517
+ "1": {
518
+ "name": "storage.type.var.texinfo"
519
+ },
520
+ "2": {
521
+ "name": "punctuation.definition.begin.texinfo"
522
+ },
523
+ "3": {
524
+ "name": "punctuation.definition.end.texinfo"
525
+ },
526
+ "4": {
527
+ "name": "entity.name.var.texinfo"
528
+ },
529
+ "5": {
530
+ "name": "punctuation.definition.begin.texinfo"
531
+ },
532
+ "6": {
533
+ "name": "punctuation.definition.end.texinfo"
534
+ }
535
+ }
536
+ },
537
+ {
538
+ "include": "#param"
539
+ },
540
+ {
541
+ "include": "#main"
542
+ }
543
+ ],
544
+ "beginCaptures": {
545
+ "1": {
546
+ "name": "keyword.operator.command.$3.texinfo"
547
+ },
548
+ "2": {
549
+ "name": "punctuation.definition.function.texinfo"
550
+ }
551
+ }
552
+ },
553
+ {
554
+ "name": "meta.command.$3.line.texinfo",
555
+ "begin": "((@)(definfoenclose))(?=\\s|$)",
556
+ "end": "$",
557
+ "patterns": [
558
+ {
559
+ "match": "\\G\\s*(({)[^}]*(})|[^\\s,]+)",
560
+ "captures": {
561
+ "1": {
562
+ "name": "entity.name.var.texinfo"
563
+ },
564
+ "2": {
565
+ "name": "punctuation.definition.begin.texinfo"
566
+ },
567
+ "3": {
568
+ "name": "punctuation.definition.end.texinfo"
569
+ }
570
+ }
571
+ },
572
+ {
573
+ "name": "string.unquoted.texinfo",
574
+ "match": "[^\\s,@]+"
575
+ },
576
+ {
577
+ "include": "#comma"
578
+ }
579
+ ],
580
+ "beginCaptures": {
581
+ "1": {
582
+ "name": "keyword.operator.command.$3.texinfo"
583
+ },
584
+ "2": {
585
+ "name": "punctuation.definition.function.texinfo"
586
+ }
587
+ }
588
+ },
589
+ {
590
+ "name": "meta.command.$3.line.texinfo",
591
+ "begin": "((@)(defivarx|defivar|defmethodx|defmethod))(?=\\s|$)",
592
+ "end": "$",
593
+ "patterns": [
594
+ {
595
+ "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?",
596
+ "captures": {
597
+ "1": {
598
+ "name": "entity.other.inherited-class.texinfo"
599
+ },
600
+ "2": {
601
+ "name": "punctuation.definition.begin.texinfo"
602
+ },
603
+ "3": {
604
+ "name": "punctuation.definition.end.texinfo"
605
+ },
606
+ "4": {
607
+ "name": "entity.name.var.texinfo"
608
+ },
609
+ "5": {
610
+ "name": "punctuation.definition.begin.texinfo"
611
+ },
612
+ "6": {
613
+ "name": "punctuation.definition.end.texinfo"
614
+ }
615
+ }
616
+ },
617
+ {
618
+ "include": "#param"
619
+ },
620
+ {
621
+ "include": "#main"
622
+ }
623
+ ],
624
+ "beginCaptures": {
625
+ "1": {
626
+ "name": "keyword.operator.command.$3.texinfo"
627
+ },
628
+ "2": {
629
+ "name": "punctuation.definition.function.texinfo"
630
+ }
631
+ }
632
+ },
633
+ {
634
+ "name": "meta.command.$3.line.texinfo",
635
+ "begin": "((@)(defmacx|defmac|defunx|defun|defspecx|defspec))(?=\\s|$)",
636
+ "end": "$",
637
+ "patterns": [
638
+ {
639
+ "name": "entity.name.function.texinfo",
640
+ "match": "\\G\\s*(?:({)[^}]*(})|\\S+)",
641
+ "captures": {
642
+ "1": {
643
+ "name": "punctuation.definition.begin.texinfo"
644
+ },
645
+ "2": {
646
+ "name": "punctuation.definition.end.texinfo"
647
+ }
648
+ }
649
+ },
650
+ {
651
+ "include": "#param"
652
+ },
653
+ {
654
+ "include": "#main"
655
+ }
656
+ ],
657
+ "beginCaptures": {
658
+ "1": {
659
+ "name": "keyword.operator.command.$3.texinfo"
660
+ },
661
+ "2": {
662
+ "name": "punctuation.definition.function.texinfo"
663
+ }
664
+ }
665
+ },
666
+ {
667
+ "name": "meta.command.$3.line.texinfo",
668
+ "begin": "((@)(deftypecvx|deftypecv|deftypevrx|deftypevr))(?=\\s|$)",
669
+ "end": "$",
670
+ "patterns": [
671
+ {
672
+ "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?",
673
+ "captures": {
674
+ "1": {
675
+ "name": "storage.type.var.category.texinfo"
676
+ },
677
+ "10": {
678
+ "name": "entity.name.var.texinfo"
679
+ },
680
+ "11": {
681
+ "name": "punctuation.definition.begin.texinfo"
682
+ },
683
+ "12": {
684
+ "name": "punctuation.definition.end.texinfo"
685
+ },
686
+ "2": {
687
+ "name": "punctuation.definition.begin.texinfo"
688
+ },
689
+ "3": {
690
+ "name": "punctuation.definition.end.texinfo"
691
+ },
692
+ "4": {
693
+ "name": "entity.other.inherited-class.texinfo"
694
+ },
695
+ "5": {
696
+ "name": "punctuation.definition.begin.texinfo"
697
+ },
698
+ "6": {
699
+ "name": "punctuation.definition.end.texinfo"
700
+ },
701
+ "7": {
702
+ "name": "storage.type.var.data-type.texinfo"
703
+ },
704
+ "8": {
705
+ "name": "punctuation.definition.begin.texinfo"
706
+ },
707
+ "9": {
708
+ "name": "punctuation.definition.end.texinfo"
709
+ }
710
+ }
711
+ },
712
+ {
713
+ "include": "#param"
714
+ },
715
+ {
716
+ "include": "#main"
717
+ }
718
+ ],
719
+ "beginCaptures": {
720
+ "1": {
721
+ "name": "keyword.operator.command.$3.texinfo"
722
+ },
723
+ "2": {
724
+ "name": "punctuation.definition.function.texinfo"
725
+ }
726
+ }
727
+ },
728
+ {
729
+ "name": "meta.command.$3.line.texinfo",
730
+ "begin": "((@)(deftypefnx|deftypefn))(?=\\s|$)",
731
+ "end": "$",
732
+ "patterns": [
733
+ {
734
+ "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?",
735
+ "captures": {
736
+ "1": {
737
+ "name": "storage.type.var.category.texinfo"
738
+ },
739
+ "2": {
740
+ "name": "punctuation.definition.begin.texinfo"
741
+ },
742
+ "3": {
743
+ "name": "punctuation.definition.end.texinfo"
744
+ },
745
+ "4": {
746
+ "name": "storage.type.var.data-type.texinfo"
747
+ },
748
+ "5": {
749
+ "name": "punctuation.definition.begin.texinfo"
750
+ },
751
+ "6": {
752
+ "name": "punctuation.definition.end.texinfo"
753
+ },
754
+ "7": {
755
+ "name": "entity.name.var.texinfo"
756
+ },
757
+ "8": {
758
+ "name": "punctuation.definition.begin.texinfo"
759
+ },
760
+ "9": {
761
+ "name": "punctuation.definition.end.texinfo"
762
+ }
763
+ }
764
+ },
765
+ {
766
+ "include": "#param"
767
+ },
768
+ {
769
+ "include": "#main"
770
+ }
771
+ ],
772
+ "beginCaptures": {
773
+ "1": {
774
+ "name": "keyword.operator.command.$3.texinfo"
775
+ },
776
+ "2": {
777
+ "name": "punctuation.definition.function.texinfo"
778
+ }
779
+ }
780
+ },
781
+ {
782
+ "name": "meta.command.$3.line.texinfo",
783
+ "begin": "((@)(deftypefunx|deftypefun))(?=\\s|$)",
784
+ "end": "$",
785
+ "patterns": [
786
+ {
787
+ "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?",
788
+ "captures": {
789
+ "1": {
790
+ "name": "storage.type.var.data-type.texinfo"
791
+ },
792
+ "2": {
793
+ "name": "punctuation.definition.begin.texinfo"
794
+ },
795
+ "3": {
796
+ "name": "punctuation.definition.end.texinfo"
797
+ },
798
+ "4": {
799
+ "name": "entity.name.var.texinfo"
800
+ },
801
+ "5": {
802
+ "name": "punctuation.definition.begin.texinfo"
803
+ },
804
+ "6": {
805
+ "name": "punctuation.definition.end.texinfo"
806
+ }
807
+ }
808
+ },
809
+ {
810
+ "include": "#param"
811
+ },
812
+ {
813
+ "include": "#main"
814
+ }
815
+ ],
816
+ "beginCaptures": {
817
+ "1": {
818
+ "name": "keyword.operator.command.$3.texinfo"
819
+ },
820
+ "2": {
821
+ "name": "punctuation.definition.function.texinfo"
822
+ }
823
+ }
824
+ },
825
+ {
826
+ "name": "meta.command.$3.line.texinfo",
827
+ "begin": "((@)(deftypemethodx|deftypemethod|deftypeivarx|deftypeivar))(?=\\s|$)",
828
+ "end": "$",
829
+ "patterns": [
830
+ {
831
+ "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?",
832
+ "captures": {
833
+ "1": {
834
+ "name": "entity.other.inherited-class.texinfo"
835
+ },
836
+ "2": {
837
+ "name": "punctuation.definition.begin.texinfo"
838
+ },
839
+ "3": {
840
+ "name": "punctuation.definition.end.texinfo"
841
+ },
842
+ "4": {
843
+ "name": "storage.type.var.data-type.texinfo"
844
+ },
845
+ "5": {
846
+ "name": "punctuation.definition.begin.texinfo"
847
+ },
848
+ "6": {
849
+ "name": "punctuation.definition.end.texinfo"
850
+ },
851
+ "7": {
852
+ "name": "entity.name.var.texinfo"
853
+ },
854
+ "8": {
855
+ "name": "punctuation.definition.begin.texinfo"
856
+ },
857
+ "9": {
858
+ "name": "punctuation.definition.end.texinfo"
859
+ }
860
+ }
861
+ },
862
+ {
863
+ "include": "#param"
864
+ },
865
+ {
866
+ "include": "#main"
867
+ }
868
+ ],
869
+ "beginCaptures": {
870
+ "1": {
871
+ "name": "keyword.operator.command.$3.texinfo"
872
+ },
873
+ "2": {
874
+ "name": "punctuation.definition.function.texinfo"
875
+ }
876
+ }
877
+ },
878
+ {
879
+ "name": "meta.command.$3.line.texinfo",
880
+ "begin": "((@)(deftypeopx|deftypeop))(?=\\s|$)",
881
+ "end": "$",
882
+ "patterns": [
883
+ {
884
+ "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?",
885
+ "captures": {
886
+ "1": {
887
+ "name": "storage.type.var.category.texinfo"
888
+ },
889
+ "10": {
890
+ "name": "entity.name.var.texinfo"
891
+ },
892
+ "11": {
893
+ "name": "punctuation.definition.begin.texinfo"
894
+ },
895
+ "12": {
896
+ "name": "punctuation.definition.end.texinfo"
897
+ },
898
+ "2": {
899
+ "name": "punctuation.definition.begin.texinfo"
900
+ },
901
+ "3": {
902
+ "name": "punctuation.definition.end.texinfo"
903
+ },
904
+ "4": {
905
+ "name": "entity.other.inherited-class.texinfo"
906
+ },
907
+ "5": {
908
+ "name": "punctuation.definition.begin.texinfo"
909
+ },
910
+ "6": {
911
+ "name": "punctuation.definition.end.texinfo"
912
+ },
913
+ "7": {
914
+ "name": "storage.type.var.data-type.texinfo"
915
+ },
916
+ "8": {
917
+ "name": "punctuation.definition.begin.texinfo"
918
+ },
919
+ "9": {
920
+ "name": "punctuation.definition.end.texinfo"
921
+ }
922
+ }
923
+ },
924
+ {
925
+ "include": "#param"
926
+ },
927
+ {
928
+ "include": "#main"
929
+ }
930
+ ],
931
+ "beginCaptures": {
932
+ "1": {
933
+ "name": "keyword.operator.command.$3.texinfo"
934
+ },
935
+ "2": {
936
+ "name": "punctuation.definition.function.texinfo"
937
+ }
938
+ }
939
+ },
940
+ {
941
+ "name": "meta.command.$3.line.texinfo",
942
+ "begin": "((@)(deftypevarx|deftypevar))(?=\\s|$)",
943
+ "end": "$",
944
+ "patterns": [
945
+ {
946
+ "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?",
947
+ "captures": {
948
+ "1": {
949
+ "name": "storage.type.var.data-type.texinfo"
950
+ },
951
+ "2": {
952
+ "name": "punctuation.definition.begin.texinfo"
953
+ },
954
+ "3": {
955
+ "name": "punctuation.definition.end.texinfo"
956
+ },
957
+ "4": {
958
+ "name": "entity.name.var.texinfo"
959
+ },
960
+ "5": {
961
+ "name": "punctuation.definition.begin.texinfo"
962
+ },
963
+ "6": {
964
+ "name": "punctuation.definition.end.texinfo"
965
+ }
966
+ }
967
+ },
968
+ {
969
+ "include": "#param"
970
+ },
971
+ {
972
+ "include": "#main"
973
+ }
974
+ ],
975
+ "beginCaptures": {
976
+ "1": {
977
+ "name": "keyword.operator.command.$3.texinfo"
978
+ },
979
+ "2": {
980
+ "name": "punctuation.definition.function.texinfo"
981
+ }
982
+ }
983
+ }
984
+ ]
985
+ },
986
+ "ignored": {
987
+ "patterns": [
988
+ {
989
+ "name": "meta.command.ignore.block.texinfo",
990
+ "contentName": "comment.block.ignored.texinfo",
991
+ "begin": "((@)ignore)(?=\\s|$)",
992
+ "end": "((@)end\\s+ignore)\\b",
993
+ "patterns": [
994
+ {
995
+ "include": "#main"
996
+ }
997
+ ],
998
+ "beginCaptures": {
999
+ "1": {
1000
+ "name": "keyword.operator.command.ignore.texinfo"
1001
+ },
1002
+ "2": {
1003
+ "name": "punctuation.definition.function.texinfo"
1004
+ }
1005
+ },
1006
+ "endCaptures": {
1007
+ "1": {
1008
+ "name": "keyword.operator.command.end-ignore.texinfo"
1009
+ },
1010
+ "2": {
1011
+ "name": "punctuation.definition.function.texinfo"
1012
+ }
1013
+ }
1014
+ },
1015
+ {
1016
+ "name": "meta.command.bye.block.texinfo",
1017
+ "contentName": "comment.block.ignored.texinfo",
1018
+ "begin": "^((@)bye)(?=\\s|$)",
1019
+ "end": "(?=A)B",
1020
+ "patterns": [
1021
+ {
1022
+ "include": "#main"
1023
+ }
1024
+ ],
1025
+ "beginCaptures": {
1026
+ "1": {
1027
+ "name": "keyword.operator.command.bye.texinfo"
1028
+ },
1029
+ "2": {
1030
+ "name": "punctuation.definition.function.texinfo"
1031
+ }
1032
+ }
1033
+ }
1034
+ ]
1035
+ },
1036
+ "italicText": {
1037
+ "name": "meta.command.$3.braced.texinfo",
1038
+ "contentName": "markup.italic.texinfo",
1039
+ "begin": "((@)(i|emph|sc|slanted))({)",
1040
+ "end": "}",
1041
+ "patterns": [
1042
+ {
1043
+ "include": "#main"
1044
+ }
1045
+ ],
1046
+ "beginCaptures": {
1047
+ "1": {
1048
+ "name": "keyword.operator.command.$3.texinfo"
1049
+ },
1050
+ "2": {
1051
+ "name": "punctuation.definition.function.texinfo"
1052
+ },
1053
+ "4": {
1054
+ "name": "punctuation.section.scope.begin.texinfo"
1055
+ }
1056
+ },
1057
+ "endCaptures": {
1058
+ "0": {
1059
+ "name": "punctuation.section.scope.end.texinfo"
1060
+ }
1061
+ }
1062
+ },
1063
+ "lineCommands": {
1064
+ "name": "meta.command.$3.line.texinfo",
1065
+ "contentName": "markup.raw.texinfo",
1066
+ "begin": "(?x) ^ ((@)\n(author|centerchap|center|cindex|clear|defcodeindex|defcvx|defcv|deffnx\n|deffn|defindex|definfoenclose|defivarx|defivar|defmacx|defmac|defmethodx\n|defmethod|defoptx|defopt|defopx|defop|defspecx|defspec|deftpx|deftp\n|deftypecvx|deftypecv|deftypefnx|deftypefn|deftypefunx|deftypefun\n|deftypeivarx|deftypeivar|deftypemethodx|deftypemethod|deftypeopx\n|deftypeop|deftypevarx|deftypevar|deftypevrx|deftypevr|defunx|defun\n|defvarx|defvar|defvrx|defvr|dircategory|documentencoding|documentlanguage\n|enumerate|evenfooting|even|everyfooting|everyexampleindent|exdent|findex\n|firstparagraphindent|fonttextsize|footnotestyle|ftable|include|itemize\n|kbdinputstyle|kindex|macro|multitable|need|node|oddfooting|oddpagesizes\n|paragraphindent|part|pindex|printindex|setfilename|settitle|set\n|shorttitlepage|sortas|sp|strong|subtitle|sub|sup|syncodeindex|synindex\n|table|tindex|title|unmacro|urefbreakstyle|verbatiminclude|vindex|vskip|vtable))\n(?=\\s|$)",
1067
+ "end": "$",
1068
+ "patterns": [
1069
+ {
1070
+ "name": "entity.name.function.macro.texinfo",
1071
+ "match": "\\G(?\u003c=@macro)\\s*(\\S+)"
1072
+ },
1073
+ {
1074
+ "match": "\\G(?:\\s*[-+]?[0-9]+(?:\\.[0-9]+)?,?)+(?=\\s*$)",
1075
+ "captures": {
1076
+ "0": {
1077
+ "patterns": [
1078
+ {
1079
+ "name": "constant.numeric.float.texinfo",
1080
+ "match": "[-+]?\\d+(?:\\.\\d+)"
1081
+ },
1082
+ {
1083
+ "name": "constant.numeric.int.texinfo",
1084
+ "match": "[-+]?\\d+"
1085
+ },
1086
+ {
1087
+ "include": "#comma"
1088
+ }
1089
+ ]
1090
+ }
1091
+ }
1092
+ },
1093
+ {
1094
+ "name": "keyword.operator.command.separator.texinfo",
1095
+ "match": "(@)\\|",
1096
+ "captures": {
1097
+ "1": {
1098
+ "name": "punctuation.definition.function.texinfo"
1099
+ }
1100
+ }
1101
+ },
1102
+ {
1103
+ "include": "#param"
1104
+ },
1105
+ {
1106
+ "include": "#comma"
1107
+ },
1108
+ {
1109
+ "include": "#main"
1110
+ }
1111
+ ],
1112
+ "beginCaptures": {
1113
+ "1": {
1114
+ "name": "keyword.operator.command.$3.texinfo"
1115
+ },
1116
+ "2": {
1117
+ "name": "punctuation.definition.function.texinfo"
1118
+ }
1119
+ }
1120
+ },
1121
+ "main": {
1122
+ "patterns": [
1123
+ {
1124
+ "include": "#comments"
1125
+ },
1126
+ {
1127
+ "include": "#dashes"
1128
+ },
1129
+ {
1130
+ "include": "#texLine"
1131
+ },
1132
+ {
1133
+ "include": "#alias"
1134
+ },
1135
+ {
1136
+ "include": "#menu"
1137
+ },
1138
+ {
1139
+ "include": "#booleanCommands"
1140
+ },
1141
+ {
1142
+ "include": "#symbolCommands"
1143
+ },
1144
+ {
1145
+ "include": "#set"
1146
+ },
1147
+ {
1148
+ "include": "#definitions"
1149
+ },
1150
+ {
1151
+ "include": "#quotation"
1152
+ },
1153
+ {
1154
+ "include": "#boldText"
1155
+ },
1156
+ {
1157
+ "include": "#italicText"
1158
+ },
1159
+ {
1160
+ "include": "#verbatim"
1161
+ },
1162
+ {
1163
+ "include": "#codeBlocks"
1164
+ },
1165
+ {
1166
+ "include": "#conditionals"
1167
+ },
1168
+ {
1169
+ "include": "#blockCommands"
1170
+ },
1171
+ {
1172
+ "include": "#lineCommands"
1173
+ },
1174
+ {
1175
+ "include": "#ignored"
1176
+ },
1177
+ {
1178
+ "include": "#rawTex"
1179
+ },
1180
+ {
1181
+ "include": "#rawHTML"
1182
+ },
1183
+ {
1184
+ "include": "#rawXML"
1185
+ },
1186
+ {
1187
+ "include": "#command"
1188
+ }
1189
+ ]
1190
+ },
1191
+ "menu": {
1192
+ "name": "meta.command.$3.block.texinfo",
1193
+ "begin": "((@)(detailmenu|direntry|menu))(?=\\s|$)",
1194
+ "end": "((@)end\\s+\\3)\\b",
1195
+ "patterns": [
1196
+ {
1197
+ "name": "markup.list.texinfo",
1198
+ "begin": "^\\*\\s",
1199
+ "end": "^(?=\\S)",
1200
+ "patterns": [
1201
+ {
1202
+ "contentName": "entity.name.tag.entry-name.texinfo",
1203
+ "begin": "\\G",
1204
+ "end": "::?|(?=\\s*$)",
1205
+ "patterns": [
1206
+ {
1207
+ "include": "#main"
1208
+ }
1209
+ ],
1210
+ "endCaptures": {
1211
+ "0": {
1212
+ "name": "punctuation.separator.key-value.menu.texinfo"
1213
+ }
1214
+ }
1215
+ },
1216
+ {
1217
+ "contentName": "entity.name.node-name.texinfo",
1218
+ "begin": "(?\u003c=[^:]:)\\s*",
1219
+ "end": "(\\.)|(?=\\s*$)",
1220
+ "patterns": [
1221
+ {
1222
+ "include": "#main"
1223
+ }
1224
+ ],
1225
+ "endCaptures": {
1226
+ "1": {
1227
+ "name": "punctuation.terminator.full-stop.period.texinfo"
1228
+ }
1229
+ }
1230
+ },
1231
+ {
1232
+ "name": "string.unquoted.description.texinfo",
1233
+ "begin": "(?\u003c=::|\\.)",
1234
+ "end": "^(?=\\S)",
1235
+ "patterns": [
1236
+ {
1237
+ "include": "#main"
1238
+ }
1239
+ ]
1240
+ }
1241
+ ],
1242
+ "beginCaptures": {
1243
+ "0": {
1244
+ "name": "punctuation.definition.list.menu.texinfo"
1245
+ }
1246
+ }
1247
+ },
1248
+ {
1249
+ "name": "constant.other.menu-comment.texinfo",
1250
+ "begin": "^(?=[^\\s*])(?!@end\\s)",
1251
+ "end": "$|(?=\\s*@end\\s)",
1252
+ "patterns": [
1253
+ {
1254
+ "include": "#main"
1255
+ }
1256
+ ]
1257
+ },
1258
+ {
1259
+ "include": "#main"
1260
+ }
1261
+ ],
1262
+ "beginCaptures": {
1263
+ "1": {
1264
+ "name": "keyword.operator.command.$3.texinfo"
1265
+ },
1266
+ "2": {
1267
+ "name": "punctuation.definition.function.texinfo"
1268
+ }
1269
+ },
1270
+ "endCaptures": {
1271
+ "1": {
1272
+ "name": "keyword.operator.command.end-$3.texinfo"
1273
+ },
1274
+ "2": {
1275
+ "name": "punctuation.definition.function.texinfo"
1276
+ }
1277
+ }
1278
+ },
1279
+ "param": {
1280
+ "name": "variable.parameter.texinfo",
1281
+ "match": "[^\\s{}@,]+|(?\u003c=\\s)({)[^\\s{}@,]+(})",
1282
+ "captures": {
1283
+ "1": {
1284
+ "name": "punctuation.definition.begin.texinfo"
1285
+ },
1286
+ "2": {
1287
+ "name": "punctuation.definition.end.texinfo"
1288
+ }
1289
+ }
1290
+ },
1291
+ "quotation": {
1292
+ "name": "meta.command.$3.block.texinfo",
1293
+ "contentName": "markup.quote.texinfo",
1294
+ "begin": "((@)(quotation|smallquotation))(?=\\s|$)",
1295
+ "end": "((@)end\\s+\\3)\\b",
1296
+ "patterns": [
1297
+ {
1298
+ "include": "#main"
1299
+ }
1300
+ ],
1301
+ "beginCaptures": {
1302
+ "1": {
1303
+ "name": "keyword.operator.command.$3.texinfo"
1304
+ },
1305
+ "2": {
1306
+ "name": "punctuation.definition.function.texinfo"
1307
+ }
1308
+ },
1309
+ "endCaptures": {
1310
+ "1": {
1311
+ "name": "keyword.operator.command.end-$3.texinfo"
1312
+ },
1313
+ "2": {
1314
+ "name": "punctuation.definition.function.texinfo"
1315
+ }
1316
+ }
1317
+ },
1318
+ "rawHTML": {
1319
+ "name": "meta.command.raw-html.block.texinfo",
1320
+ "contentName": "source.embedded.html",
1321
+ "begin": "((@)html)(?=\\s|$)",
1322
+ "end": "((@)end\\s+html)\\b",
1323
+ "patterns": [
1324
+ {
1325
+ "include": "#main"
1326
+ },
1327
+ {
1328
+ "include": "text.html.basic"
1329
+ }
1330
+ ],
1331
+ "beginCaptures": {
1332
+ "1": {
1333
+ "name": "keyword.operator.command.html.texinfo"
1334
+ },
1335
+ "2": {
1336
+ "name": "punctuation.definition.function.texinfo"
1337
+ }
1338
+ },
1339
+ "endCaptures": {
1340
+ "1": {
1341
+ "name": "keyword.operator.command.end-html.texinfo"
1342
+ },
1343
+ "2": {
1344
+ "name": "punctuation.definition.function.texinfo"
1345
+ }
1346
+ }
1347
+ },
1348
+ "rawTex": {
1349
+ "name": "meta.command.raw-tex.block.texinfo",
1350
+ "contentName": "source.embedded.tex",
1351
+ "begin": "((@)tex)(?=\\s|$)",
1352
+ "end": "((@)end\\s+tex)\\b",
1353
+ "patterns": [
1354
+ {
1355
+ "include": "#main"
1356
+ },
1357
+ {
1358
+ "include": "text.tex.latex"
1359
+ }
1360
+ ],
1361
+ "beginCaptures": {
1362
+ "1": {
1363
+ "name": "keyword.operator.command.tex.texinfo"
1364
+ },
1365
+ "2": {
1366
+ "name": "punctuation.definition.function.texinfo"
1367
+ }
1368
+ },
1369
+ "endCaptures": {
1370
+ "1": {
1371
+ "name": "keyword.operator.command.end-tex.texinfo"
1372
+ },
1373
+ "2": {
1374
+ "name": "punctuation.definition.function.texinfo"
1375
+ }
1376
+ }
1377
+ },
1378
+ "rawXML": {
1379
+ "name": "meta.command.raw-$3.block.texinfo",
1380
+ "contentName": "source.embedded.xml",
1381
+ "begin": "((@)(docbook|xml))(?=\\s|$)",
1382
+ "end": "((@)end\\s+\\3)\\b",
1383
+ "patterns": [
1384
+ {
1385
+ "include": "#main"
1386
+ },
1387
+ {
1388
+ "include": "text.xml"
1389
+ }
1390
+ ],
1391
+ "beginCaptures": {
1392
+ "1": {
1393
+ "name": "keyword.operator.command.$3.texinfo"
1394
+ },
1395
+ "2": {
1396
+ "name": "punctuation.definition.function.texinfo"
1397
+ }
1398
+ },
1399
+ "endCaptures": {
1400
+ "1": {
1401
+ "name": "keyword.operator.command.end-$3.texinfo"
1402
+ },
1403
+ "2": {
1404
+ "name": "punctuation.definition.function.texinfo"
1405
+ }
1406
+ }
1407
+ },
1408
+ "set": {
1409
+ "begin": "((@)set)(?=\\s|$)",
1410
+ "end": "$",
1411
+ "patterns": [
1412
+ {
1413
+ "match": "\\G\\s*(\\S+)",
1414
+ "captures": {
1415
+ "1": {
1416
+ "name": "entity.name.var.texinfo",
1417
+ "patterns": [
1418
+ {
1419
+ "include": "#main"
1420
+ }
1421
+ ]
1422
+ }
1423
+ }
1424
+ },
1425
+ {
1426
+ "include": "#param"
1427
+ },
1428
+ {
1429
+ "include": "#main"
1430
+ }
1431
+ ],
1432
+ "beginCaptures": {
1433
+ "1": {
1434
+ "name": "keyword.operator.command.set.texinfo"
1435
+ },
1436
+ "2": {
1437
+ "name": "punctuation.definition.function.texinfo"
1438
+ }
1439
+ }
1440
+ },
1441
+ "symbolCommands": {
1442
+ "patterns": [
1443
+ {
1444
+ "name": "keyword.operator.command.non-alphabetic.texinfo",
1445
+ "match": "(@)[-!\"'\u0026*./:=?@\\\\^`{}~]",
1446
+ "captures": {
1447
+ "1": {
1448
+ "name": "punctuation.definition.function.texinfo"
1449
+ }
1450
+ }
1451
+ },
1452
+ {
1453
+ "name": "keyword.operator.command.whitespace.texinfo",
1454
+ "match": "(@)(?:( |\\t)|$)",
1455
+ "captures": {
1456
+ "1": {
1457
+ "name": "punctuation.definition.function.texinfo"
1458
+ }
1459
+ }
1460
+ },
1461
+ {
1462
+ "name": "meta.command.braced.texinfo",
1463
+ "begin": "((@),)({)",
1464
+ "end": "}",
1465
+ "patterns": [
1466
+ {
1467
+ "name": "constant.character.texinfo",
1468
+ "match": "[^\\s{}@,]+"
1469
+ },
1470
+ {
1471
+ "include": "#comma"
1472
+ },
1473
+ {
1474
+ "include": "#main"
1475
+ }
1476
+ ],
1477
+ "beginCaptures": {
1478
+ "1": {
1479
+ "name": "keyword.operator.command.cedilla-accent.texinfo"
1480
+ },
1481
+ "2": {
1482
+ "name": "punctuation.definition.function.texinfo"
1483
+ },
1484
+ "3": {
1485
+ "name": "punctuation.section.scope.begin.texinfo"
1486
+ }
1487
+ },
1488
+ "endCaptures": {
1489
+ "0": {
1490
+ "name": "punctuation.section.scope.end.texinfo"
1491
+ }
1492
+ }
1493
+ }
1494
+ ]
1495
+ },
1496
+ "verbatim": {
1497
+ "name": "meta.command.braced.verb.texinfo",
1498
+ "contentName": "string.quoted.other.verbatim.texinfo",
1499
+ "begin": "((@)verb)({)([^}])",
1500
+ "end": "(\\4)(})",
1501
+ "beginCaptures": {
1502
+ "1": {
1503
+ "name": "keyword.operator.command.verb.texinfo"
1504
+ },
1505
+ "2": {
1506
+ "name": "punctuation.definition.function.texinfo"
1507
+ },
1508
+ "3": {
1509
+ "name": "punctuation.section.scope.begin.texinfo"
1510
+ },
1511
+ "4": {
1512
+ "name": "punctuation.arbitrary.delimiter.begin.texinfo"
1513
+ }
1514
+ },
1515
+ "endCaptures": {
1516
+ "0": {
1517
+ "name": "punctuation.section.scope.end.texinfo"
1518
+ },
1519
+ "1": {
1520
+ "name": "punctuation.arbitrary.delimiter.end.texinfo"
1521
+ }
1522
+ }
1523
+ }
1524
+ }
1525
+ }