@typecad/cuttlefish 1.0.0-alpha.13 → 1.0.0-alpha.15

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 (343) hide show
  1. package/README.md +82 -79
  2. package/assets/editor-extensions/typecad-debug/README.md +141 -0
  3. package/assets/editor-extensions/typecad-debug/out/extension.js +347 -0
  4. package/assets/editor-extensions/typecad-debug/out/extension.js.map +1 -0
  5. package/assets/editor-extensions/typecad-debug/package.json +76 -0
  6. package/assets/editor-extensions/typecad-ui/LICENSE +27 -0
  7. package/assets/editor-extensions/typecad-ui/README.md +52 -0
  8. package/assets/editor-extensions/typecad-ui/file-icon-dark.png +0 -0
  9. package/assets/editor-extensions/typecad-ui/file-icon-light.png +0 -0
  10. package/assets/editor-extensions/typecad-ui/icon.png +0 -0
  11. package/assets/editor-extensions/typecad-ui/language-configuration.json +43 -0
  12. package/assets/editor-extensions/typecad-ui/package.json +54 -0
  13. package/assets/editor-extensions/typecad-ui/snippets/typecad-ui.json +80 -0
  14. package/assets/editor-extensions/typecad-ui/syntaxes/markdown-ui.json +45 -0
  15. package/assets/editor-extensions/typecad-ui/syntaxes/typecad-ui.tmLanguage.json +1269 -0
  16. package/dist/api/config.d.ts +30 -27
  17. package/dist/api/schema/types.d.ts +20 -3
  18. package/dist/api/shared/async-runtime-static.d.ts +1 -1
  19. package/dist/api/shared/async-runtime-static.js +5 -5
  20. package/dist/api/shared/async-types.d.ts +3 -2
  21. package/dist/api/shared/board-catalog.d.ts +2 -0
  22. package/dist/api/shared/board-catalog.js +6 -0
  23. package/dist/api/shared/board-resolver.d.ts +4 -7
  24. package/dist/api/shared/board-resolver.js +2 -1
  25. package/dist/api/shared/coop-scheduler.d.ts +1 -1
  26. package/dist/api/shared/coop-scheduler.js +1 -1
  27. package/dist/api/shared/cpp-type-ir.d.ts +1 -1
  28. package/dist/api/shared/cpp-type-ir.js +1 -1
  29. package/dist/api/shared/display-profile.d.ts +1 -1
  30. package/dist/api/shared/display-profile.js +3 -5
  31. package/dist/api/shared/framework-manifest-registry.d.ts +1 -1
  32. package/dist/api/shared/framework-manifest-registry.js +0 -1
  33. package/dist/api/shared/framework-manifest.d.ts +65 -507
  34. package/dist/api/shared/framework-manifest.js +6 -11
  35. package/dist/api/shared/hal-op-ir.d.ts +294 -685
  36. package/dist/api/shared/hal-op-ir.js +31 -65
  37. package/dist/api/shared/index.d.ts +0 -4
  38. package/dist/api/shared/index.js +1 -7
  39. package/dist/api/shared/ir-core.d.ts +6 -0
  40. package/dist/api/shared/ir-declarations.d.ts +4 -0
  41. package/dist/api/shared/ir.d.ts +1 -3
  42. package/dist/api/shared/platform-strategy.d.ts +14 -37
  43. package/dist/api/shared/polyfill-helper-registry.js +0 -5
  44. package/dist/api/shared/polyfill-types.js +0 -27
  45. package/dist/api/shared/promise-runtime.js +3 -3
  46. package/dist/api/shared/spdx-licenses.d.ts +12 -10
  47. package/dist/api/shared/spdx-licenses.js +1 -1
  48. package/dist/api/shared/toolchain-types.d.ts +1 -1
  49. package/dist/api/shared/toolchain-types.js +3 -3
  50. package/dist/api/shared/types.d.ts +0 -3
  51. package/dist/api/shared/validate-framework-manifest.js +13 -33
  52. package/dist/board-catalog/dts-reader.d.ts +220 -0
  53. package/dist/board-catalog/dts-reader.js +1052 -0
  54. package/dist/board-catalog/index.d.ts +11 -0
  55. package/dist/board-catalog/index.js +12 -0
  56. package/dist/board-catalog/pinconfig.d.ts +48 -0
  57. package/dist/board-catalog/pinconfig.js +263 -0
  58. package/dist/board-catalog/sdk.d.ts +82 -0
  59. package/dist/board-catalog/sdk.js +180 -0
  60. package/dist/board-catalog/store.d.ts +196 -0
  61. package/dist/board-catalog/store.js +363 -0
  62. package/dist/board-catalog/types.d.ts +233 -0
  63. package/dist/board-catalog/types.js +7 -0
  64. package/dist/board-catalog/walker.d.ts +112 -0
  65. package/dist/board-catalog/walker.js +1101 -0
  66. package/dist/cli-utils.d.ts +2 -2
  67. package/dist/cli-utils.js +5 -5
  68. package/dist/cli.js +227 -244
  69. package/dist/config-loader.d.ts +14 -19
  70. package/dist/config-loader.js +242 -78
  71. package/dist/config-schema.d.ts +19 -227
  72. package/dist/config-schema.js +9 -8
  73. package/dist/contract/board-generator.d.ts +4 -4
  74. package/dist/contract/board-generator.js +16 -5
  75. package/dist/contract/contract-parser.d.ts +36 -127
  76. package/dist/contract/contract-parser.js +76 -0
  77. package/dist/contract/index.d.ts +1 -1
  78. package/dist/contract/index.js +70 -21
  79. package/dist/create/active-board-catalog.d.ts +9 -0
  80. package/dist/create/active-board-catalog.js +94 -0
  81. package/dist/create/board-catalog.generated.d.ts +96 -0
  82. package/dist/create/board-catalog.generated.js +128737 -0
  83. package/dist/create/board-search.d.ts +23 -0
  84. package/dist/create/board-search.js +88 -0
  85. package/dist/create/editor-integration.d.ts +32 -0
  86. package/dist/create/editor-integration.js +257 -0
  87. package/dist/create/eslint-rules-template.d.ts +2 -2
  88. package/dist/create/framework-catalog.d.ts +48 -8
  89. package/dist/create/framework-catalog.js +58 -44
  90. package/dist/create/index.d.ts +8 -13
  91. package/dist/create/index.js +5 -9
  92. package/dist/create/mcu-target.d.ts +39 -0
  93. package/dist/create/mcu-target.js +80 -0
  94. package/dist/create/pack-targets.d.ts +19 -0
  95. package/dist/create/pack-targets.js +56 -0
  96. package/dist/create/{init-scaffold.d.ts → scaffold.d.ts} +8 -11
  97. package/dist/create/{init-scaffold.js → scaffold.js} +28 -87
  98. package/dist/create/templates.d.ts +51 -0
  99. package/dist/create/{init-templates.js → templates.js} +135 -116
  100. package/dist/create/wizard.d.ts +19 -0
  101. package/dist/create/wizard.js +314 -0
  102. package/dist/debug/preprocessor.d.ts +5 -0
  103. package/dist/debug/preprocessor.js +31 -7
  104. package/dist/diagnostics/diagnostics-report.d.ts +1 -1
  105. package/dist/diagnostics/diagnostics-report.js +3 -11
  106. package/dist/diagnostics/json-schema.d.ts +1 -1
  107. package/dist/diagnostics/md-writer.js +2 -2
  108. package/dist/diagnostics/mermaid-builder.d.ts +1 -1
  109. package/dist/diagnostics/mermaid-builder.js +1 -1
  110. package/dist/emit/cpp-emitter.js +4 -1
  111. package/dist/emit/emitters/class-emitter.js +32 -4
  112. package/dist/emit/emitters/emitter-context.d.ts +11 -0
  113. package/dist/emit/emitters/entrypoint-synthesizer.js +1 -1
  114. package/dist/emit/emitters/function-emitter-impl.js +33 -17
  115. package/dist/emit/emitters/output-finalizer.d.ts +7 -0
  116. package/dist/emit/emitters/output-finalizer.js +31 -23
  117. package/dist/emit/emitters/setup.js +147 -63
  118. package/dist/emit/emitters/top-level-prep.js +1 -1
  119. package/dist/emit/emitters/type-decl-emitter.js +13 -8
  120. package/dist/emit/emitters/ui-emitter.js +1 -1
  121. package/dist/emit/expression-renderer.d.ts +3 -3
  122. package/dist/emit/expression-renderer.js +17 -7
  123. package/dist/emit/route-hal-op.js +17 -48
  124. package/dist/emit/snprintf-helpers.d.ts +1 -3
  125. package/dist/emit/snprintf-helpers.js +1 -39
  126. package/dist/emit/statement-renderer.d.ts +0 -4
  127. package/dist/emit/statement-renderer.js +54 -45
  128. package/dist/emit/utils/async-state-machine.d.ts +16 -9
  129. package/dist/emit/utils/async-state-machine.js +56 -54
  130. package/dist/emit/utils/comment-helpers.d.ts +0 -8
  131. package/dist/emit/utils/comment-helpers.js +1 -1
  132. package/dist/emit/utils/cpp-helpers.d.ts +2 -2
  133. package/dist/emit/utils/cpp-helpers.js +2 -2
  134. package/dist/emit/utils/hal-op-cpp-type.js +4 -6
  135. package/dist/emit/utils/index.d.ts +3 -3
  136. package/dist/emit/utils/index.js +3 -3
  137. package/dist/emit/utils/type-inference.d.ts +1 -29
  138. package/dist/emit/utils/type-inference.js +0 -75
  139. package/dist/framework-package.d.ts +3 -0
  140. package/dist/framework-package.js +23 -6
  141. package/dist/framework-registry.d.ts +5 -5
  142. package/dist/frameworks/native/graphics/terminal-preview.d.ts +5 -0
  143. package/dist/frameworks/native/graphics/terminal-preview.js +33 -0
  144. package/dist/frameworks/native/index.d.ts +3 -0
  145. package/dist/frameworks/native/index.js +15 -0
  146. package/dist/frameworks/native/native-compile.d.ts +17 -0
  147. package/dist/frameworks/native/native-compile.js +170 -0
  148. package/dist/frameworks/native/native-config.d.ts +41 -0
  149. package/dist/frameworks/native/native-config.js +7 -0
  150. package/dist/frameworks/native/strategy.d.ts +97 -0
  151. package/dist/frameworks/native/strategy.js +664 -0
  152. package/dist/ir/board-resolver.d.ts +18 -23
  153. package/dist/ir/board-resolver.js +43 -401
  154. package/dist/ir/build-ir-state.d.ts +3 -0
  155. package/dist/ir/build-ir-state.js +42 -0
  156. package/dist/ir/build-ir.d.ts +1 -1
  157. package/dist/ir/build-ir.js +64 -45
  158. package/dist/ir/declaration-builders.js +1 -0
  159. package/dist/ir/expression-to-ir.js +17 -10
  160. package/dist/ir/hal/hal-emitter.d.ts +0 -2
  161. package/dist/ir/hal/hal-emitter.js +92 -41
  162. package/dist/ir/hal/hal-parser.d.ts +5 -5
  163. package/dist/ir/hal/hal-parser.js +128 -36
  164. package/dist/ir/hal/hal-plugins.d.ts +0 -1
  165. package/dist/ir/hal/hal-plugins.js +425 -716
  166. package/dist/ir/heap-analysis.js +2 -41
  167. package/dist/ir/identifier-collector.js +32 -20
  168. package/dist/ir/network-validation.js +7 -11
  169. package/dist/ir/ownership-analysis.js +75 -13
  170. package/dist/ir/peripheral-usage.d.ts +8 -2
  171. package/dist/ir/peripheral-usage.js +78 -149
  172. package/dist/ir/peripheral-validation.js +23 -3
  173. package/dist/ir/pin-capability-validation.d.ts +12 -0
  174. package/dist/ir/pin-capability-validation.js +61 -97
  175. package/dist/ir/pin-mode-validation.js +5 -5
  176. package/dist/ir/program-analysis.d.ts +8 -15
  177. package/dist/ir/program-analysis.js +140 -323
  178. package/dist/ir/pulldown-validation.js +11 -4
  179. package/dist/ir/resource-analysis.js +15 -3
  180. package/dist/ir/statement-to-ir.js +0 -6
  181. package/dist/ir/timing-validation.js +1 -1
  182. package/dist/ir/transformers/array-methods.js +11 -5
  183. package/dist/ir/transformers/call-statement.js +20 -87
  184. package/dist/ir/transformers/callback-context-registry.d.ts +1 -1
  185. package/dist/ir/transformers/callback-context-registry.js +8 -16
  186. package/dist/ir/transformers/control-flow.js +0 -13
  187. package/dist/ir/transformers/expressions.js +10 -9
  188. package/dist/ir/transformers/hal-call-resolver.d.ts +2 -2
  189. package/dist/ir/transformers/hal-call-resolver.js +24 -10
  190. package/dist/ir/transformers/hal-emit-helpers.d.ts +2 -2
  191. package/dist/ir/transformers/hal-emit-helpers.js +2 -2
  192. package/dist/ir/transformers/namespace-methods.js +1 -1
  193. package/dist/ir/transformers/ui-callback-lowering.d.ts +0 -2
  194. package/dist/ir/transformers/ui-callback-lowering.js +0 -24
  195. package/dist/ir/transformers/variables.js +338 -42
  196. package/dist/ir/try-catch-validation.js +4 -3
  197. package/dist/ir/type-resolution.js +15 -4
  198. package/dist/ir/validation-orchestrator.js +0 -9
  199. package/dist/libdef/cpp-to-decl.d.ts +0 -9
  200. package/dist/libdef/cpp-to-decl.js +0 -72
  201. package/dist/libdef/registry.d.ts +0 -1
  202. package/dist/libdef/registry.js +1 -24
  203. package/dist/library/catalog.d.ts +35 -0
  204. package/dist/library/catalog.js +67 -0
  205. package/dist/library/cli.d.ts +2 -0
  206. package/dist/library/cli.js +168 -0
  207. package/dist/library/init.d.ts +25 -0
  208. package/dist/library/init.js +397 -0
  209. package/dist/library/install.d.ts +9 -0
  210. package/dist/library/install.js +80 -0
  211. package/dist/library/registry-search.d.ts +34 -0
  212. package/dist/library/registry-search.js +50 -0
  213. package/dist/library/validate.d.ts +17 -0
  214. package/dist/library/validate.js +175 -0
  215. package/dist/library-packages.d.ts +95 -0
  216. package/dist/library-packages.js +275 -0
  217. package/dist/mapping/peripheral-names.js +9 -4
  218. package/dist/mapping/source-map.d.ts +3 -4
  219. package/dist/mapping/source-map.js +12 -18
  220. package/dist/orchestrator/graph-builder.d.ts +3 -3
  221. package/dist/orchestrator/graph-builder.js +29 -12
  222. package/dist/orchestrator/type-checker.d.ts +3 -3
  223. package/dist/orchestrator/type-checker.js +3 -3
  224. package/dist/platform/async-runtime.js +1 -1
  225. package/dist/platform/coop-scheduler-runtime.js +2 -2
  226. package/dist/platform/generic-debug-codegen.d.ts +36 -0
  227. package/dist/platform/generic-debug-codegen.js +185 -0
  228. package/dist/platform/generic-strategy.d.ts +3 -4
  229. package/dist/platform/generic-strategy.js +5 -80
  230. package/dist/platform/index.js +1 -1
  231. package/dist/platform/registry.d.ts +2 -2
  232. package/dist/platform/registry.js +2 -2
  233. package/dist/preview/client.js +17 -3
  234. package/dist/safety/asil-decorators.d.ts +32 -0
  235. package/dist/safety/asil-decorators.js +32 -0
  236. package/dist/safety/authoring.d.ts +85 -0
  237. package/dist/safety/authoring.js +61 -0
  238. package/dist/safety/engine.d.ts +3 -0
  239. package/dist/safety/engine.js +83 -0
  240. package/dist/safety/hal/ops.d.ts +48 -0
  241. package/dist/safety/hal/ops.js +46 -0
  242. package/dist/safety/iso26262/analyze.d.ts +13 -0
  243. package/dist/safety/iso26262/analyze.js +29 -0
  244. package/dist/safety/iso26262/asil.d.ts +10 -0
  245. package/dist/safety/iso26262/asil.js +22 -0
  246. package/dist/safety/iso26262/collect.d.ts +14 -0
  247. package/dist/safety/iso26262/collect.js +137 -0
  248. package/dist/safety/iso26262/goto-checker.d.ts +10 -0
  249. package/dist/safety/iso26262/goto-checker.js +72 -0
  250. package/dist/safety/iso26262/heap-checker.d.ts +7 -0
  251. package/dist/safety/iso26262/heap-checker.js +57 -0
  252. package/dist/safety/iso26262/init-checker.d.ts +13 -0
  253. package/dist/safety/iso26262/init-checker.js +127 -0
  254. package/dist/safety/iso26262/loop-checker.d.ts +7 -0
  255. package/dist/safety/iso26262/loop-checker.js +86 -0
  256. package/dist/safety/iso26262/recursion-checker.d.ts +9 -0
  257. package/dist/safety/iso26262/recursion-checker.js +134 -0
  258. package/dist/safety/iso26262/sidecar-writer.d.ts +25 -0
  259. package/dist/safety/iso26262/sidecar-writer.js +13 -0
  260. package/dist/safety/passes/pinMode-intercept.d.ts +3 -0
  261. package/dist/safety/passes/pinMode-intercept.js +60 -0
  262. package/dist/safety/runtime/mode-table.d.ts +5 -0
  263. package/dist/safety/runtime/mode-table.js +55 -0
  264. package/dist/safety/runtime/polyfills.d.ts +6 -0
  265. package/dist/safety/runtime/polyfills.js +12 -0
  266. package/dist/safety/runtime/result-struct.d.ts +11 -0
  267. package/dist/safety/runtime/result-struct.js +98 -0
  268. package/dist/safety/runtime/safe-int.d.ts +33 -0
  269. package/dist/safety/runtime/safe-int.js +170 -0
  270. package/dist/safety/runtime/safe-traits.d.ts +4 -0
  271. package/dist/safety/runtime/safe-traits.js +95 -0
  272. package/dist/safety/runtime/safe-variable.d.ts +39 -0
  273. package/dist/safety/runtime/safe-variable.js +226 -0
  274. package/dist/safety/runtime/vote.d.ts +8 -0
  275. package/dist/safety/runtime/vote.js +92 -0
  276. package/dist/safety/runtime/write-verify.d.ts +8 -0
  277. package/dist/safety/runtime/write-verify.js +71 -0
  278. package/dist/safety/safe-int-types.d.ts +45 -0
  279. package/dist/safety/safe-int-types.js +25 -0
  280. package/dist/safety/safe-variable-types.d.ts +29 -0
  281. package/dist/safety/safe-variable-types.js +19 -0
  282. package/dist/safety/safety-bridge.d.ts +5 -6
  283. package/dist/safety/safety-bridge.js +15 -28
  284. package/dist/safety/sidecar-bridge.d.ts +1 -3
  285. package/dist/safety/sidecar-bridge.js +3 -20
  286. package/dist/safety/specifiers.d.ts +6 -0
  287. package/dist/safety/specifiers.js +14 -0
  288. package/dist/safety-hook.d.ts +8 -7
  289. package/dist/safety-hook.js +12 -13
  290. package/dist/testing.d.ts +5 -6
  291. package/dist/testing.js +5 -5
  292. package/dist/transpile/resolution.d.ts +1 -1
  293. package/dist/transpile/resolution.js +18 -9
  294. package/dist/transpile/test-pins.d.ts +18 -0
  295. package/dist/transpile/test-pins.js +142 -0
  296. package/dist/transpile.d.ts +1 -2
  297. package/dist/transpile.js +90 -29
  298. package/dist/types.d.ts +45 -26
  299. package/dist/ui-hook.d.ts +1 -1
  300. package/dist/utils/cli.d.ts +2 -2
  301. package/dist/utils/cli.js +160 -157
  302. package/dist/utils/fs.d.ts +3 -4
  303. package/dist/utils/fs.js +4 -5
  304. package/dist/utils/strings.d.ts +0 -1
  305. package/dist/utils/strings.js +0 -8
  306. package/dist/utils/ui.d.ts +5 -2
  307. package/dist/utils/ui.js +13 -3
  308. package/package.json +158 -149
  309. package/dist/add-preset.d.ts +0 -4
  310. package/dist/add-preset.js +0 -74
  311. package/dist/api/shared/async-symbol-detector.d.ts +0 -11
  312. package/dist/api/shared/async-symbol-detector.js +0 -140
  313. package/dist/api/shared/native-display-op-resolver.d.ts +0 -10
  314. package/dist/api/shared/native-display-op-resolver.js +0 -64
  315. package/dist/create/board-checklist.d.ts +0 -2
  316. package/dist/create/board-checklist.js +0 -52
  317. package/dist/create/board-codegen.d.ts +0 -9
  318. package/dist/create/board-codegen.js +0 -238
  319. package/dist/create/board-generators.d.ts +0 -12
  320. package/dist/create/board-generators.js +0 -651
  321. package/dist/create/board-spec.d.ts +0 -637
  322. package/dist/create/board-spec.js +0 -214
  323. package/dist/create/init-templates.d.ts +0 -28
  324. package/dist/create/init-wizard.d.ts +0 -8
  325. package/dist/create/init-wizard.js +0 -182
  326. package/dist/install/framework-catalog.d.ts +0 -53
  327. package/dist/install/framework-catalog.js +0 -107
  328. package/dist/install/handle-install.d.ts +0 -35
  329. package/dist/install/handle-install.js +0 -177
  330. package/dist/install/index.d.ts +0 -4
  331. package/dist/install/index.js +0 -3
  332. package/dist/ir/pin-state-tracking.d.ts +0 -58
  333. package/dist/ir/pin-state-tracking.js +0 -182
  334. package/dist/ir/pwm-timer-sharing.d.ts +0 -4
  335. package/dist/ir/pwm-timer-sharing.js +0 -94
  336. package/dist/ir/timer0-pwm-timing-conflict.d.ts +0 -4
  337. package/dist/ir/timer0-pwm-timing-conflict.js +0 -72
  338. package/dist/libdef/component-decls.d.ts +0 -2
  339. package/dist/libdef/component-decls.js +0 -6
  340. package/dist/libdef/component-discovery.d.ts +0 -43
  341. package/dist/libdef/component-discovery.js +0 -83
  342. package/dist/theme-tokens.d.ts +0 -22
  343. package/dist/theme-tokens.js +0 -172
