round-core 0.0.7 → 0.0.8

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.
Files changed (75) hide show
  1. package/README.md +21 -0
  2. package/dist/index.d.ts +341 -341
  3. package/dist/vite-plugin.js +52 -3
  4. package/package.json +7 -3
  5. package/.github/workflows/benchmarks.yml +0 -44
  6. package/Round.png +0 -0
  7. package/benchmarks/apps/react/index.html +0 -9
  8. package/benchmarks/apps/react/main.jsx +0 -25
  9. package/benchmarks/apps/react/vite.config.js +0 -12
  10. package/benchmarks/apps/round/index.html +0 -11
  11. package/benchmarks/apps/round/main.jsx +0 -22
  12. package/benchmarks/apps/round/vite.config.js +0 -15
  13. package/benchmarks/bun.lock +0 -497
  14. package/benchmarks/dist-bench/react/assets/index-9KGqIPOU.js +0 -8
  15. package/benchmarks/dist-bench/react/index.html +0 -10
  16. package/benchmarks/dist-bench/round/assets/index-CBBIRhox.js +0 -52
  17. package/benchmarks/dist-bench/round/index.html +0 -8
  18. package/benchmarks/package.json +0 -22
  19. package/benchmarks/scripts/measure-build.js +0 -64
  20. package/benchmarks/tests/runtime.bench.js +0 -51
  21. package/benchmarks/vitest.config.js +0 -8
  22. package/bun.lock +0 -425
  23. package/cli.js +0 -2
  24. package/extension/.vscodeignore +0 -5
  25. package/extension/LICENSE +0 -21
  26. package/extension/cgmanifest.json +0 -45
  27. package/extension/extension.js +0 -163
  28. package/extension/images/round-config-dark.svg +0 -10
  29. package/extension/images/round-config-light.svg +0 -10
  30. package/extension/images/round-dark.svg +0 -10
  31. package/extension/images/round-light.svg +0 -10
  32. package/extension/javascript-language-configuration.json +0 -241
  33. package/extension/package-lock.json +0 -97
  34. package/extension/package.json +0 -119
  35. package/extension/package.nls.json +0 -4
  36. package/extension/round-0.1.0.vsix +0 -0
  37. package/extension/round-lsp/package-lock.json +0 -185
  38. package/extension/round-lsp/package.json +0 -21
  39. package/extension/round-lsp/src/round-transformer-lsp.js +0 -248
  40. package/extension/round-lsp/src/server.js +0 -396
  41. package/extension/snippets/javascript.code-snippets +0 -266
  42. package/extension/snippets/round.code-snippets +0 -109
  43. package/extension/syntaxes/JavaScript.tmLanguage.json +0 -6001
  44. package/extension/syntaxes/JavaScriptReact.tmLanguage.json +0 -6066
  45. package/extension/syntaxes/Readme.md +0 -12
  46. package/extension/syntaxes/Regular Expressions (JavaScript).tmLanguage +0 -237
  47. package/extension/syntaxes/Round.tmLanguage.json +0 -290
  48. package/extension/syntaxes/RoundInject.tmLanguage.json +0 -20
  49. package/extension/tags-language-configuration.json +0 -152
  50. package/extension/temp_astro/package-lock.json +0 -912
  51. package/extension/temp_astro/package.json +0 -16
  52. package/extension/types/round-core.d.ts +0 -326
  53. package/index.js +0 -2
  54. package/logo.svg +0 -10
  55. package/src/cli.js +0 -608
  56. package/src/compiler/index.js +0 -2
  57. package/src/compiler/transformer.js +0 -443
  58. package/src/compiler/vite-plugin.js +0 -472
  59. package/src/index.d.ts +0 -341
  60. package/src/index.js +0 -45
  61. package/src/runtime/context.js +0 -101
  62. package/src/runtime/dom.js +0 -403
  63. package/src/runtime/error-boundary.js +0 -48
  64. package/src/runtime/error-reporter.js +0 -13
  65. package/src/runtime/error-store.js +0 -85
  66. package/src/runtime/errors.js +0 -152
  67. package/src/runtime/lifecycle.js +0 -142
  68. package/src/runtime/markdown.js +0 -72
  69. package/src/runtime/router.js +0 -468
  70. package/src/runtime/signals.js +0 -548
  71. package/src/runtime/store.js +0 -215
  72. package/src/runtime/suspense.js +0 -128
  73. package/vite.config.build.js +0 -48
  74. package/vite.config.js +0 -10
  75. package/vitest.config.js +0 -8
