tm-grammars 1.24.20 → 1.24.21

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.
package/README.md CHANGED
@@ -76,7 +76,7 @@ import { grammars } from 'tm-grammars'
76
76
  | `erb` | | [textmate/ruby.tmbundle](https://github.com/textmate/ruby.tmbundle/blob/ecf0f1df23984bcff9b51552e35d9696cb0d9539/Syntaxes/HTML%20(Ruby%20-%20ERB).tmLanguage) | | | `html` `ruby` | 1.90 kB |
77
77
  | `erlang` | `erl` | [erlang-ls/grammar](https://github.com/erlang-ls/grammar/blob/fe898becd3004bcb4947ab50d6b6b830fbfb9228/Erlang.plist) | [Apache-2.0](https://raw.githubusercontent.com/erlang-ls/grammar/main/LICENSE) | | `markdown` | 35.64 kB |
78
78
  | `fennel` | | [kongeor/vsc-fennel](https://github.com/kongeor/vsc-fennel/blob/664148923d7bd72531120d0cba712c6dba6f698d/syntaxes/fennel.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/kongeor/vsc-fennel/master/LICENSE) | | | 4.53 kB |
79
- | `fish` | | [bmalehorn/vscode-fish](https://github.com/bmalehorn/vscode-fish/blob/ed05a12c8e8c20032065289874a207400b821e39/syntaxes/fish.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/bmalehorn/vscode-fish/master/LICENSE) | | | 4.29 kB |
79
+ | `fish` | | [bmalehorn/vscode-fish](https://github.com/bmalehorn/vscode-fish/blob/888213a73202e394bf9b80f09fb8b5c0f130d1b6/syntaxes/fish.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/bmalehorn/vscode-fish/master/LICENSE) | | | 6.00 kB |
80
80
  | `fluent` | `ftl` | [macabeus/vscode-fluent](https://github.com/macabeus/vscode-fluent/blob/8544ea296a7769a359f43ddff4dc4b6c61f5cf59/syntaxes/fluent.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/macabeus/vscode-fluent/master/LICENSE) | | | 3.38 kB |
81
81
  | `fortran-fixed-form` | `f` `for` `f77` | [fortran-lang/vscode-fortran-support](https://github.com/fortran-lang/vscode-fortran-support/blob/e642012094fc0a7379f204bb4e61243005afb1da/syntaxes/fortran_fixed-form.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/fortran-lang/vscode-fortran-support/main/LICENSE) | | `fortran-free-form` | 903.00 B |
82
82
  | `fortran-free-form` | `f90` `f95` `f03` `f08` `f18` | [fortran-lang/vscode-fortran-support](https://github.com/fortran-lang/vscode-fortran-support/blob/f7fb41579770a0d8c75b9f295d167b31147b4f33/syntaxes/fortran_free-form.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/fortran-lang/vscode-fortran-support/main/LICENSE) | | | 82.16 kB |
@@ -1,14 +1,199 @@
1
1
  {
2
2
  "displayName": "Fish",
3
- "fileTypes": [
4
- "fish"
5
- ],
6
- "firstLineMatch": "^#!.*\\bfish\\b",
7
- "foldingStartMarker": "^\\s*(function|while|if|switch|for|begin)\\s.*$",
8
- "foldingStopMarker": "^\\s*end\\s*$",
9
3
  "name": "fish",
10
4
  "patterns": [
11
5
  {
6
+ "include": "#string-double"
7
+ },
8
+ {
9
+ "include": "#string-single"
10
+ },
11
+ {
12
+ "include": "#comment"
13
+ },
14
+ {
15
+ "include": "#command"
16
+ },
17
+ {
18
+ "include": "#keywords"
19
+ },
20
+ {
21
+ "include": "#io-redirection"
22
+ },
23
+ {
24
+ "include": "#operators"
25
+ },
26
+ {
27
+ "include": "#options"
28
+ },
29
+ {
30
+ "include": "#subshell"
31
+ },
32
+ {
33
+ "include": "#variable"
34
+ },
35
+ {
36
+ "include": "#escape"
37
+ }
38
+ ],
39
+ "repository": {
40
+ "command": {
41
+ "captures": {
42
+ "2": {
43
+ "name": "keyword.operator.pipe.fish"
44
+ },
45
+ "3": {
46
+ "name": "keyword.control.fish"
47
+ },
48
+ "5": {
49
+ "name": "support.function.command.fish"
50
+ }
51
+ },
52
+ "match": "(^\\s*|&&\\s*|(\\|)\\s*|\\(\\s*|;\\s*|\\b(if|while)\\b\\s+)(?!(?<!\\.)\\b(function|while|if|else|switch|case|for|in|begin|end|continue|break|return|source|exit|wait|and|or|not)\\b(?![!?]))([-\\].0-9A-\\[_a-z]+)"
53
+ },
54
+ "command-subshell": {
55
+ "captures": {
56
+ "2": {
57
+ "name": "keyword.operator.pipe.fish"
58
+ },
59
+ "3": {
60
+ "name": "keyword.control.fish"
61
+ },
62
+ "5": {
63
+ "name": "support.function.command.fish"
64
+ }
65
+ },
66
+ "match": "(\\G\\s*|&&\\s*|(\\|)\\s*|\\(\\s*|;\\s*|\\b(if|while)\\b\\s+)(?!(?<!\\.)\\b(function|while|if|else|switch|case|for|in|begin|end|continue|break|return|source|exit|wait|and|or|not)\\b(?![!?]))([-\\].0-9A-\\[_a-z]+)"
67
+ },
68
+ "comment": {
69
+ "captures": {
70
+ "1": {
71
+ "name": "punctuation.definition.comment.fish"
72
+ }
73
+ },
74
+ "match": "(?<!\\$)(#)(?!\\{).*$\\n?",
75
+ "name": "comment.line.number-sign.fish"
76
+ },
77
+ "escape": {
78
+ "patterns": [
79
+ {
80
+ "match": "\\\\[] \"#$\\&-*;<>?\\[^abefnrtv{-~]",
81
+ "name": "constant.character.escape.single.fish"
82
+ },
83
+ {
84
+ "match": "\\\\x\\h{1,2}",
85
+ "name": "constant.character.escape.hex-ascii.fish"
86
+ },
87
+ {
88
+ "match": "\\\\X\\h{1,2}",
89
+ "name": "constant.character.escape.hex-byte.fish"
90
+ },
91
+ {
92
+ "match": "\\\\[0-7]{1,3}",
93
+ "name": "constant.character.escape.octal.fish"
94
+ },
95
+ {
96
+ "match": "\\\\u\\h{1,4}",
97
+ "name": "constant.character.escape.unicode-16-bit.fish"
98
+ },
99
+ {
100
+ "match": "\\\\U\\h{1,8}",
101
+ "name": "constant.character.escape.unicode-32-bit.fish"
102
+ },
103
+ {
104
+ "match": "\\\\c[A-Za-z]",
105
+ "name": "constant.character.escape.control.fish"
106
+ }
107
+ ]
108
+ },
109
+ "io-redirection": {
110
+ "patterns": [
111
+ {
112
+ "captures": {
113
+ "1": {
114
+ "name": "keyword.operator.redirect.fish"
115
+ },
116
+ "2": {
117
+ "name": "keyword.operator.redirect.target.fish"
118
+ }
119
+ },
120
+ "match": "(<|(?:[>^]|>>|\\^\\^)(?:&[-012])?|[012](?:[<>]|>>)(?:&[-012])?)\\s*(?!\\()([\\--9A-Z_a-z]+)"
121
+ },
122
+ {
123
+ "match": "<|([>^]|>>|\\^\\^)(&[-012])?|[012]([<>]|>>)(&[-012])?",
124
+ "name": "keyword.operator.redirect.fish"
125
+ }
126
+ ]
127
+ },
128
+ "keywords": {
129
+ "patterns": [
130
+ {
131
+ "captures": {
132
+ "2": {
133
+ "name": "keyword.control.fish"
134
+ }
135
+ },
136
+ "match": "(^\\s*|&&\\s*|(?<=\\|)\\s*|\\(\\s*|;\\s*|(?<=\\bwhile\\b)\\s+|(?<=\\bif\\b)\\s+|(?<=\\band\\b)\\s+|(?<=\\bor\\b)\\s+|(?<=\\bnot\\b)\\s+)(?<!\\.)\\b(while|if|and|or|not)\\b(?![!?])"
137
+ },
138
+ {
139
+ "captures": {
140
+ "2": {
141
+ "name": "keyword.control.fish"
142
+ }
143
+ },
144
+ "match": "(^\\s*|&&\\s*|(?<=\\|)\\s*|\\(\\s*|;\\s*)(?<!\\.)\\b(function|else|switch|case|for|begin|end|continue|break|return|source|exit|wait)\\b(?![!?])"
145
+ },
146
+ {
147
+ "match": "\\b(in)\\b(?![!?])",
148
+ "name": "keyword.control.fish"
149
+ }
150
+ ]
151
+ },
152
+ "keywords-subshell": {
153
+ "patterns": [
154
+ {
155
+ "captures": {
156
+ "2": {
157
+ "name": "keyword.control.fish"
158
+ }
159
+ },
160
+ "match": "(\\G\\s*|&&\\s*|(?<=\\|)\\s*|\\(\\s*|;\\s*|(?<=\\bwhile\\b)\\s+|(?<=\\bif\\b)\\s+|(?<=\\band\\b)\\s+|(?<=\\bor\\b)\\s+|(?<=\\bnot\\b)\\s+)(?<!\\.)\\b(while|if|and|or|not)\\b(?![!?])"
161
+ },
162
+ {
163
+ "captures": {
164
+ "2": {
165
+ "name": "keyword.control.fish"
166
+ }
167
+ },
168
+ "match": "(\\G\\s*|&&\\s*|(?<=\\|)\\s*|\\(\\s*|;\\s*)(?<!\\.)\\b(function|else|switch|case|for|begin|end|continue|break|return|source|exit|wait)\\b(?![!?])"
169
+ },
170
+ {
171
+ "match": "\\b(in)\\b(?![!?])",
172
+ "name": "keyword.control.fish"
173
+ }
174
+ ]
175
+ },
176
+ "operators": {
177
+ "patterns": [
178
+ {
179
+ "match": "&",
180
+ "name": "keyword.operator.background.fish"
181
+ },
182
+ {
183
+ "match": "\\*\\*|[*?]",
184
+ "name": "keyword.operator.glob.fish"
185
+ }
186
+ ]
187
+ },
188
+ "options": {
189
+ "captures": {
190
+ "1": {
191
+ "name": "source.option.fish"
192
+ }
193
+ },
194
+ "match": "\\s(-{1,2}[-0-9A-Z_a-z]+|-\\w)\\b"
195
+ },
196
+ "string-double": {
12
197
  "begin": "\"",
13
198
  "beginCaptures": {
14
199
  "0": {
@@ -23,6 +208,9 @@
23
208
  },
24
209
  "name": "string.quoted.double.fish",
25
210
  "patterns": [
211
+ {
212
+ "include": "#subshell"
213
+ },
26
214
  {
27
215
  "include": "#variable"
28
216
  },
@@ -32,7 +220,7 @@
32
220
  }
33
221
  ]
34
222
  },
35
- {
223
+ "string-single": {
36
224
  "begin": "'",
37
225
  "beginCaptures": {
38
226
  "0": {
@@ -53,117 +241,53 @@
53
241
  }
54
242
  ]
55
243
  },
56
- {
57
- "captures": {
58
- "1": {
59
- "name": "punctuation.definition.comment.fish"
60
- }
61
- },
62
- "match": "(?<!\\$)(#)(?!\\{).*$\\n?",
63
- "name": "comment.line.number-sign.fish"
64
- },
65
- {
66
- "captures": {
67
- "2": {
68
- "name": "keyword.operator.pipe.fish"
69
- },
70
- "3": {
71
- "name": "keyword.control.fish"
72
- },
73
- "5": {
74
- "name": "support.function.command.fish"
75
- }
76
- },
77
- "match": "(^\\s*|&&\\s*|(\\|)\\s*|\\(\\s*|;\\s*|\\b(if|while)\\b\\s+)(?!(?<!\\.)\\b(function|while|if|else|switch|case|for|in|begin|end|continue|break|return|source|exit|wait|and|or|not)\\b(?![!?]))([-\\].0-9A-\\[_a-z]+)"
78
- },
79
- {
80
- "captures": {
81
- "2": {
82
- "name": "keyword.control.fish"
83
- }
84
- },
85
- "match": "(^\\s*|&&\\s*|(?<=\\|)\\s*|\\(\\s*|;\\s*|(?<=\\b(?:while|if|and|or|not)\\b)\\s+)(?<!\\.)\\b(while|if|and|or|not)\\b(?![!?])"
86
- },
87
- {
88
- "captures": {
89
- "2": {
90
- "name": "keyword.control.fish"
91
- }
92
- },
93
- "match": "(^\\s*|&&\\s*|(?<=\\|)\\s*|\\(\\s*|;\\s*)(?<!\\.)\\b(function|else|switch|case|for|begin|end|continue|break|return|source|exit|wait)\\b(?![!?])"
94
- },
95
- {
96
- "match": "\\b(in)\\b(?![!?])",
97
- "name": "keyword.control.fish"
98
- },
99
- {
100
- "captures": {
101
- "1": {
102
- "name": "keyword.operator.redirect.fish"
103
- },
104
- "2": {
105
- "name": "keyword.operator.redirect.target.fish"
244
+ "subshell": {
245
+ "begin": "\\$\\(",
246
+ "beginCaptures": {
247
+ "0": {
248
+ "name": "punctuation.definition.subshell.begin.fish"
106
249
  }
107
250
  },
108
- "match": "(<|(?:[>^]|>>|\\^\\^)(?:&[-012])?|[012](?:[<>]|>>)(?:&[-012])?)\\s*(?!\\()([\\--9A-Z_a-z]+)"
109
- },
110
- {
111
- "match": "<|([>^]|>>|\\^\\^)(&[-012])?|[012]([<>]|>>)(&[-012])?",
112
- "name": "keyword.operator.redirect.fish"
113
- },
114
- {
115
- "match": "&",
116
- "name": "keyword.operator.background.fish"
117
- },
118
- {
119
- "match": "\\*\\*|[*?]",
120
- "name": "keyword.operator.glob.fish"
121
- },
122
- {
123
- "captures": {
124
- "1": {
125
- "name": "source.option.fish"
251
+ "end": "\\)",
252
+ "endCaptures": {
253
+ "0": {
254
+ "name": "punctuation.definition.subshell.end.fish"
126
255
  }
127
256
  },
128
- "match": "\\s(-{1,2}[-0-9A-Z_a-z]+|-\\w)\\b"
129
- },
130
- {
131
- "include": "#variable"
132
- },
133
- {
134
- "include": "#escape"
135
- }
136
- ],
137
- "repository": {
138
- "escape": {
257
+ "name": "meta.embedded.subshell.fish",
139
258
  "patterns": [
140
259
  {
141
- "match": "\\\\[] \"#$\\&-*;<>?\\[^abefnrtv{-~]",
142
- "name": "constant.character.escape.single.fish"
260
+ "include": "#string-double"
143
261
  },
144
262
  {
145
- "match": "\\\\x\\h{1,2}",
146
- "name": "constant.character.escape.hex-ascii.fish"
263
+ "include": "#string-single"
147
264
  },
148
265
  {
149
- "match": "\\\\X\\h{1,2}",
150
- "name": "constant.character.escape.hex-byte.fish"
266
+ "include": "#comment"
151
267
  },
152
268
  {
153
- "match": "\\\\[0-7]{1,3}",
154
- "name": "constant.character.escape.octal.fish"
269
+ "include": "#keywords-subshell"
155
270
  },
156
271
  {
157
- "match": "\\\\u\\h{1,4}",
158
- "name": "constant.character.escape.unicode-16-bit.fish"
272
+ "include": "#command-subshell"
159
273
  },
160
274
  {
161
- "match": "\\\\U\\h{1,8}",
162
- "name": "constant.character.escape.unicode-32-bit.fish"
275
+ "include": "#io-redirection"
163
276
  },
164
277
  {
165
- "match": "\\\\c[A-Za-z]",
166
- "name": "constant.character.escape.control.fish"
278
+ "include": "#operators"
279
+ },
280
+ {
281
+ "include": "#options"
282
+ },
283
+ {
284
+ "include": "#subshell"
285
+ },
286
+ {
287
+ "include": "#variable"
288
+ },
289
+ {
290
+ "include": "#escape"
167
291
  }
168
292
  ]
169
293
  },
package/index.js CHANGED
@@ -1167,22 +1167,22 @@ export const grammars = [
1167
1167
  sourceApi: 'https://api.github.com/repos/kongeor/vsc-fennel/contents/syntaxes/fennel.tmLanguage.json?ref=664148923d7bd72531120d0cba712c6dba6f698d',
1168
1168
  },
1169
1169
  {
1170
- byteSize: 4392,
1170
+ byteSize: 6146,
1171
1171
  categories: [
1172
1172
  'scripting',
1173
1173
  ],
1174
1174
  displayName: 'Fish',
1175
1175
  funding: [
1176
1176
  ],
1177
- hash: '9l_sh378VaFTOMqPaKteQOiYAn_Y0tDgPDhGHNYV0Zg',
1178
- lastUpdate: '2025-10-12T22:59:28Z',
1177
+ hash: 'gLC6DZLi_rN4pBKvSyp1CBSC1rO1UB6pErRskqXsydo',
1178
+ lastUpdate: '2025-10-13T05:02:18Z',
1179
1179
  license: 'MIT',
1180
1180
  licenseUrl: 'https://raw.githubusercontent.com/bmalehorn/vscode-fish/master/LICENSE',
1181
1181
  name: 'fish',
1182
1182
  scopeName: 'source.fish',
1183
- sha: 'ed05a12c8e8c20032065289874a207400b821e39',
1184
- source: 'https://github.com/bmalehorn/vscode-fish/blob/ed05a12c8e8c20032065289874a207400b821e39/syntaxes/fish.tmLanguage.json',
1185
- sourceApi: 'https://api.github.com/repos/bmalehorn/vscode-fish/contents/syntaxes/fish.tmLanguage.json?ref=ed05a12c8e8c20032065289874a207400b821e39',
1183
+ sha: '888213a73202e394bf9b80f09fb8b5c0f130d1b6',
1184
+ source: 'https://github.com/bmalehorn/vscode-fish/blob/888213a73202e394bf9b80f09fb8b5c0f130d1b6/syntaxes/fish.tmLanguage.json',
1185
+ sourceApi: 'https://api.github.com/repos/bmalehorn/vscode-fish/contents/syntaxes/fish.tmLanguage.json?ref=888213a73202e394bf9b80f09fb8b5c0f130d1b6',
1186
1186
  },
1187
1187
  {
1188
1188
  aliases: [
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tm-grammars",
3
3
  "type": "module",
4
- "version": "1.24.20",
4
+ "version": "1.24.21",
5
5
  "description": "Collecton of TextMate grammars in JSON",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",