@@ -0,0 +1,1269 @@
1
+ {
2
+ "name": "Cuttlefish UI",
3
+ "scopeName": "source.typecad-ui",
4
+ "injections": {
5
+ "L:(source.ts, source.js, source.coffee)": {
6
+ "patterns": [
7
+ {
8
+ "match": "(?<![_$./'\"[:alnum:]])\\$(?=[_[:alpha:]][_$[:alnum:]]*)",
9
+ "name": "punctuation.definition.variable.typecad-ui"
10
+ },
11
+ {
12
+ "match": "(?<![_$./'\"[:alnum:]])(\\$\\$)(?=props|restProps|slots)",
13
+ "name": "punctuation.definition.variable.typecad-ui"
14
+ }
15
+ ]
16
+ },
17
+ "L:(meta.script.typecad-ui | meta.style.typecad-ui) (meta.lang.js | meta.lang.javascript) - (meta source)": {
18
+ "patterns": [
19
+ {
20
+ "begin": "(?<=>)(?!</)",
21
+ "end": "(?=</)",
22
+ "name": "meta.embedded.block.typecad-ui",
23
+ "contentName": "source.js",
24
+ "patterns": [
25
+ {
26
+ "include": "source.js"
27
+ }
28
+ ]
29
+ }
30
+ ]
31
+ },
32
+ "L:(meta.script.typecad-ui | meta.style.typecad-ui) (meta.lang.ts | meta.lang.typescript) - (meta source)": {
33
+ "patterns": [
34
+ {
35
+ "begin": "(?<=>)(?=[^\\n]+</(script|style)[\\s>])",
36
+ "end": "(?=</(script|style)[\\s>])",
37
+ "name": "meta.embedded.block.typecad-ui",
38
+ "contentName": "source.ts",
39
+ "patterns": [
40
+ {
41
+ "include": "source.ts"
42
+ }
43
+ ]
44
+ },
45
+ {
46
+ "begin": "(?<=>)(?!</)",
47
+ "while": "^(?!\\s*</(script|style)[\\s>])",
48
+ "name": "meta.embedded.block.typecad-ui",
49
+ "contentName": "source.ts",
50
+ "patterns": [
51
+ {
52
+ "include": "source.ts"
53
+ }
54
+ ]
55
+ }
56
+ ]
57
+ },
58
+ "L:(meta.script.typecad-ui | meta.style.typecad-ui) meta.lang.coffee - (meta source)": {
59
+ "patterns": [
60
+ {
61
+ "begin": "(?<=>)(?!</)",
62
+ "end": "(?=</)",
63
+ "name": "meta.embedded.block.typecad-ui",
64
+ "contentName": "source.coffee",
65
+ "patterns": [
66
+ {
67
+ "include": "source.coffee"
68
+ }
69
+ ]
70
+ }
71
+ ]
72
+ },
73
+ "L:meta.script.typecad-ui - meta.lang - (meta source)": {
74
+ "patterns": [
75
+ {
76
+ "begin": "(?<=>)(?!</)",
77
+ "end": "(?=</)",
78
+ "name": "meta.embedded.block.typecad-ui",
79
+ "contentName": "source.js",
80
+ "patterns": [
81
+ {
82
+ "include": "source.js"
83
+ }
84
+ ]
85
+ }
86
+ ]
87
+ },
88
+ "L:meta.style.typecad-ui meta.lang.stylus - (meta source)": {
89
+ "patterns": [
90
+ {
91
+ "begin": "(?<=>)(?!</)",
92
+ "end": "(?=</)",
93
+ "name": "meta.embedded.block.typecad-ui",
94
+ "contentName": "source.stylus",
95
+ "patterns": [
96
+ {
97
+ "include": "source.stylus"
98
+ }
99
+ ]
100
+ }
101
+ ]
102
+ },
103
+ "L:meta.style.typecad-ui meta.lang.sass - (meta source)": {
104
+ "patterns": [
105
+ {
106
+ "begin": "(?<=>)(?!</)",
107
+ "end": "(?=</)",
108
+ "name": "meta.embedded.block.typecad-ui",
109
+ "contentName": "source.sass",
110
+ "patterns": [
111
+ {
112
+ "include": "source.sass"
113
+ }
114
+ ]
115
+ }
116
+ ]
117
+ },
118
+ "L:meta.style.typecad-ui meta.lang.css - (meta source)": {
119
+ "patterns": [
120
+ {
121
+ "begin": "(?<=>)(?!</)",
122
+ "end": "(?=</)",
123
+ "name": "meta.embedded.block.typecad-ui",
124
+ "contentName": "source.css",
125
+ "patterns": [
126
+ {
127
+ "include": "source.css"
128
+ }
129
+ ]
130
+ }
131
+ ]
132
+ },
133
+ "L:meta.style.typecad-ui meta.lang.scss - (meta source)": {
134
+ "patterns": [
135
+ {
136
+ "begin": "(?<=>)(?!</)",
137
+ "end": "(?=</)",
138
+ "name": "meta.embedded.block.typecad-ui",
139
+ "contentName": "source.css.scss",
140
+ "patterns": [
141
+ {
142
+ "include": "source.css.scss"
143
+ }
144
+ ]
145
+ }
146
+ ]
147
+ },
148
+ "L:meta.style.typecad-ui meta.lang.less - (meta source)": {
149
+ "patterns": [
150
+ {
151
+ "begin": "(?<=>)(?!</)",
152
+ "end": "(?=</)",
153
+ "name": "meta.embedded.block.typecad-ui",
154
+ "contentName": "source.css.less",
155
+ "patterns": [
156
+ {
157
+ "include": "source.css.less"
158
+ }
159
+ ]
160
+ }
161
+ ]
162
+ },
163
+ "L:meta.style.typecad-ui meta.lang.postcss - (meta source)": {
164
+ "patterns": [
165
+ {
166
+ "begin": "(?<=>)(?!</)",
167
+ "end": "(?=</)",
168
+ "name": "meta.embedded.block.typecad-ui",
169
+ "contentName": "source.css.postcss",
170
+ "patterns": [
171
+ {
172
+ "include": "source.css.postcss"
173
+ }
174
+ ]
175
+ }
176
+ ]
177
+ },
178
+ "L:meta.style.typecad-ui - meta.lang - (meta source)": {
179
+ "patterns": [
180
+ {
181
+ "begin": "(?<=>)(?!</)",
182
+ "end": "(?=</)",
183
+ "name": "meta.embedded.block.typecad-ui",
184
+ "contentName": "source.css",
185
+ "patterns": [
186
+ {
187
+ "include": "source.css"
188
+ }
189
+ ]
190
+ }
191
+ ]
192
+ },
193
+ "L:meta.template.typecad-ui meta.lang.pug - (meta source)": {
194
+ "patterns": [
195
+ {
196
+ "begin": "(?<=>)(?!</)",
197
+ "end": "(?=</)",
198
+ "name": "meta.embedded.block.typecad-ui",
199
+ "contentName": "text.pug",
200
+ "patterns": [
201
+ {
202
+ "include": "text.pug"
203
+ }
204
+ ]
205
+ }
206
+ ]
207
+ },
208
+ "L:meta.template.typecad-ui - meta.lang - (meta source)": {
209
+ "patterns": [
210
+ {
211
+ "begin": "(?<=>)\\s",
212
+ "end": "(?=</template)",
213
+ "patterns": [
214
+ {
215
+ "include": "#scope"
216
+ }
217
+ ]
218
+ }
219
+ ]
220
+ }
221
+ },
222
+ "patterns": [
223
+ {
224
+ "include": "#scope"
225
+ }
226
+ ],
227
+ "repository": {
228
+ "scope": {
229
+ "patterns": [
230
+ {
231
+ "include": "#comments"
232
+ },
233
+ {
234
+ "include": "#special-tags"
235
+ },
236
+ {
237
+ "include": "#tags"
238
+ },
239
+ {
240
+ "include": "#interpolation"
241
+ },
242
+ {
243
+ "begin": "(?<=>|})",
244
+ "end": "(?=<|{)",
245
+ "name": "text.typecad-ui"
246
+ }
247
+ ]
248
+ },
249
+ "comments": {
250
+ "begin": "<!--",
251
+ "end": "-->",
252
+ "captures": {
253
+ "0": {
254
+ "name": "punctuation.definition.comment.typecad-ui"
255
+ }
256
+ },
257
+ "name": "comment.block.typecad-ui",
258
+ "patterns": [
259
+ {
260
+ "begin": "(@)(component)",
261
+ "beginCaptures": {
262
+ "1": {
263
+ "name": "punctuation.definition.keyword.typecad-ui"
264
+ },
265
+ "2": {
266
+ "name": "storage.type.class.component.typecad-ui keyword.declaration.class.component.typecad-ui"
267
+ }
268
+ },
269
+ "end": "(?=-->)",
270
+ "contentName": "comment.block.documentation.typecad-ui",
271
+ "patterns": [
272
+ {
273
+ "match": ".*?(?=-->)",
274
+ "captures": {
275
+ "0": {
276
+ "patterns": [
277
+ {
278
+ "include": "text.html.markdown"
279
+ }
280
+ ]
281
+ }
282
+ }
283
+ },
284
+ {
285
+ "include": "text.html.markdown"
286
+ }
287
+ ]
288
+ },
289
+ {
290
+ "match": "\\G-?>|<!--(?!>)|<!-(?=-->)|--!>",
291
+ "name": "invalid.illegal.characters-not-allowed-here.typecad-ui"
292
+ }
293
+ ]
294
+ },
295
+ "destructuring": {
296
+ "patterns": [
297
+ {
298
+ "begin": "(?={)",
299
+ "end": "(?<=})",
300
+ "name": "meta.embedded.expression.typecad-ui source.ts",
301
+ "patterns": [
302
+ {
303
+ "include": "source.ts#object-binding-pattern"
304
+ }
305
+ ]
306
+ },
307
+ {
308
+ "begin": "(?=\\[)",
309
+ "end": "(?<=\\])",
310
+ "name": "meta.embedded.expression.typecad-ui source.ts",
311
+ "patterns": [
312
+ {
313
+ "include": "source.ts#array-binding-pattern"
314
+ }
315
+ ]
316
+ }
317
+ ]
318
+ },
319
+ "destructuring-const": {
320
+ "patterns": [
321
+ {
322
+ "begin": "(?={)",
323
+ "end": "(?<=})",
324
+ "name": "meta.embedded.expression.typecad-ui source.ts",
325
+ "patterns": [
326
+ {
327
+ "include": "source.ts#object-binding-pattern-const"
328
+ }
329
+ ]
330
+ },
331
+ {
332
+ "begin": "(?=\\[)",
333
+ "end": "(?<=\\])",
334
+ "name": "meta.embedded.expression.typecad-ui source.ts",
335
+ "patterns": [
336
+ {
337
+ "include": "source.ts#array-binding-pattern-const"
338
+ }
339
+ ]
340
+ }
341
+ ]
342
+ },
343
+ "interpolation": {
344
+ "patterns": [
345
+ {
346
+ "begin": "\\{",
347
+ "end": "\\}",
348
+ "beginCaptures": {
349
+ "0": {
350
+ "name": "punctuation.section.embedded.begin.typecad-ui"
351
+ }
352
+ },
353
+ "endCaptures": {
354
+ "0": {
355
+ "name": "punctuation.section.embedded.end.typecad-ui"
356
+ }
357
+ },
358
+ "contentName": "meta.embedded.expression.typecad-ui source.ts",
359
+ "patterns": [
360
+ {
361
+ "begin": "\\G\\s*(?={)",
362
+ "end": "(?<=})",
363
+ "patterns": [
364
+ {
365
+ "include": "source.ts#object-literal"
366
+ }
367
+ ]
368
+ },
369
+ {
370
+ "include": "source.ts"
371
+ }
372
+ ]
373
+ }
374
+ ]
375
+ },
376
+ "special-tags": {
377
+ "patterns": [
378
+ {
379
+ "include": "#special-tags-void"
380
+ },
381
+ {
382
+ "include": "#special-tags-block-begin"
383
+ },
384
+ {
385
+ "include": "#special-tags-block-end"
386
+ }
387
+ ]
388
+ },
389
+ "special-tags-keywords": {
390
+ "match": "([#@/:])(else\\s+if|[a-z]*)",
391
+ "captures": {
392
+ "1": {
393
+ "name": "punctuation.definition.keyword.typecad-ui"
394
+ },
395
+ "2": {
396
+ "patterns": [
397
+ {
398
+ "match": "if|else\\s+if|else",
399
+ "name": "keyword.control.conditional.typecad-ui"
400
+ },
401
+ {
402
+ "match": "each|key",
403
+ "name": "keyword.control.typecad-ui"
404
+ },
405
+ {
406
+ "match": "await|then|catch",
407
+ "name": "keyword.control.flow.typecad-ui"
408
+ },
409
+ {
410
+ "match": "snippet",
411
+ "name": "keyword.control.typecad-ui"
412
+ },
413
+ {
414
+ "match": "html",
415
+ "name": "keyword.other.typecad-ui"
416
+ },
417
+ {
418
+ "match": "render",
419
+ "name": "keyword.other.typecad-ui"
420
+ },
421
+ {
422
+ "match": "debug",
423
+ "name": "keyword.other.debugger.typecad-ui"
424
+ },
425
+ {
426
+ "match": "const",
427
+ "name": "storage.type.typecad-ui"
428
+ }
429
+ ]
430
+ }
431
+ }
432
+ },
433
+ "special-tags-modes": {
434
+ "patterns": [
435
+ {
436
+ "begin": "(?<=(if|key|then|catch|html|render).*?)\\G",
437
+ "end": "(?=})",
438
+ "name": "meta.embedded.expression.typecad-ui source.ts",
439
+ "patterns": [
440
+ {
441
+ "include": "source.ts"
442
+ }
443
+ ]
444
+ },
445
+ {
446
+ "begin": "(?<=snippet.*?)\\G",
447
+ "end": "(?=})",
448
+ "name": "meta.embedded.expression.typecad-ui source.ts",
449
+ "patterns": [
450
+ {
451
+ "match": "\\G\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=<)",
452
+ "captures": {
453
+ "1": {
454
+ "name": "entity.name.function.ts"
455
+ }
456
+ }
457
+ },
458
+ {
459
+ "begin": "(?<=<)",
460
+ "end": "(?=>)",
461
+ "contentName": "meta.type.parameters.ts",
462
+ "patterns": [
463
+ {
464
+ "include": "source.ts"
465
+ }
466
+ ]
467
+ },
468
+ {
469
+ "begin": "(?<=>\\s*\\()",
470
+ "end": "(?=})",
471
+ "name": "meta.embedded.expression.typecad-ui source.ts",
472
+ "patterns": [
473
+ {
474
+ "include": "source.ts"
475
+ }
476
+ ]
477
+ },
478
+ {
479
+ "begin": "\\G",
480
+ "end": "(?=})",
481
+ "name": "meta.embedded.expression.typecad-ui source.ts",
482
+ "patterns": [
483
+ {
484
+ "include": "source.ts"
485
+ }
486
+ ]
487
+ }
488
+ ]
489
+ },
490
+ {
491
+ "begin": "(?<=const.*?)\\G",
492
+ "end": "(?=})",
493
+ "patterns": [
494
+ {
495
+ "include": "#destructuring-const"
496
+ },
497
+ {
498
+ "begin": "\\G\\s*([_$[:alpha:]][_$[:alnum:]]+)\\s*",
499
+ "end": "(?=[:=])",
500
+ "beginCaptures": {
501
+ "1": {
502
+ "name": "variable.other.constant.typecad-ui"
503
+ }
504
+ }
505
+ },
506
+ {
507
+ "begin": "(?=:)",
508
+ "end": "(?=\\=)",
509
+ "name": "meta.type.annotation.typecad-ui",
510
+ "patterns": [
511
+ {
512
+ "include": "source.ts"
513
+ }
514
+ ]
515
+ },
516
+ {
517
+ "begin": "(?=\\=)",
518
+ "name": "meta.embedded.expression.typecad-ui source.ts",
519
+ "end": "(?=})",
520
+ "patterns": [
521
+ {
522
+ "include": "source.ts"
523
+ }
524
+ ]
525
+ }
526
+ ]
527
+ },
528
+ {
529
+ "begin": "(?<=each.*?)\\G",
530
+ "end": "(?=})",
531
+ "patterns": [
532
+ {
533
+ "begin": "\\G\\s*?(?=\\S)",
534
+ "end": "(?=(?:(?:^\\s*|\\s+)(as))|\\s*(}|,))",
535
+ "contentName": "meta.embedded.expression.typecad-ui source.ts",
536
+ "patterns": [
537
+ {
538
+ "include": "source.ts"
539
+ }
540
+ ]
541
+ },
542
+ {
543
+ "begin": "(as)|(?=}|,)",
544
+ "beginCaptures": {
545
+ "1": {
546
+ "name": "keyword.control.as.typecad-ui"
547
+ }
548
+ },
549
+ "end": "(?=})",
550
+ "patterns": [
551
+ {
552
+ "include": "#destructuring"
553
+ },
554
+ {
555
+ "begin": "\\(",
556
+ "end": "\\)|(?=})",
557
+ "captures": {
558
+ "0": {
559
+ "name": "meta.brace.round.typecad-ui"
560
+ }
561
+ },
562
+ "contentName": "meta.embedded.expression.typecad-ui source.ts",
563
+ "patterns": [
564
+ {
565
+ "include": "source.ts"
566
+ }
567
+ ]
568
+ },
569
+ {
570
+ "match": "(\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*)",
571
+ "captures": {
572
+ "1": {
573
+ "name": "meta.embedded.expression.typecad-ui source.ts",
574
+ "patterns": [
575
+ {
576
+ "include": "source.ts"
577
+ }
578
+ ]
579
+ }
580
+ }
581
+ },
582
+ {
583
+ "match": ",",
584
+ "name": "punctuation.separator.typecad-ui"
585
+ }
586
+ ]
587
+ }
588
+ ]
589
+ },
590
+ {
591
+ "begin": "(?<=await.*?)\\G",
592
+ "end": "(?=})",
593
+ "patterns": [
594
+ {
595
+ "begin": "\\G\\s*?(?=\\S)",
596
+ "end": "\\s+(then)|(?=})",
597
+ "endCaptures": {
598
+ "1": {
599
+ "name": "keyword.control.flow.typecad-ui"
600
+ }
601
+ },
602
+ "contentName": "meta.embedded.expression.typecad-ui source.ts",
603
+ "patterns": [
604
+ {
605
+ "include": "source.ts"
606
+ }
607
+ ]
608
+ },
609
+ {
610
+ "begin": "(?<=then\\b)",
611
+ "end": "(?=})",
612
+ "contentName": "meta.embedded.expression.typecad-ui source.ts",
613
+ "patterns": [
614
+ {
615
+ "include": "source.ts"
616
+ }
617
+ ]
618
+ }
619
+ ]
620
+ },
621
+ {
622
+ "begin": "(?<=debug.*?)\\G",
623
+ "end": "(?=})",
624
+ "patterns": [
625
+ {
626
+ "match": "[_$[:alpha:]][_$[:alnum:]]*",
627
+ "captures": {
628
+ "0": {
629
+ "name": "meta.embedded.expression.typecad-ui source.ts",
630
+ "patterns": [
631
+ {
632
+ "include": "source.ts"
633
+ }
634
+ ]
635
+ }
636
+ }
637
+ },
638
+ {
639
+ "match": ",",
640
+ "name": "punctuation.separator.typecad-ui"
641
+ }
642
+ ]
643
+ }
644
+ ]
645
+ },
646
+ "special-tags-void": {
647
+ "begin": "({)\\s*((?:[@:])(else\\s+if|[a-z]*))",
648
+ "beginCaptures": {
649
+ "1": {
650
+ "name": "punctuation.definition.block.begin.typecad-ui"
651
+ },
652
+ "2": {
653
+ "patterns": [
654
+ {
655
+ "include": "#special-tags-keywords"
656
+ }
657
+ ]
658
+ }
659
+ },
660
+ "end": "\\}",
661
+ "endCaptures": {
662
+ "0": {
663
+ "name": "punctuation.definition.block.end.typecad-ui"
664
+ }
665
+ },
666
+ "name": "meta.special.$3.typecad-ui",
667
+ "patterns": [
668
+ {
669
+ "include": "#special-tags-modes"
670
+ }
671
+ ]
672
+ },
673
+ "special-tags-block-begin": {
674
+ "begin": "({)\\s*(#([a-z]*))",
675
+ "end": "(})",
676
+ "name": "meta.special.$3.typecad-ui meta.special.start.typecad-ui",
677
+ "beginCaptures": {
678
+ "1": {
679
+ "name": "punctuation.definition.block.begin.typecad-ui"
680
+ },
681
+ "2": {
682
+ "patterns": [
683
+ {
684
+ "include": "#special-tags-keywords"
685
+ }
686
+ ]
687
+ }
688
+ },
689
+ "endCaptures": {
690
+ "0": {
691
+ "name": "punctuation.definition.block.end.typecad-ui"
692
+ }
693
+ },
694
+ "patterns": [
695
+ {
696
+ "include": "#special-tags-modes"
697
+ }
698
+ ]
699
+ },
700
+ "special-tags-block-end": {
701
+ "begin": "({)\\s*(/([a-z]*))",
702
+ "end": "(})",
703
+ "name": "meta.special.$3.typecad-ui meta.special.end.typecad-ui",
704
+ "beginCaptures": {
705
+ "1": {
706
+ "name": "punctuation.definition.block.begin.typecad-ui"
707
+ },
708
+ "2": {
709
+ "patterns": [
710
+ {
711
+ "include": "#special-tags-keywords"
712
+ }
713
+ ]
714
+ }
715
+ },
716
+ "endCaptures": {
717
+ "1": {
718
+ "name": "punctuation.definition.block.end.typecad-ui"
719
+ }
720
+ }
721
+ },
722
+ "attributes": {
723
+ "patterns": [
724
+ {
725
+ "include": "#attributes-comments"
726
+ },
727
+ {
728
+ "include": "#attributes-directives"
729
+ },
730
+ {
731
+ "include": "#attributes-keyvalue"
732
+ },
733
+ {
734
+ "include": "#attributes-attach"
735
+ },
736
+ {
737
+ "include": "#attributes-interpolated"
738
+ }
739
+ ]
740
+ },
741
+ "attributes-comments": {
742
+ "patterns": [
743
+ {
744
+ "match": "//.*$",
745
+ "name": "comment.line.double-slash.typecad-ui"
746
+ },
747
+ {
748
+ "begin": "/\\*",
749
+ "end": "\\*/",
750
+ "name": "comment.block.typecad-ui"
751
+ }
752
+ ]
753
+ },
754
+ "attributes-attach": {
755
+ "begin": "(?<!:|=)\\s*({@attach\\s)",
756
+ "end": "(\\})",
757
+ "captures": {
758
+ "1": {
759
+ "name": "entity.other.attribute-name.typecad-ui"
760
+ }
761
+ },
762
+ "contentName": "meta.embedded.expression.typecad-ui source.ts",
763
+ "patterns": [
764
+ {
765
+ "include": "source.ts"
766
+ }
767
+ ]
768
+ },
769
+ "attributes-interpolated": {
770
+ "begin": "(?<!:|=)\\s*({)",
771
+ "end": "(\\})",
772
+ "captures": {
773
+ "1": {
774
+ "name": "entity.other.attribute-name.typecad-ui"
775
+ }
776
+ },
777
+ "contentName": "meta.embedded.expression.typecad-ui source.ts",
778
+ "patterns": [
779
+ {
780
+ "include": "source.ts"
781
+ }
782
+ ]
783
+ },
784
+ "attributes-keyvalue": {
785
+ "begin": "((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*)",
786
+ "beginCaptures": {
787
+ "0": {
788
+ "patterns": [
789
+ {
790
+ "match": "--.*",
791
+ "name": "support.type.property-name.typecad-ui"
792
+ },
793
+ {
794
+ "match": ".*",
795
+ "name": "entity.other.attribute-name.typecad-ui"
796
+ }
797
+ ]
798
+ }
799
+ },
800
+ "end": "(?=\\s*+[^=\\s])",
801
+ "name": "meta.attribute.$1.typecad-ui",
802
+ "patterns": [
803
+ {
804
+ "begin": "=",
805
+ "beginCaptures": {
806
+ "0": {
807
+ "name": "punctuation.separator.key-value.typecad-ui"
808
+ }
809
+ },
810
+ "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)",
811
+ "patterns": [
812
+ {
813
+ "include": "#attributes-value"
814
+ }
815
+ ]
816
+ }
817
+ ]
818
+ },
819
+ "attributes-value": {
820
+ "patterns": [
821
+ {
822
+ "include": "#interpolation"
823
+ },
824
+ {
825
+ "match": "(?:(['\"])([0-9._]+[\\w%]{,4})(\\1))|(?:([0-9._]+[\\w%]{,4})(?=\\s|/?>))",
826
+ "captures": {
827
+ "1": {
828
+ "name": "punctuation.definition.string.begin.typecad-ui"
829
+ },
830
+ "2": {
831
+ "name": "constant.numeric.decimal.typecad-ui"
832
+ },
833
+ "3": {
834
+ "name": "punctuation.definition.string.end.typecad-ui"
835
+ },
836
+ "4": {
837
+ "name": "constant.numeric.decimal.typecad-ui"
838
+ }
839
+ }
840
+ },
841
+ {
842
+ "match": "([^\\s\"'=<>`/]|/(?!>))+",
843
+ "name": "string.unquoted.typecad-ui",
844
+ "patterns": [
845
+ {
846
+ "include": "#interpolation"
847
+ }
848
+ ]
849
+ },
850
+ {
851
+ "begin": "(['\"])",
852
+ "end": "\\1",
853
+ "beginCaptures": {
854
+ "0": {
855
+ "name": "punctuation.definition.string.begin.typecad-ui"
856
+ }
857
+ },
858
+ "endCaptures": {
859
+ "0": {
860
+ "name": "punctuation.definition.string.end.typecad-ui"
861
+ }
862
+ },
863
+ "name": "string.quoted.typecad-ui",
864
+ "patterns": [
865
+ {
866
+ "include": "#interpolation"
867
+ }
868
+ ]
869
+ }
870
+ ]
871
+ },
872
+ "attributes-directives-keywords": {
873
+ "patterns": [
874
+ {
875
+ "match": "on|use|bind",
876
+ "name": "keyword.control.typecad-ui"
877
+ },
878
+ {
879
+ "match": "transition|in|out|animate",
880
+ "name": "keyword.other.animation.typecad-ui"
881
+ },
882
+ {
883
+ "match": "let",
884
+ "name": "storage.type.typecad-ui"
885
+ },
886
+ {
887
+ "match": "class|style",
888
+ "name": "entity.other.attribute-name.typecad-ui"
889
+ }
890
+ ]
891
+ },
892
+ "attributes-directives-types": {
893
+ "patterns": [
894
+ {
895
+ "match": "(?<=(on):).*$",
896
+ "name": "entity.name.type.typecad-ui"
897
+ },
898
+ {
899
+ "match": "(?<=(bind):).*$",
900
+ "name": "variable.parameter.typecad-ui"
901
+ },
902
+ {
903
+ "match": "(?<=(use|transition|in|out|animate):).*$",
904
+ "name": "variable.function.typecad-ui"
905
+ },
906
+ {
907
+ "match": "(?<=(let|class|style):).*$",
908
+ "name": "variable.parameter.typecad-ui"
909
+ }
910
+ ]
911
+ },
912
+ "attributes-directives-types-assigned": {
913
+ "patterns": [
914
+ {
915
+ "match": "(?<=(bind):)this$",
916
+ "name": "variable.language.typecad-ui"
917
+ },
918
+ {
919
+ "match": "(?<=(bind):).*$",
920
+ "name": "entity.name.type.typecad-ui"
921
+ },
922
+ {
923
+ "match": "(?<=(class):).*$",
924
+ "name": "entity.other.attribute-name.class.typecad-ui"
925
+ },
926
+ {
927
+ "match": "(?<=(style):).*$",
928
+ "name": "support.type.property-name.typecad-ui"
929
+ },
930
+ {
931
+ "include": "#attributes-directives-types"
932
+ }
933
+ ]
934
+ },
935
+ "attributes-directives": {
936
+ "begin": "(?<!<)(on|use|bind|transition|in|out|animate|let|class|style)(:)(?:((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*(?=\\s*=))|((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*))((\\|\\w+)*)",
937
+ "beginCaptures": {
938
+ "1": {
939
+ "patterns": [
940
+ {
941
+ "include": "#attributes-directives-keywords"
942
+ }
943
+ ]
944
+ },
945
+ "2": {
946
+ "name": "punctuation.definition.keyword.typecad-ui"
947
+ },
948
+ "3": {
949
+ "patterns": [
950
+ {
951
+ "include": "#attributes-directives-types-assigned"
952
+ }
953
+ ]
954
+ },
955
+ "4": {
956
+ "patterns": [
957
+ {
958
+ "include": "#attributes-directives-types"
959
+ }
960
+ ]
961
+ },
962
+ "5": {
963
+ "patterns": [
964
+ {
965
+ "match": "\\w+",
966
+ "name": "support.function.typecad-ui"
967
+ },
968
+ {
969
+ "match": "\\|",
970
+ "name": "punctuation.separator.typecad-ui"
971
+ }
972
+ ]
973
+ }
974
+ },
975
+ "end": "(?=\\s*+[^=\\s])",
976
+ "name": "meta.directive.$1.typecad-ui",
977
+ "patterns": [
978
+ {
979
+ "begin": "=",
980
+ "beginCaptures": {
981
+ "0": {
982
+ "name": "punctuation.separator.key-value.typecad-ui"
983
+ }
984
+ },
985
+ "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)",
986
+ "patterns": [
987
+ {
988
+ "include": "#attributes-value"
989
+ }
990
+ ]
991
+ }
992
+ ]
993
+ },
994
+ "attributes-generics": {
995
+ "begin": "(generics)(=)([\"'])",
996
+ "beginCaptures": {
997
+ "1": {
998
+ "name": "entity.other.attribute-name.typecad-ui"
999
+ },
1000
+ "2": {
1001
+ "name": "punctuation.separator.key-value.typecad-ui"
1002
+ },
1003
+ "3": {
1004
+ "name": "punctuation.definition.string.begin.typecad-ui"
1005
+ }
1006
+ },
1007
+ "end": "(\\3)",
1008
+ "endCaptures": {
1009
+ "1": {
1010
+ "name": "punctuation.definition.string.end.typecad-ui"
1011
+ }
1012
+ },
1013
+ "contentName": "meta.embedded.expression.typecad-ui source.ts",
1014
+ "patterns": [
1015
+ {
1016
+ "include": "#type-parameters"
1017
+ }
1018
+ ]
1019
+ },
1020
+ "type-parameters": {
1021
+ "name": "meta.type.parameters.ts",
1022
+ "patterns": [
1023
+ {
1024
+ "include": "source.ts#comment"
1025
+ },
1026
+ {
1027
+ "name": "storage.modifier.ts",
1028
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"
1029
+ },
1030
+ {
1031
+ "include": "source.ts#type"
1032
+ },
1033
+ {
1034
+ "include": "source.ts#punctuation-comma"
1035
+ },
1036
+ {
1037
+ "name": "keyword.operator.assignment.ts",
1038
+ "match": "(=)(?!>)"
1039
+ }
1040
+ ]
1041
+ },
1042
+ "tags": {
1043
+ "patterns": [
1044
+ {
1045
+ "include": "#tags-lang"
1046
+ },
1047
+ {
1048
+ "include": "#tags-void"
1049
+ },
1050
+ {
1051
+ "include": "#tags-general-end"
1052
+ },
1053
+ {
1054
+ "include": "#tags-general-start"
1055
+ }
1056
+ ]
1057
+ },
1058
+ "tags-name": {
1059
+ "patterns": [
1060
+ {
1061
+ "match": "slot",
1062
+ "name": "keyword.control.typecad-ui"
1063
+ },
1064
+ {
1065
+ "match": "([\\w]+(?:\\.[\\w]+)+)|([A-Z][\\w]*)",
1066
+ "captures": {
1067
+ "1": {
1068
+ "patterns": [
1069
+ {
1070
+ "match": "\\w+",
1071
+ "name": "support.class.component.typecad-ui"
1072
+ },
1073
+ {
1074
+ "match": "\\.",
1075
+ "name": "punctuation.definition.keyword.typecad-ui"
1076
+ }
1077
+ ]
1078
+ },
1079
+ "2": {
1080
+ "name": "support.class.component.typecad-ui"
1081
+ }
1082
+ }
1083
+ },
1084
+ {
1085
+ "match": "[a-z][\\w0-9:]*-[\\w0-9:-]*",
1086
+ "name": "meta.tag.custom.typecad-ui entity.name.tag.typecad-ui"
1087
+ },
1088
+ {
1089
+ "match": "[a-z][\\w0-9:-]*",
1090
+ "name": "entity.name.tag.typecad-ui"
1091
+ }
1092
+ ]
1093
+ },
1094
+ "tags-start-attributes": {
1095
+ "begin": "\\G",
1096
+ "end": "(?=/?>)",
1097
+ "name": "meta.tag.start.typecad-ui",
1098
+ "patterns": [
1099
+ {
1100
+ "include": "#attributes"
1101
+ }
1102
+ ]
1103
+ },
1104
+ "tags-lang-start-attributes": {
1105
+ "begin": "\\G",
1106
+ "end": "(?=/>)|>",
1107
+ "endCaptures": {
1108
+ "0": {
1109
+ "name": "punctuation.definition.tag.end.typecad-ui"
1110
+ }
1111
+ },
1112
+ "name": "meta.tag.start.typecad-ui",
1113
+ "patterns": [
1114
+ {
1115
+ "include": "#attributes-generics"
1116
+ },
1117
+ {
1118
+ "include": "#attributes"
1119
+ }
1120
+ ]
1121
+ },
1122
+ "tags-start-node": {
1123
+ "match": "(<)([^/\\s>/]*)",
1124
+ "captures": {
1125
+ "1": {
1126
+ "name": "punctuation.definition.tag.begin.typecad-ui"
1127
+ },
1128
+ "2": {
1129
+ "patterns": [
1130
+ {
1131
+ "include": "#tags-name"
1132
+ }
1133
+ ]
1134
+ }
1135
+ },
1136
+ "name": "meta.tag.start.typecad-ui"
1137
+ },
1138
+ "tags-end-node": {
1139
+ "match": "(</)(.*?)\\s*(>)|(/>)",
1140
+ "captures": {
1141
+ "1": {
1142
+ "name": "meta.tag.end.typecad-ui punctuation.definition.tag.begin.typecad-ui"
1143
+ },
1144
+ "2": {
1145
+ "name": "meta.tag.end.typecad-ui",
1146
+ "patterns": [
1147
+ {
1148
+ "include": "#tags-name"
1149
+ }
1150
+ ]
1151
+ },
1152
+ "3": {
1153
+ "name": "meta.tag.end.typecad-ui punctuation.definition.tag.end.typecad-ui"
1154
+ },
1155
+ "4": {
1156
+ "name": "meta.tag.start.typecad-ui punctuation.definition.tag.end.typecad-ui"
1157
+ }
1158
+ }
1159
+ },
1160
+ "tags-lang": {
1161
+ "begin": "<(script|style|template)",
1162
+ "end": "</\\1\\s*>|/>",
1163
+ "beginCaptures": {
1164
+ "0": {
1165
+ "patterns": [
1166
+ {
1167
+ "include": "#tags-start-node"
1168
+ }
1169
+ ]
1170
+ }
1171
+ },
1172
+ "endCaptures": {
1173
+ "0": {
1174
+ "patterns": [
1175
+ {
1176
+ "include": "#tags-end-node"
1177
+ }
1178
+ ]
1179
+ }
1180
+ },
1181
+ "name": "meta.$1.typecad-ui",
1182
+ "patterns": [
1183
+ {
1184
+ "begin": "\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/)?(\\w+)\\2)",
1185
+ "end": "(?=</|/>)",
1186
+ "name": "meta.lang.$3.typecad-ui",
1187
+ "patterns": [
1188
+ {
1189
+ "include": "#tags-lang-start-attributes"
1190
+ }
1191
+ ]
1192
+ },
1193
+ {
1194
+ "include": "#tags-lang-start-attributes"
1195
+ }
1196
+ ]
1197
+ },
1198
+ "tags-void": {
1199
+ "begin": "(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)",
1200
+ "beginCaptures": {
1201
+ "1": {
1202
+ "name": "punctuation.definition.tag.begin.typecad-ui"
1203
+ },
1204
+ "2": {
1205
+ "name": "entity.name.tag.typecad-ui"
1206
+ }
1207
+ },
1208
+ "end": "/?>",
1209
+ "endCaptures": {
1210
+ "0": {
1211
+ "name": "punctuation.definition.tag.begin.typecad-ui"
1212
+ }
1213
+ },
1214
+ "name": "meta.tag.void.typecad-ui",
1215
+ "patterns": [
1216
+ {
1217
+ "include": "#attributes"
1218
+ }
1219
+ ]
1220
+ },
1221
+ "tags-general-start": {
1222
+ "begin": "(<)([^/\\s>/]*)",
1223
+ "end": "(/?>)",
1224
+ "beginCaptures": {
1225
+ "0": {
1226
+ "patterns": [
1227
+ {
1228
+ "include": "#tags-start-node"
1229
+ }
1230
+ ]
1231
+ }
1232
+ },
1233
+ "endCaptures": {
1234
+ "1": {
1235
+ "name": "meta.tag.start.typecad-ui punctuation.definition.tag.end.typecad-ui"
1236
+ }
1237
+ },
1238
+ "name": "meta.scope.tag.$2.typecad-ui",
1239
+ "patterns": [
1240
+ {
1241
+ "include": "#tags-start-attributes"
1242
+ }
1243
+ ]
1244
+ },
1245
+ "tags-general-end": {
1246
+ "begin": "(</)([^/\\s>]*)",
1247
+ "end": "(>)",
1248
+ "beginCaptures": {
1249
+ "1": {
1250
+ "name": "meta.tag.end.typecad-ui punctuation.definition.tag.begin.typecad-ui"
1251
+ },
1252
+ "2": {
1253
+ "name": "meta.tag.end.typecad-ui",
1254
+ "patterns": [
1255
+ {
1256
+ "include": "#tags-name"
1257
+ }
1258
+ ]
1259
+ }
1260
+ },
1261
+ "endCaptures": {
1262
+ "1": {
1263
+ "name": "meta.tag.end.typecad-ui punctuation.definition.tag.end.typecad-ui"
1264
+ }
1265
+ },
1266
+ "name": "meta.scope.tag.$2.typecad-ui"
1267
+ }
1268
+ }
1269
+ }