@@ -1,12 +0,0 @@
1
- The file `JavaScript.tmLanguage.json` is derived from [TypeScriptReact.tmLanguage](https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage).
2
-
3
- To update to the latest version:
4
-
5
- - `cd extensions/typescript-basics` and run `npm run update-grammars`
6
- - don't forget to run the integration tests at `./scripts/test-integration.sh`
7
-
8
- The script does the following changes:
9
-
10
- - fileTypes .tsx -> .js & .jsx
11
- - scopeName scope.tsx -> scope.js
12
- - update all rule names .tsx -> .js
@@ -1,237 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>fileTypes</key>
6
- <array/>
7
- <key>hideFromUser</key>
8
- <true/>
9
- <key>name</key>
10
- <string>Regular Expressions (JavaScript)</string>
11
- <key>patterns</key>
12
- <array>
13
- <dict>
14
- <key>include</key>
15
- <string>#regexp</string>
16
- </dict>
17
- </array>
18
- <key>repository</key>
19
- <dict>
20
- <key>regex-character-class</key>
21
- <dict>
22
- <key>patterns</key>
23
- <array>
24
- <dict>
25
- <key>match</key>
26
- <string>\\[wWsSdD]|\.</string>
27
- <key>name</key>
28
- <string>constant.character.character-class.regexp</string>
29
- </dict>
30
- <dict>
31
- <key>match</key>
32
- <string>\\([0-7]{3}|x\h\h|u\h\h\h\h)</string>
33
- <key>name</key>
34
- <string>constant.character.numeric.regexp</string>
35
- </dict>
36
- <dict>
37
- <key>match</key>
38
- <string>\\c[A-Z]</string>
39
- <key>name</key>
40
- <string>constant.character.control.regexp</string>
41
- </dict>
42
- <dict>
43
- <key>match</key>
44
- <string>\\.</string>
45
- <key>name</key>
46
- <string>constant.character.escape.backslash.regexp</string>
47
- </dict>
48
- </array>
49
- </dict>
50
- <key>regexp</key>
51
- <dict>
52
- <key>patterns</key>
53
- <array>
54
- <dict>
55
- <key>match</key>
56
- <string>\\[bB]|\^|\$</string>
57
- <key>name</key>
58
- <string>keyword.control.anchor.regexp</string>
59
- </dict>
60
- <dict>
61
- <key>match</key>
62
- <string>\\[1-9]\d*</string>
63
- <key>name</key>
64
- <string>keyword.other.back-reference.regexp</string>
65
- </dict>
66
- <dict>
67
- <key>match</key>
68
- <string>[?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\??</string>
69
- <key>name</key>
70
- <string>keyword.operator.quantifier.regexp</string>
71
- </dict>
72
- <dict>
73
- <key>match</key>
74
- <string>\|</string>
75
- <key>name</key>
76
- <string>keyword.operator.or.regexp</string>
77
- </dict>
78
- <dict>
79
- <key>begin</key>
80
- <string>(\()((\?=)|(\?!))</string>
81
- <key>beginCaptures</key>
82
- <dict>
83
- <key>1</key>
84
- <dict>
85
- <key>name</key>
86
- <string>punctuation.definition.group.regexp</string>
87
- </dict>
88
- <key>3</key>
89
- <dict>
90
- <key>name</key>
91
- <string>meta.assertion.look-ahead.regexp</string>
92
- </dict>
93
- <key>4</key>
94
- <dict>
95
- <key>name</key>
96
- <string>meta.assertion.negative-look-ahead.regexp</string>
97
- </dict>
98
- </dict>
99
- <key>end</key>
100
- <string>(\))</string>
101
- <key>endCaptures</key>
102
- <dict>
103
- <key>1</key>
104
- <dict>
105
- <key>name</key>
106
- <string>punctuation.definition.group.regexp</string>
107
- </dict>
108
- </dict>
109
- <key>name</key>
110
- <string>meta.group.assertion.regexp</string>
111
- <key>patterns</key>
112
- <array>
113
- <dict>
114
- <key>include</key>
115
- <string>#regexp</string>
116
- </dict>
117
- </array>
118
- </dict>
119
- <dict>
120
- <key>begin</key>
121
- <string>\((\?:)?</string>
122
- <key>beginCaptures</key>
123
- <dict>
124
- <key>0</key>
125
- <dict>
126
- <key>name</key>
127
- <string>punctuation.definition.group.regexp</string>
128
- </dict>
129
- </dict>
130
- <key>end</key>
131
- <string>\)</string>
132
- <key>endCaptures</key>
133
- <dict>
134
- <key>0</key>
135
- <dict>
136
- <key>name</key>
137
- <string>punctuation.definition.group.regexp</string>
138
- </dict>
139
- </dict>
140
- <key>name</key>
141
- <string>meta.group.regexp</string>
142
- <key>patterns</key>
143
- <array>
144
- <dict>
145
- <key>include</key>
146
- <string>#regexp</string>
147
- </dict>
148
- </array>
149
- </dict>
150
- <dict>
151
- <key>begin</key>
152
- <string>(\[)(\^)?</string>
153
- <key>beginCaptures</key>
154
- <dict>
155
- <key>1</key>
156
- <dict>
157
- <key>name</key>
158
- <string>punctuation.definition.character-class.regexp</string>
159
- </dict>
160
- <key>2</key>
161
- <dict>
162
- <key>name</key>
163
- <string>keyword.operator.negation.regexp</string>
164
- </dict>
165
- </dict>
166
- <key>end</key>
167
- <string>(\])</string>
168
- <key>endCaptures</key>
169
- <dict>
170
- <key>1</key>
171
- <dict>
172
- <key>name</key>
173
- <string>punctuation.definition.character-class.regexp</string>
174
- </dict>
175
- </dict>
176
- <key>name</key>
177
- <string>constant.other.character-class.set.regexp</string>
178
- <key>patterns</key>
179
- <array>
180
- <dict>
181
- <key>captures</key>
182
- <dict>
183
- <key>1</key>
184
- <dict>
185
- <key>name</key>
186
- <string>constant.character.numeric.regexp</string>
187
- </dict>
188
- <key>2</key>
189
- <dict>
190
- <key>name</key>
191
- <string>constant.character.control.regexp</string>
192
- </dict>
193
- <key>3</key>
194
- <dict>
195
- <key>name</key>
196
- <string>constant.character.escape.backslash.regexp</string>
197
- </dict>
198
- <key>4</key>
199
- <dict>
200
- <key>name</key>
201
- <string>constant.character.numeric.regexp</string>
202
- </dict>
203
- <key>5</key>
204
- <dict>
205
- <key>name</key>
206
- <string>constant.character.control.regexp</string>
207
- </dict>
208
- <key>6</key>
209
- <dict>
210
- <key>name</key>
211
- <string>constant.character.escape.backslash.regexp</string>
212
- </dict>
213
- </dict>
214
- <key>match</key>
215
- <string>(?:.|(\\(?:[0-7]{3}|x\h\h|u\h\h\h\h))|(\\c[A-Z])|(\\.))\-(?:[^\]\\]|(\\(?:[0-7]{3}|x\h\h|u\h\h\h\h))|(\\c[A-Z])|(\\.))</string>
216
- <key>name</key>
217
- <string>constant.other.character-class.range.regexp</string>
218
- </dict>
219
- <dict>
220
- <key>include</key>
221
- <string>#regex-character-class</string>
222
- </dict>
223
- </array>
224
- </dict>
225
- <dict>
226
- <key>include</key>
227
- <string>#regex-character-class</string>
228
- </dict>
229
- </array>
230
- </dict>
231
- </dict>
232
- <key>scopeName</key>
233
- <string>source.js.regexp</string>
234
- <key>uuid</key>
235
- <string>AC8679DE-3AC7-4056-84F9-69A7ADC29DDD</string>
236
- </dict>
237
- </plist>
@@ -1,290 +0,0 @@
1
- {
2
- "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
3
- "name": "Round",
4
- "scopeName": "source.round",
5
- "patterns": [
6
- {
7
- "include": "#bind-attribute"
8
- },
9
- {
10
- "include": "#control-flow"
11
- },
12
- {
13
- "include": "#core-components"
14
- },
15
- {
16
- "include": "source.js.jsx"
17
- }
18
- ],
19
- "repository": {
20
- "bind-attribute": {
21
- "name": "entity.other.attribute-name.round.bind",
22
- "match": "\\bbind:[A-Za-z_$][\\w$]*\\b"
23
- },
24
- "core-components": {
25
- "name": "entity.name.type.round",
26
- "match": "\\b(Route|Suspense|Markdown|ErrorBoundary|Fragment|Page|Link|NotFound)\\b"
27
- },
28
- "control-flow": {
29
- "patterns": [
30
- {
31
- "include": "#if-block"
32
- },
33
- {
34
- "include": "#for-block"
35
- }
36
- ]
37
- },
38
- "if-block": {
39
- "name": "meta.round.controlflow.if",
40
- "begin": "(\\{)\\s*(if)",
41
- "beginCaptures": {
42
- "1": {
43
- "name": "punctuation.section.embedded.begin.round"
44
- },
45
- "2": {
46
- "name": "keyword.control.round"
47
- }
48
- },
49
- "end": "(\\})\\s*(\\})",
50
- "endCaptures": {
51
- "1": {
52
- "name": "punctuation.section.block.end.round"
53
- },
54
- "2": {
55
- "name": "punctuation.section.embedded.end.round"
56
- }
57
- },
58
- "patterns": [
59
- {
60
- "include": "#condition-header"
61
- },
62
- {
63
- "include": "#elseif-branch"
64
- },
65
- {
66
- "include": "#else-branch"
67
- },
68
- {
69
- "include": "#control-flow"
70
- },
71
- {
72
- "include": "#round-jsx"
73
- },
74
- {
75
- "include": "source.js.jsx"
76
- }
77
- ]
78
- },
79
- "for-block": {
80
- "name": "meta.round.controlflow.for",
81
- "begin": "(\\{)\\s*(for)",
82
- "beginCaptures": {
83
- "1": {
84
- "name": "punctuation.section.embedded.begin.round"
85
- },
86
- "2": {
87
- "name": "keyword.control.round"
88
- }
89
- },
90
- "end": "(\\})\\s*(\\})",
91
- "endCaptures": {
92
- "1": {
93
- "name": "punctuation.section.block.end.round"
94
- },
95
- "2": {
96
- "name": "punctuation.section.embedded.end.round"
97
- }
98
- },
99
- "patterns": [
100
- {
101
- "begin": "(\\()",
102
- "beginCaptures": {
103
- "1": {
104
- "name": "punctuation.definition.parameters.begin.round"
105
- }
106
- },
107
- "end": "(\\))\\s*(\\{)",
108
- "endCaptures": {
109
- "1": {
110
- "name": "punctuation.definition.parameters.end.round"
111
- },
112
- "2": {
113
- "name": "punctuation.section.block.begin.round"
114
- }
115
- },
116
- "patterns": [
117
- {
118
- "match": "\\b(in|of)\\b",
119
- "name": "keyword.control.round"
120
- },
121
- {
122
- "include": "source.js.jsx"
123
- }
124
- ]
125
- },
126
- {
127
- "include": "#control-flow"
128
- },
129
- {
130
- "include": "#round-jsx"
131
- },
132
- {
133
- "include": "source.js.jsx"
134
- }
135
- ]
136
- },
137
- "condition-header": {
138
- "begin": "(\\()",
139
- "beginCaptures": {
140
- "1": {
141
- "name": "punctuation.definition.parameters.begin.round"
142
- }
143
- },
144
- "end": "(\\))\\s*(\\{)",
145
- "endCaptures": {
146
- "1": {
147
- "name": "punctuation.definition.parameters.end.round"
148
- },
149
- "2": {
150
- "name": "punctuation.section.block.begin.round"
151
- }
152
- },
153
- "patterns": [
154
- {
155
- "include": "source.js.jsx"
156
- }
157
- ]
158
- },
159
- "elseif-branch": {
160
- "name": "meta.round.controlflow.elseif",
161
- "begin": "(\\})\\s*(else\\s+if)",
162
- "beginCaptures": {
163
- "1": {
164
- "name": "punctuation.section.block.end.round"
165
- },
166
- "2": {
167
- "name": "keyword.control.round"
168
- }
169
- },
170
- "end": "(\\{)",
171
- "endCaptures": {
172
- "1": {
173
- "name": "punctuation.section.block.begin.round"
174
- }
175
- },
176
- "patterns": [
177
- {
178
- "begin": "(\\()",
179
- "beginCaptures": {
180
- "1": {
181
- "name": "punctuation.definition.parameters.begin.round"
182
- }
183
- },
184
- "end": "(\\))",
185
- "endCaptures": {
186
- "1": {
187
- "name": "punctuation.definition.parameters.end.round"
188
- }
189
- },
190
- "patterns": [
191
- {
192
- "include": "source.js.jsx"
193
- }
194
- ]
195
- }
196
- ]
197
- },
198
- "else-branch": {
199
- "name": "meta.round.controlflow.else",
200
- "match": "(\\})\\s*(else)\\s*(\\{)",
201
- "captures": {
202
- "1": {
203
- "name": "punctuation.section.block.end.round"
204
- },
205
- "2": {
206
- "name": "keyword.control.round"
207
- },
208
- "3": {
209
- "name": "punctuation.section.block.begin.round"
210
- }
211
- }
212
- },
213
- "round-jsx": {
214
- "patterns": [
215
- {
216
- "name": "meta.tag.jsx",
217
- "begin": "(<)(/)?([A-Za-z_$][\\w$\\.-]*)",
218
- "beginCaptures": {
219
- "1": {
220
- "name": "punctuation.definition.tag.begin.jsx"
221
- },
222
- "2": {
223
- "name": "punctuation.definition.tag.begin.jsx"
224
- },
225
- "3": {
226
- "name": "entity.name.tag.jsx"
227
- }
228
- },
229
- "end": "(/?>)",
230
- "endCaptures": {
231
- "1": {
232
- "name": "punctuation.definition.tag.end.jsx"
233
- }
234
- },
235
- "patterns": [
236
- {
237
- "include": "#bind-attribute"
238
- },
239
- {
240
- "name": "entity.other.attribute-name.jsx",
241
- "match": "\\b[A-Za-z_$][\\w$:-]*\\b(?=\\s*=)"
242
- },
243
- {
244
- "name": "keyword.operator.assignment.jsx",
245
- "match": "="
246
- },
247
- {
248
- "name": "string.quoted.double.jsx",
249
- "begin": "\"",
250
- "end": "\""
251
- },
252
- {
253
- "name": "string.quoted.single.jsx",
254
- "begin": "'",
255
- "end": "'"
256
- },
257
- {
258
- "name": "meta.embedded.expression.js",
259
- "begin": "\\{",
260
- "end": "\\}",
261
- "patterns": [
262
- {
263
- "include": "#control-flow"
264
- },
265
- {
266
- "include": "source.js.jsx"
267
- }
268
- ]
269
- }
270
- ]
271
- },
272
- {
273
- "name": "meta.tag.jsx",
274
- "match": "(</)([A-Za-z_$][\\w$\\.-]*)(\\s*)(>)",
275
- "captures": {
276
- "1": {
277
- "name": "punctuation.definition.tag.begin.jsx"
278
- },
279
- "2": {
280
- "name": "entity.name.tag.jsx"
281
- },
282
- "4": {
283
- "name": "punctuation.definition.tag.end.jsx"
284
- }
285
- }
286
- }
287
- ]
288
- }
289
- }
290
- }
@@ -1,20 +0,0 @@
1
- {
2
- "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
3
- "name": "Round Inject",
4
- "scopeName": "source.round.injection",
5
- "injectionSelector": "L:source.js.jsx",
6
- "patterns": [
7
- {
8
- "name": "keyword.control.round",
9
- "match": "\\b(if|else|for|in)\\b"
10
- },
11
- {
12
- "name": "entity.other.attribute-name.round",
13
- "match": "\\bbind:[A-Za-z_$][\\w$]*\\b"
14
- },
15
- {
16
- "name": "entity.name.type.round",
17
- "match": "\\b(Route|Suspense|Markdown|ErrorBoundary|Fragment|Page|Link|NotFound)\\b"
18
- }
19
- ]
20
- }
@@ -1,152 +0,0 @@
1
- {
2
- "comments": {
3
- "blockComment": [
4
- "{/*",
5
- "*/}"
6
- ]
7
- },
8
- "brackets": [
9
- [
10
- "{",
11
- "}"
12
- ],
13
- [
14
- "[",
15
- "]"
16
- ],
17
- [
18
- "(",
19
- ")"
20
- ],
21
- [
22
- "<",
23
- ">"
24
- ]
25
- ],
26
- "colorizedBracketPairs": [
27
- [
28
- "{",
29
- "}"
30
- ],
31
- [
32
- "[",
33
- "]"
34
- ],
35
- [
36
- "(",
37
- ")"
38
- ]
39
- ],
40
- "autoClosingPairs": [
41
- {
42
- "open": "{",
43
- "close": "}"
44
- },
45
- {
46
- "open": "[",
47
- "close": "]"
48
- },
49
- {
50
- "open": "(",
51
- "close": ")"
52
- },
53
- {
54
- "open": "'",
55
- "close": "'",
56
- "notIn": [
57
- "string",
58
- "comment"
59
- ]
60
- },
61
- {
62
- "open": "\"",
63
- "close": "\"",
64
- "notIn": [
65
- "string"
66
- ]
67
- },
68
- {
69
- "open": "/**",
70
- "close": " */",
71
- "notIn": [
72
- "string"
73
- ]
74
- }
75
- ],
76
- "surroundingPairs": [
77
- [
78
- "{",
79
- "}"
80
- ],
81
- [
82
- "[",
83
- "]"
84
- ],
85
- [
86
- "(",
87
- ")"
88
- ],
89
- [
90
- "<",
91
- ">"
92
- ],
93
- [
94
- "'",
95
- "'"
96
- ],
97
- [
98
- "\"",
99
- "\""
100
- ]
101
- ],
102
- "wordPattern": {
103
- "pattern": "(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:'\"\\,\\.\\<\\>\\/\\s]+)"
104
- },
105
- "onEnterRules": [
106
- {
107
- "beforeText": {
108
- "pattern": "<(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr))([_:\\w][_:\\w\\-.\\d]*)([^/>]*(?!/)>)[^<]*$",
109
- "flags": "i"
110
- },
111
- "afterText": {
112
- "pattern": "^<\\/([_:\\w][_:\\w-.\\d]*)\\s*>$",
113
- "flags": "i"
114
- },
115
- "action": {
116
- "indent": "indentOutdent"
117
- }
118
- },
119
- {
120
- "beforeText": {
121
- "pattern": "<(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr))([_:\\w][_:\\w\\-.\\d]*)([^/>]*(?!/)>)[^<]*$",
122
- "flags": "i"
123
- },
124
- "action": {
125
- "indent": "indent"
126
- }
127
- },
128
- {
129
- // `beforeText` only applies to tokens of a given language. Since we are dealing with jsx-tags,
130
- // make sure we apply to the closing `>` of a tag so that mixed language spans
131
- // such as `<div onclick={1}>` are handled properly.
132
- "beforeText": {
133
- "pattern": "^>$"
134
- },
135
- "afterText": {
136
- "pattern": "^<\\/([_:\\w][_:\\w-.\\d]*)\\s*>$",
137
- "flags": "i"
138
- },
139
- "action": {
140
- "indent": "indentOutdent"
141
- }
142
- },
143
- {
144
- "beforeText": {
145
- "pattern": "^>$"
146
- },
147
- "action": {
148
- "indent": "indent"
149
- }
150
- }
151
- ],
152
- }