@velarscript/web 0.31.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/analysis/calls/intrinsics/config.d.ts +10 -0
- package/dist/analysis/calls/intrinsics/config.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics/config.js +19 -0
- package/dist/analysis/calls/intrinsics/config.js.map +1 -0
- package/dist/analysis/calls/intrinsics/forms.d.ts +10 -0
- package/dist/analysis/calls/intrinsics/forms.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics/forms.js +38 -0
- package/dist/analysis/calls/intrinsics/forms.js.map +1 -0
- package/dist/analysis/calls/intrinsics/http.d.ts +10 -0
- package/dist/analysis/calls/intrinsics/http.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics/http.js +37 -0
- package/dist/analysis/calls/intrinsics/http.js.map +1 -0
- package/dist/analysis/calls/intrinsics/reactive.d.ts +10 -0
- package/dist/analysis/calls/intrinsics/reactive.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics/reactive.js +30 -0
- package/dist/analysis/calls/intrinsics/reactive.js.map +1 -0
- package/dist/analysis/calls/intrinsics/storage.d.ts +16 -0
- package/dist/analysis/calls/intrinsics/storage.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics/storage.js +91 -0
- package/dist/analysis/calls/intrinsics/storage.js.map +1 -0
- package/dist/analysis/calls/intrinsics/web.d.ts +10 -0
- package/dist/analysis/calls/intrinsics/web.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics/web.js +100 -0
- package/dist/analysis/calls/intrinsics/web.js.map +1 -0
- package/dist/analysis/calls/intrinsics.d.ts +13 -0
- package/dist/analysis/calls/intrinsics.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics.js +31 -0
- package/dist/analysis/calls/intrinsics.js.map +1 -0
- package/dist/analysis/components/contracts.d.ts +19 -0
- package/dist/analysis/components/contracts.d.ts.map +1 -0
- package/dist/analysis/components/contracts.js +83 -0
- package/dist/analysis/components/contracts.js.map +1 -0
- package/dist/analysis/components/declaration.d.ts +4 -0
- package/dist/analysis/components/declaration.d.ts.map +1 -0
- package/dist/analysis/components/declaration.js +163 -0
- package/dist/analysis/components/declaration.js.map +1 -0
- package/dist/analysis/components/host.d.ts +61 -0
- package/dist/analysis/components/host.d.ts.map +1 -0
- package/dist/analysis/components/host.js +22 -0
- package/dist/analysis/components/host.js.map +1 -0
- package/dist/analysis/components/lifecycle.d.ts +22 -0
- package/dist/analysis/components/lifecycle.d.ts.map +1 -0
- package/dist/analysis/components/lifecycle.js +33 -0
- package/dist/analysis/components/lifecycle.js.map +1 -0
- package/dist/analysis/components/ownership.d.ts +74 -0
- package/dist/analysis/components/ownership.d.ts.map +1 -0
- package/dist/analysis/components/ownership.js +106 -0
- package/dist/analysis/components/ownership.js.map +1 -0
- package/dist/analysis/declarations.d.ts +99 -0
- package/dist/analysis/declarations.d.ts.map +1 -0
- package/dist/analysis/declarations.js +176 -0
- package/dist/analysis/declarations.js.map +1 -0
- package/dist/analysis/inference.d.ts +75 -0
- package/dist/analysis/inference.d.ts.map +1 -0
- package/dist/analysis/inference.js +257 -0
- package/dist/analysis/inference.js.map +1 -0
- package/dist/analysis/jsx/attributes.d.ts +103 -0
- package/dist/analysis/jsx/attributes.d.ts.map +1 -0
- package/dist/analysis/jsx/attributes.js +601 -0
- package/dist/analysis/jsx/attributes.js.map +1 -0
- package/dist/analysis/jsx/elements.d.ts +17 -0
- package/dist/analysis/jsx/elements.d.ts.map +1 -0
- package/dist/analysis/jsx/elements.js +213 -0
- package/dist/analysis/jsx/elements.js.map +1 -0
- package/dist/analysis/jsx/host.d.ts +61 -0
- package/dist/analysis/jsx/host.d.ts.map +1 -0
- package/dist/analysis/jsx/host.js +15 -0
- package/dist/analysis/jsx/host.js.map +1 -0
- package/dist/analysis/jsx/keys.d.ts +15 -0
- package/dist/analysis/jsx/keys.d.ts.map +1 -0
- package/dist/analysis/jsx/keys.js +67 -0
- package/dist/analysis/jsx/keys.js.map +1 -0
- package/dist/analysis/jsx/security.d.ts +29 -0
- package/dist/analysis/jsx/security.d.ts.map +1 -0
- package/dist/analysis/jsx/security.js +61 -0
- package/dist/analysis/jsx/security.js.map +1 -0
- package/dist/analysis/jsx-detection.d.ts +49 -0
- package/dist/analysis/jsx-detection.d.ts.map +1 -0
- package/dist/analysis/jsx-detection.js +196 -0
- package/dist/analysis/jsx-detection.js.map +1 -0
- package/dist/analysis/keyed-rebuild.d.ts +148 -0
- package/dist/analysis/keyed-rebuild.d.ts.map +1 -0
- package/dist/analysis/keyed-rebuild.js +299 -0
- package/dist/analysis/keyed-rebuild.js.map +1 -0
- package/dist/analysis/keyframes-analysis.d.ts +6 -0
- package/dist/analysis/keyframes-analysis.d.ts.map +1 -0
- package/dist/analysis/keyframes-analysis.js +79 -0
- package/dist/analysis/keyframes-analysis.js.map +1 -0
- package/dist/analysis/look/builders.d.ts +29 -0
- package/dist/analysis/look/builders.d.ts.map +1 -0
- package/dist/analysis/look/builders.js +174 -0
- package/dist/analysis/look/builders.js.map +1 -0
- package/dist/analysis/look/conditions.d.ts +13 -0
- package/dist/analysis/look/conditions.d.ts.map +1 -0
- package/dist/analysis/look/conditions.js +84 -0
- package/dist/analysis/look/conditions.js.map +1 -0
- package/dist/analysis/look/edits.d.ts +36 -0
- package/dist/analysis/look/edits.d.ts.map +1 -0
- package/dist/analysis/look/edits.js +80 -0
- package/dist/analysis/look/edits.js.map +1 -0
- package/dist/analysis/look/entries.d.ts +56 -0
- package/dist/analysis/look/entries.d.ts.map +1 -0
- package/dist/analysis/look/entries.js +223 -0
- package/dist/analysis/look/entries.js.map +1 -0
- package/dist/analysis/look/host.d.ts +47 -0
- package/dist/analysis/look/host.d.ts.map +1 -0
- package/dist/analysis/look/host.js +16 -0
- package/dist/analysis/look/host.js.map +1 -0
- package/dist/analysis/look/tokens.d.ts +75 -0
- package/dist/analysis/look/tokens.d.ts.map +1 -0
- package/dist/analysis/look/tokens.js +156 -0
- package/dist/analysis/look/tokens.js.map +1 -0
- package/dist/analysis/look/values.d.ts +45 -0
- package/dist/analysis/look/values.d.ts.map +1 -0
- package/dist/analysis/look/values.js +148 -0
- package/dist/analysis/look/values.js.map +1 -0
- package/dist/analysis/look-conditions.d.ts +47 -0
- package/dist/analysis/look-conditions.d.ts.map +1 -0
- package/dist/analysis/look-conditions.js +157 -0
- package/dist/analysis/look-conditions.js.map +1 -0
- package/dist/analysis/look-sites.d.ts +62 -0
- package/dist/analysis/look-sites.d.ts.map +1 -0
- package/dist/analysis/look-sites.js +121 -0
- package/dist/analysis/look-sites.js.map +1 -0
- package/dist/analysis/look-values.d.ts +19 -0
- package/dist/analysis/look-values.d.ts.map +1 -1
- package/dist/analysis/look-values.js +38 -0
- package/dist/analysis/look-values.js.map +1 -1
- package/dist/analysis/look-vocabulary-guidance.d.ts +76 -0
- package/dist/analysis/look-vocabulary-guidance.d.ts.map +1 -0
- package/dist/analysis/look-vocabulary-guidance.js +338 -0
- package/dist/analysis/look-vocabulary-guidance.js.map +1 -0
- package/dist/analysis/media-conditions.d.ts +33 -0
- package/dist/analysis/media-conditions.d.ts.map +1 -0
- package/dist/analysis/media-conditions.js +92 -0
- package/dist/analysis/media-conditions.js.map +1 -0
- package/dist/analysis/program-passes.d.ts +106 -0
- package/dist/analysis/program-passes.d.ts.map +1 -0
- package/dist/analysis/program-passes.js +149 -0
- package/dist/analysis/program-passes.js.map +1 -0
- package/dist/analysis/reactivity/bindings.d.ts +37 -0
- package/dist/analysis/reactivity/bindings.d.ts.map +1 -0
- package/dist/analysis/reactivity/bindings.js +88 -0
- package/dist/analysis/reactivity/bindings.js.map +1 -0
- package/dist/analysis/reactivity/derived.d.ts +39 -0
- package/dist/analysis/reactivity/derived.d.ts.map +1 -0
- package/dist/analysis/reactivity/derived.js +80 -0
- package/dist/analysis/reactivity/derived.js.map +1 -0
- package/dist/analysis/reactivity/host.d.ts +38 -0
- package/dist/analysis/reactivity/host.d.ts.map +1 -0
- package/dist/analysis/reactivity/host.js +14 -0
- package/dist/analysis/reactivity/host.js.map +1 -0
- package/dist/analysis/reactivity/retired-accessors.d.ts +82 -0
- package/dist/analysis/reactivity/retired-accessors.d.ts.map +1 -0
- package/dist/analysis/reactivity/retired-accessors.js +118 -0
- package/dist/analysis/reactivity/retired-accessors.js.map +1 -0
- package/dist/analysis/renderable.d.ts +47 -0
- package/dist/analysis/renderable.d.ts.map +1 -0
- package/dist/analysis/renderable.js +105 -0
- package/dist/analysis/renderable.js.map +1 -0
- package/dist/analysis/routes.d.ts +64 -0
- package/dist/analysis/routes.d.ts.map +1 -0
- package/dist/analysis/routes.js +182 -0
- package/dist/analysis/routes.js.map +1 -0
- package/dist/analysis/url-attributes.d.ts +12 -0
- package/dist/analysis/url-attributes.d.ts.map +1 -0
- package/dist/analysis/url-attributes.js +48 -0
- package/dist/analysis/url-attributes.js.map +1 -0
- package/dist/analysis/watch-cycles.d.ts +102 -0
- package/dist/analysis/watch-cycles.d.ts.map +1 -1
- package/dist/analysis/watch-cycles.js +240 -1
- package/dist/analysis/watch-cycles.js.map +1 -1
- package/dist/analysis/watch-subject.d.ts +45 -0
- package/dist/analysis/watch-subject.d.ts.map +1 -0
- package/dist/analysis/watch-subject.js +272 -0
- package/dist/analysis/watch-subject.js.map +1 -0
- package/dist/analysis/web-types.d.ts +27 -0
- package/dist/analysis/web-types.d.ts.map +1 -0
- package/dist/analysis/web-types.js +170 -0
- package/dist/analysis/web-types.js.map +1 -0
- package/dist/analyzer.d.ts +18 -617
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/analyzer.js +211 -4853
- package/dist/analyzer.js.map +1 -1
- package/dist/compiler.d.ts +20 -0
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +31 -864
- package/dist/compiler.js.map +1 -1
- package/dist/documentation.d.ts +28 -0
- package/dist/documentation.d.ts.map +1 -0
- package/dist/documentation.js +67 -0
- package/dist/documentation.js.map +1 -0
- package/dist/editor/completions.d.ts +12 -0
- package/dist/editor/completions.d.ts.map +1 -0
- package/dist/editor/completions.js +6 -0
- package/dist/editor/completions.js.map +1 -0
- package/dist/editor/jsx-completion.d.ts +12 -0
- package/dist/editor/jsx-completion.d.ts.map +1 -0
- package/dist/editor/jsx-completion.js +137 -0
- package/dist/editor/jsx-completion.js.map +1 -0
- package/dist/editor/look-completion.d.ts +29 -0
- package/dist/editor/look-completion.d.ts.map +1 -0
- package/dist/editor/look-completion.js +159 -0
- package/dist/editor/look-completion.js.map +1 -0
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +12 -288
- package/dist/editor.js.map +1 -1
- package/dist/emit/components.d.ts +33 -0
- package/dist/emit/components.d.ts.map +1 -0
- package/dist/emit/components.js +135 -0
- package/dist/emit/components.js.map +1 -0
- package/dist/emit/jsx.d.ts +57 -0
- package/dist/emit/jsx.d.ts.map +1 -0
- package/dist/emit/jsx.js +384 -0
- package/dist/emit/jsx.js.map +1 -0
- package/dist/emit/look-css.d.ts +44 -0
- package/dist/emit/look-css.d.ts.map +1 -0
- package/dist/emit/look-css.js +177 -0
- package/dist/emit/look-css.js.map +1 -0
- package/dist/emit/look.d.ts +39 -0
- package/dist/emit/look.d.ts.map +1 -0
- package/dist/emit/look.js +218 -0
- package/dist/emit/look.js.map +1 -0
- package/dist/emit/runtime-imports.d.ts +40 -0
- package/dist/emit/runtime-imports.d.ts.map +1 -0
- package/dist/emit/runtime-imports.js +188 -0
- package/dist/emit/runtime-imports.js.map +1 -0
- package/dist/emitter.d.ts +15 -68
- package/dist/emitter.d.ts.map +1 -1
- package/dist/emitter.js +79 -1008
- package/dist/emitter.js.map +1 -1
- package/dist/look/animation.d.ts +7 -0
- package/dist/look/animation.d.ts.map +1 -0
- package/dist/look/animation.js +13 -0
- package/dist/look/animation.js.map +1 -0
- package/dist/look/builders.d.ts +35 -0
- package/dist/look/builders.d.ts.map +1 -0
- package/dist/look/builders.js +74 -0
- package/dist/look/builders.js.map +1 -0
- package/dist/look/css-functions.d.ts +28 -0
- package/dist/look/css-functions.d.ts.map +1 -0
- package/dist/look/css-functions.js +54 -0
- package/dist/look/css-functions.js.map +1 -0
- package/dist/look/keyword-sets.d.ts +41 -0
- package/dist/look/keyword-sets.d.ts.map +1 -0
- package/dist/look/keyword-sets.js +117 -0
- package/dist/look/keyword-sets.js.map +1 -0
- package/dist/look/keywords.d.ts +55 -0
- package/dist/look/keywords.d.ts.map +1 -0
- package/dist/look/keywords.js +387 -0
- package/dist/look/keywords.js.map +1 -0
- package/dist/look/media.d.ts +19 -0
- package/dist/look/media.d.ts.map +1 -0
- package/dist/look/media.js +27 -0
- package/dist/look/media.js.map +1 -0
- package/dist/look/naming.d.ts +9 -0
- package/dist/look/naming.d.ts.map +1 -0
- package/dist/look/naming.js +45 -0
- package/dist/look/naming.js.map +1 -0
- package/dist/look/properties.d.ts +16 -0
- package/dist/look/properties.d.ts.map +1 -0
- package/dist/look/properties.js +52 -0
- package/dist/look/properties.js.map +1 -0
- package/dist/look/shorthands.d.ts +25 -0
- package/dist/look/shorthands.d.ts.map +1 -0
- package/dist/look/shorthands.js +130 -0
- package/dist/look/shorthands.js.map +1 -0
- package/dist/look/tokens.d.ts +38 -0
- package/dist/look/tokens.d.ts.map +1 -0
- package/dist/look/tokens.js +59 -0
- package/dist/look/tokens.js.map +1 -0
- package/dist/look/units.d.ts +24 -0
- package/dist/look/units.d.ts.map +1 -0
- package/dist/look/units.js +33 -0
- package/dist/look/units.js.map +1 -0
- package/dist/look.d.ts +32 -227
- package/dist/look.d.ts.map +1 -1
- package/dist/look.js +28 -933
- package/dist/look.js.map +1 -1
- package/dist/module-roster.d.ts +16 -0
- package/dist/module-roster.d.ts.map +1 -0
- package/dist/module-roster.js +28 -0
- package/dist/module-roster.js.map +1 -0
- package/dist/modules/app.d.ts +9 -0
- package/dist/modules/app.d.ts.map +1 -0
- package/dist/modules/app.js +20 -0
- package/dist/modules/app.js.map +1 -0
- package/dist/modules/browser-test.d.ts +9 -0
- package/dist/modules/browser-test.d.ts.map +1 -0
- package/dist/modules/browser-test.js +67 -0
- package/dist/modules/browser-test.js.map +1 -0
- package/dist/modules/browser.d.ts +10 -0
- package/dist/modules/browser.d.ts.map +1 -0
- package/dist/modules/browser.js +89 -0
- package/dist/modules/browser.js.map +1 -0
- package/dist/modules/config.d.ts +9 -0
- package/dist/modules/config.d.ts.map +1 -0
- package/dist/modules/config.js +14 -0
- package/dist/modules/config.js.map +1 -0
- package/dist/modules/files.d.ts +9 -0
- package/dist/modules/files.d.ts.map +1 -0
- package/dist/modules/files.js +16 -0
- package/dist/modules/files.js.map +1 -0
- package/dist/modules/forms.d.ts +9 -0
- package/dist/modules/forms.d.ts.map +1 -0
- package/dist/modules/forms.js +26 -0
- package/dist/modules/forms.js.map +1 -0
- package/dist/modules/http.d.ts +9 -0
- package/dist/modules/http.d.ts.map +1 -0
- package/dist/modules/http.js +127 -0
- package/dist/modules/http.js.map +1 -0
- package/dist/modules/look.d.ts +9 -0
- package/dist/modules/look.d.ts.map +1 -0
- package/dist/modules/look.js +58 -0
- package/dist/modules/look.js.map +1 -0
- package/dist/modules/realtime.d.ts +9 -0
- package/dist/modules/realtime.d.ts.map +1 -0
- package/dist/modules/realtime.js +163 -0
- package/dist/modules/realtime.js.map +1 -0
- package/dist/modules/storage.d.ts +9 -0
- package/dist/modules/storage.d.ts.map +1 -0
- package/dist/modules/storage.js +59 -0
- package/dist/modules/storage.js.map +1 -0
- package/dist/modules/types.d.ts +78 -0
- package/dist/modules/types.d.ts.map +1 -0
- package/dist/modules/types.js +154 -0
- package/dist/modules/types.js.map +1 -0
- package/dist/modules/web.d.ts +9 -0
- package/dist/modules/web.d.ts.map +1 -0
- package/dist/modules/web.js +63 -0
- package/dist/modules/web.js.map +1 -0
- package/dist/modules/websocket.d.ts +11 -0
- package/dist/modules/websocket.d.ts.map +1 -0
- package/dist/modules/websocket.js +75 -0
- package/dist/modules/websocket.js.map +1 -0
- package/dist/parser/expressions/jsx.d.ts +17 -0
- package/dist/parser/expressions/jsx.d.ts.map +1 -0
- package/dist/parser/expressions/jsx.js +43 -0
- package/dist/parser/expressions/jsx.js.map +1 -0
- package/dist/parser/expressions/keyframes.d.ts +15 -0
- package/dist/parser/expressions/keyframes.d.ts.map +1 -0
- package/dist/parser/expressions/keyframes.js +33 -0
- package/dist/parser/expressions/keyframes.js.map +1 -0
- package/dist/parser/expressions/look.d.ts +16 -0
- package/dist/parser/expressions/look.d.ts.map +1 -0
- package/dist/parser/expressions/look.js +37 -0
- package/dist/parser/expressions/look.js.map +1 -0
- package/dist/parser/expressions/visual-block.d.ts +17 -0
- package/dist/parser/expressions/visual-block.d.ts.map +1 -0
- package/dist/parser/expressions/visual-block.js +21 -0
- package/dist/parser/expressions/visual-block.js.map +1 -0
- package/dist/parser/keyframes-source.d.ts +24 -0
- package/dist/parser/keyframes-source.d.ts.map +1 -0
- package/dist/parser/keyframes-source.js +133 -0
- package/dist/parser/keyframes-source.js.map +1 -0
- package/dist/parser/look-source.d.ts +25 -0
- package/dist/parser/look-source.d.ts.map +1 -0
- package/dist/parser/look-source.js +189 -0
- package/dist/parser/look-source.js.map +1 -0
- package/dist/parser/spans.d.ts +24 -0
- package/dist/parser/spans.d.ts.map +1 -0
- package/dist/parser/spans.js +113 -0
- package/dist/parser/spans.js.map +1 -0
- package/dist/parser/statements/components.d.ts +37 -0
- package/dist/parser/statements/components.d.ts.map +1 -0
- package/dist/parser/statements/components.js +185 -0
- package/dist/parser/statements/components.js.map +1 -0
- package/dist/parser/statements/heads.d.ts +38 -0
- package/dist/parser/statements/heads.d.ts.map +1 -0
- package/dist/parser/statements/heads.js +55 -0
- package/dist/parser/statements/heads.js.map +1 -0
- package/dist/parser/statements/imports.d.ts +9 -0
- package/dist/parser/statements/imports.d.ts.map +1 -0
- package/dist/parser/statements/imports.js +31 -0
- package/dist/parser/statements/imports.js.map +1 -0
- package/dist/parser/statements/reactive.d.ts +31 -0
- package/dist/parser/statements/reactive.d.ts.map +1 -0
- package/dist/parser/statements/reactive.js +68 -0
- package/dist/parser/statements/reactive.js.map +1 -0
- package/dist/parser/statements/unsafe-css.d.ts +21 -0
- package/dist/parser/statements/unsafe-css.d.ts.map +1 -0
- package/dist/parser/statements/unsafe-css.js +42 -0
- package/dist/parser/statements/unsafe-css.js.map +1 -0
- package/dist/parser.d.ts +37 -50
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +98 -882
- package/dist/parser.js.map +1 -1
- package/dist/runtime-sources.generated.d.ts +1 -1
- package/dist/runtime-sources.generated.d.ts.map +1 -1
- package/dist/runtime-sources.generated.js +4 -4
- package/dist/runtime-sources.generated.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { LOOK_HOOKS, LOOK_MEDIA_SUBJECTS, LOOK_PROPERTIES, LOOK_PROPERTY_CSS_FUNCTIONS, LOOK_TARGETS, lookBuilderSupportsProperty, lookPropertyCompletionKeywords, } from "../look.js";
|
|
2
|
+
import { lookPropertyFamilies, unique } from "./completions.js";
|
|
3
|
+
/** What may be written at a caret inside a `look:` block. */
|
|
4
|
+
export function completeLook(look, context) {
|
|
5
|
+
if (look.kind === "property") {
|
|
6
|
+
return {
|
|
7
|
+
context: "look-property",
|
|
8
|
+
completions: [...LOOK_PROPERTIES]
|
|
9
|
+
.filter((property) => property.startsWith(look.prefix))
|
|
10
|
+
.map((property) => ({
|
|
11
|
+
label: property,
|
|
12
|
+
detail: `${lookPropertyFamilies.get(property) ?? "visual"} Look property`,
|
|
13
|
+
kind: "field",
|
|
14
|
+
})),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
if (look.kind === "value") {
|
|
18
|
+
const keywords = lookPropertyCompletionKeywords(look.property)
|
|
19
|
+
.filter((keyword) => keyword.startsWith(look.prefix))
|
|
20
|
+
.map((keyword) => ({
|
|
21
|
+
label: JSON.stringify(keyword),
|
|
22
|
+
detail: `${look.property} keyword`,
|
|
23
|
+
kind: "field",
|
|
24
|
+
filterText: keyword,
|
|
25
|
+
insertText: look.quoted ? keyword : JSON.stringify(keyword),
|
|
26
|
+
}));
|
|
27
|
+
const cssFunctions = [...LOOK_PROPERTY_CSS_FUNCTIONS.get(look.property) ?? []]
|
|
28
|
+
.filter((item) => item.name.startsWith(look.prefix))
|
|
29
|
+
.map((item) => ({
|
|
30
|
+
label: `${item.name}()`,
|
|
31
|
+
detail: `CSS function available for ${look.property}`,
|
|
32
|
+
kind: "function",
|
|
33
|
+
presentationKind: "function",
|
|
34
|
+
filterText: `${item.name}()`,
|
|
35
|
+
insertText: look.quoted ? item.example : JSON.stringify(item.example),
|
|
36
|
+
}));
|
|
37
|
+
const builders = (look.quoted ? [] : context.visibleSymbols)
|
|
38
|
+
.filter((symbol) => symbol.importSource === "velar/look"
|
|
39
|
+
&& symbol.importedName !== undefined
|
|
40
|
+
&& lookBuilderSupportsProperty(symbol.importedName, look.property)
|
|
41
|
+
&& symbol.label.startsWith(look.prefix))
|
|
42
|
+
.map((symbol) => ({
|
|
43
|
+
label: symbol.label,
|
|
44
|
+
detail: `${symbol.detail} · ${symbol.importedName} from velar/look`,
|
|
45
|
+
kind: symbol.kind,
|
|
46
|
+
presentationKind: "function",
|
|
47
|
+
filterText: symbol.label,
|
|
48
|
+
...(symbol.documentation ? { documentation: symbol.documentation } : {}),
|
|
49
|
+
}));
|
|
50
|
+
return { context: "look-value", completions: unique([...builders, ...keywords, ...cssFunctions]) };
|
|
51
|
+
}
|
|
52
|
+
if (look.kind === "target") {
|
|
53
|
+
return {
|
|
54
|
+
context: "look-target",
|
|
55
|
+
completions: [...LOOK_TARGETS]
|
|
56
|
+
.filter((target) => target.startsWith(look.prefix))
|
|
57
|
+
.map((target) => ({
|
|
58
|
+
label: `@${target}:`,
|
|
59
|
+
detail: "Look pseudo-element target",
|
|
60
|
+
kind: "field",
|
|
61
|
+
filterText: `@${target}`,
|
|
62
|
+
insertText: `@${target}:`,
|
|
63
|
+
})),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
if (look.kind === "hook") {
|
|
67
|
+
return {
|
|
68
|
+
context: "look-hook",
|
|
69
|
+
completions: [...LOOK_HOOKS]
|
|
70
|
+
.filter((hook) => hook.startsWith(look.prefix))
|
|
71
|
+
.map((hook) => ({
|
|
72
|
+
label: `@${hook}`,
|
|
73
|
+
detail: "Look state condition",
|
|
74
|
+
kind: "field",
|
|
75
|
+
filterText: `@${hook}`,
|
|
76
|
+
insertText: `@${hook}:`,
|
|
77
|
+
})),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (look.kind === "media") {
|
|
81
|
+
const conditions = [...LOOK_MEDIA_SUBJECTS].flatMap(([subject, features]) => [...features].map((feature) => {
|
|
82
|
+
const label = `${subject}.${feature}`;
|
|
83
|
+
return {
|
|
84
|
+
label,
|
|
85
|
+
detail: "Look media condition",
|
|
86
|
+
kind: "field",
|
|
87
|
+
filterText: label,
|
|
88
|
+
insertText: subject === "viewport" ? `${label} <= ` : `${label}:`,
|
|
89
|
+
};
|
|
90
|
+
}));
|
|
91
|
+
return {
|
|
92
|
+
context: "look-media",
|
|
93
|
+
completions: conditions.filter((condition) => condition.label.startsWith(look.prefix)),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
export function lookCompletionContextAt(source, offset) {
|
|
99
|
+
const end = Math.min(Math.max(0, offset), source.length);
|
|
100
|
+
const lineStart = end === 0 ? 0 : source.lastIndexOf("\n", end - 1) + 1;
|
|
101
|
+
const linePrefix = source.slice(lineStart, end);
|
|
102
|
+
const indentation = /^[ \t]*/u.exec(linePrefix)?.[0] ?? "";
|
|
103
|
+
if (!insideLookBlock(source, lineStart, indentationWidth(indentation)))
|
|
104
|
+
return null;
|
|
105
|
+
const body = linePrefix.slice(indentation.length);
|
|
106
|
+
const assignment = /^([A-Za-z][A-Za-z0-9]*)\s*=\s*(.*)$/u.exec(body);
|
|
107
|
+
if (assignment) {
|
|
108
|
+
const property = assignment[1];
|
|
109
|
+
if (!LOOK_PROPERTIES.has(property))
|
|
110
|
+
return { kind: "value", property, prefix: "", quoted: false };
|
|
111
|
+
const value = assignment[2];
|
|
112
|
+
const quoted = /^(["'])([^"']*)$/u.exec(value);
|
|
113
|
+
if (quoted)
|
|
114
|
+
return { kind: "value", property, prefix: quoted[2], quoted: true };
|
|
115
|
+
return /^[A-Za-z0-9_-]*$/u.test(value)
|
|
116
|
+
? { kind: "value", property, prefix: value, quoted: false }
|
|
117
|
+
: null;
|
|
118
|
+
}
|
|
119
|
+
const target = /^@([A-Za-z][A-Za-z0-9]*)?$/u.exec(body);
|
|
120
|
+
if (target)
|
|
121
|
+
return { kind: "target", prefix: target[1] ?? "" };
|
|
122
|
+
const hook = /^if\s+@([A-Za-z][A-Za-z0-9]*)?$/u.exec(body);
|
|
123
|
+
if (hook)
|
|
124
|
+
return { kind: "hook", prefix: hook[1] ?? "" };
|
|
125
|
+
const media = /^if\s+([A-Za-z][A-Za-z0-9.]*)?$/u.exec(body);
|
|
126
|
+
if (media)
|
|
127
|
+
return { kind: "media", prefix: media[1] ?? "" };
|
|
128
|
+
const property = /^([A-Za-z][A-Za-z0-9]*)?$/u.exec(body);
|
|
129
|
+
return property ? { kind: "property", prefix: property[1] ?? "" } : null;
|
|
130
|
+
}
|
|
131
|
+
function insideLookBlock(source, lineStart, currentIndent) {
|
|
132
|
+
const lines = source.slice(0, lineStart).split("\n");
|
|
133
|
+
let childIndent = currentIndent;
|
|
134
|
+
for (let index = lines.length - 2; index >= 0; index -= 1) {
|
|
135
|
+
const line = lines[index];
|
|
136
|
+
if (line.trim().length === 0)
|
|
137
|
+
continue;
|
|
138
|
+
const indentation = /^[ \t]*/u.exec(line)?.[0] ?? "";
|
|
139
|
+
const indent = indentationWidth(indentation);
|
|
140
|
+
if (indent >= childIndent)
|
|
141
|
+
continue;
|
|
142
|
+
const body = line.slice(indentation.length).trimEnd();
|
|
143
|
+
if (/(?:=\s*|\breturn\s+)look\s*:\s*$/u.test(body))
|
|
144
|
+
return true;
|
|
145
|
+
if (/^(?:if\b.+|else|@[A-Za-z][A-Za-z0-9]*)\s*:\s*$/u.test(body)) {
|
|
146
|
+
childIndent = indent;
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
function indentationWidth(indentation) {
|
|
154
|
+
let width = 0;
|
|
155
|
+
for (const character of indentation)
|
|
156
|
+
width += character === "\t" ? 4 - (width % 4) : 1;
|
|
157
|
+
return width;
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=look-completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"look-completion.js","sourceRoot":"","sources":["../../src/editor/look-completion.ts"],"names":[],"mappings":"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"}
|
package/dist/editor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,8BAA8B,EAE/B,MAAM,iCAAiC,CAAC;AA8EzC,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExE,CAAC;AAEH,eAAO,MAAM,8BAA8B,EAAE,8BAG3C,CAAC"}
|
package/dist/editor.js
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
import { LOOK_BUILDER_SIGNATURES, LOOK_LARGE_KEYWORD_SETS, LOOK_PROPERTIES,
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
"strong", "textarea", "ul",
|
|
6
|
-
];
|
|
7
|
-
const nativeSvgTags = [
|
|
8
|
-
"svg", "g", "defs", "symbol", "use", "path", "rect", "circle", "ellipse", "line", "polyline", "polygon",
|
|
9
|
-
"text", "tspan", "title", "desc", "clipPath", "mask", "pattern", "linearGradient", "radialGradient", "stop",
|
|
10
|
-
"filter", "foreignObject",
|
|
11
|
-
];
|
|
12
|
-
const svgElementNames = new Set(nativeSvgTags);
|
|
13
|
-
const lookPropertyFamilies = new Map(LOOK_PROPERTY_GROUPS.flatMap((group) => group.properties.map((property) => [property, group.family])));
|
|
1
|
+
import { LOOK_BUILDER_SIGNATURES, LOOK_LARGE_KEYWORD_SETS, LOOK_PROPERTIES, LOOK_PROPERTY_CSS_FUNCTIONS, LOOK_PROPERTY_VALUE_KINDS, lookPropertyDocumentationKey, lookBuilderSupportsProperty, lookPropertyCompletionKeywords, } from "./look.js";
|
|
2
|
+
import { lookPropertyFamilies } from "./editor/completions.js";
|
|
3
|
+
import { completeJsx } from "./editor/jsx-completion.js";
|
|
4
|
+
import { completeLook, lookCompletionContextAt } from "./editor/look-completion.js";
|
|
14
5
|
const lookPropertyValueTypes = Object.freeze({
|
|
15
6
|
animation: ["Animation", "List<Animation>"],
|
|
16
7
|
angle: ["Angle", "listed keyword"],
|
|
@@ -71,291 +62,24 @@ function lookPropertyDocumentation(property) {
|
|
|
71
62
|
return lines.join("\n");
|
|
72
63
|
}
|
|
73
64
|
export const webLookPropertyDocumentation = Object.freeze(Object.fromEntries([...LOOK_PROPERTIES].map((property) => [lookPropertyDocumentationKey(property), lookPropertyDocumentation(property)])));
|
|
74
|
-
const jsxControlCompletions = [
|
|
75
|
-
{ label: "key", detail: "stable JSX list key", kind: "field" },
|
|
76
|
-
{ label: "ref", detail: "typed Handle exposed by this component", kind: "field" },
|
|
77
|
-
...[...LOOK_PROPERTIES].sort().map((property) => ({
|
|
78
|
-
label: `look:${property}`,
|
|
79
|
-
detail: "inline checked Look property",
|
|
80
|
-
kind: "field",
|
|
81
|
-
})),
|
|
82
|
-
...[...LOOK_PROPERTIES].sort().map((property) => ({
|
|
83
|
-
label: `style:${property}`,
|
|
84
|
-
detail: "high-priority inline Style compatibility override; prefer Look",
|
|
85
|
-
kind: "field",
|
|
86
|
-
})),
|
|
87
|
-
];
|
|
88
|
-
const nativeJsxCompletions = [
|
|
89
|
-
...["id", "class", "title", "role", "aria-label", "aria-labelledby", "ref"].map((label) => ({ label, detail: "native Web attribute", kind: "field" })),
|
|
90
|
-
...["on:click", "on:input", "on:change", "on:keydown", "on:submit.prevent"].map((label) => ({ label, detail: "typed native Web event", kind: "field" })),
|
|
91
|
-
{ label: "look", detail: "checked Look value", kind: "field" },
|
|
92
|
-
{ label: "bind:value", detail: "two-way string/number form binding", kind: "field" },
|
|
93
|
-
{ label: "bind:checked", detail: "two-way boolean form binding", kind: "field" },
|
|
94
|
-
{ label: "bind:group", detail: "two-way radio or checkbox group binding", kind: "field" },
|
|
95
|
-
{ label: "class:", detail: "reactive class directive", kind: "field" },
|
|
96
|
-
{ label: "unsafe:html", detail: "explicit unsafe HTML boundary", kind: "field" },
|
|
97
|
-
...jsxControlCompletions,
|
|
98
|
-
];
|
|
99
|
-
const nativeSvgCompletions = [
|
|
100
|
-
...["viewBox", "preserveAspectRatio", "d", "x", "y", "x1", "y1", "x2", "y2", "cx", "cy", "r", "rx", "ry",
|
|
101
|
-
"width", "height", "points", "transform", "fill", "stroke", "stroke-width", "text-anchor", "href"]
|
|
102
|
-
.map((label) => ({ label, detail: "native SVG attribute", kind: "field" })),
|
|
103
|
-
{ label: "aria-hidden", detail: "explicit decorative SVG", kind: "field" },
|
|
104
|
-
];
|
|
105
65
|
export const velarWebProjectEditorExtension = Object.freeze({
|
|
106
66
|
complete: completeWebProject,
|
|
107
67
|
protectRename: protectWebRename,
|
|
108
68
|
});
|
|
69
|
+
/**
|
|
70
|
+
* The caret is inside a `look:` block or it is inside JSX; the two families
|
|
71
|
+
* answer for their own positions and this only says which one is asked.
|
|
72
|
+
*/
|
|
109
73
|
function completeWebProject(context) {
|
|
110
74
|
const look = lookCompletionContextAt(context.source, context.offset);
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
.filter((property) => property.startsWith(look.prefix))
|
|
116
|
-
.map((property) => ({
|
|
117
|
-
label: property,
|
|
118
|
-
detail: `${lookPropertyFamilies.get(property) ?? "visual"} Look property`,
|
|
119
|
-
kind: "field",
|
|
120
|
-
})),
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
if (look?.kind === "value") {
|
|
124
|
-
const keywords = lookPropertyCompletionKeywords(look.property)
|
|
125
|
-
.filter((keyword) => keyword.startsWith(look.prefix))
|
|
126
|
-
.map((keyword) => ({
|
|
127
|
-
label: JSON.stringify(keyword),
|
|
128
|
-
detail: `${look.property} keyword`,
|
|
129
|
-
kind: "field",
|
|
130
|
-
filterText: keyword,
|
|
131
|
-
insertText: look.quoted ? keyword : JSON.stringify(keyword),
|
|
132
|
-
}));
|
|
133
|
-
const cssFunctions = [...LOOK_PROPERTY_CSS_FUNCTIONS.get(look.property) ?? []]
|
|
134
|
-
.filter((item) => item.name.startsWith(look.prefix))
|
|
135
|
-
.map((item) => ({
|
|
136
|
-
label: `${item.name}()`,
|
|
137
|
-
detail: `CSS function available for ${look.property}`,
|
|
138
|
-
kind: "function",
|
|
139
|
-
presentationKind: "function",
|
|
140
|
-
filterText: `${item.name}()`,
|
|
141
|
-
insertText: look.quoted ? item.example : JSON.stringify(item.example),
|
|
142
|
-
}));
|
|
143
|
-
const builders = (look.quoted ? [] : context.visibleSymbols)
|
|
144
|
-
.filter((symbol) => symbol.importSource === "velar/look"
|
|
145
|
-
&& symbol.importedName !== undefined
|
|
146
|
-
&& lookBuilderSupportsProperty(symbol.importedName, look.property)
|
|
147
|
-
&& symbol.label.startsWith(look.prefix))
|
|
148
|
-
.map((symbol) => ({
|
|
149
|
-
label: symbol.label,
|
|
150
|
-
detail: `${symbol.detail} · ${symbol.importedName} from velar/look`,
|
|
151
|
-
kind: symbol.kind,
|
|
152
|
-
presentationKind: "function",
|
|
153
|
-
filterText: symbol.label,
|
|
154
|
-
...(symbol.documentation ? { documentation: symbol.documentation } : {}),
|
|
155
|
-
}));
|
|
156
|
-
return { context: "look-value", completions: unique([...builders, ...keywords, ...cssFunctions]) };
|
|
157
|
-
}
|
|
158
|
-
if (look?.kind === "target") {
|
|
159
|
-
return {
|
|
160
|
-
context: "look-target",
|
|
161
|
-
completions: [...LOOK_TARGETS]
|
|
162
|
-
.filter((target) => target.startsWith(look.prefix))
|
|
163
|
-
.map((target) => ({
|
|
164
|
-
label: `@${target}:`,
|
|
165
|
-
detail: "Look pseudo-element target",
|
|
166
|
-
kind: "field",
|
|
167
|
-
filterText: `@${target}`,
|
|
168
|
-
insertText: `@${target}:`,
|
|
169
|
-
})),
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
if (look?.kind === "hook") {
|
|
173
|
-
return {
|
|
174
|
-
context: "look-hook",
|
|
175
|
-
completions: [...LOOK_HOOKS]
|
|
176
|
-
.filter((hook) => hook.startsWith(look.prefix))
|
|
177
|
-
.map((hook) => ({
|
|
178
|
-
label: `@${hook}`,
|
|
179
|
-
detail: "Look state condition",
|
|
180
|
-
kind: "field",
|
|
181
|
-
filterText: `@${hook}`,
|
|
182
|
-
insertText: `@${hook}:`,
|
|
183
|
-
})),
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
if (look?.kind === "media") {
|
|
187
|
-
const conditions = [...LOOK_MEDIA_SUBJECTS].flatMap(([subject, features]) => [...features].map((feature) => {
|
|
188
|
-
const label = `${subject}.${feature}`;
|
|
189
|
-
return {
|
|
190
|
-
label,
|
|
191
|
-
detail: "Look media condition",
|
|
192
|
-
kind: "field",
|
|
193
|
-
filterText: label,
|
|
194
|
-
insertText: subject === "viewport" ? `${label} <= ` : `${label}:`,
|
|
195
|
-
};
|
|
196
|
-
}));
|
|
197
|
-
return {
|
|
198
|
-
context: "look-media",
|
|
199
|
-
completions: conditions.filter((condition) => condition.label.startsWith(look.prefix)),
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
const tag = jsxTagContextAt(context.source, context.offset);
|
|
203
|
-
if (tag) {
|
|
204
|
-
const components = context.visibleSymbols.filter((symbol) => symbol.kind === "extension:function:web-component"
|
|
205
|
-
|| (symbol.kind === "import" && symbol.detail.startsWith("component ")));
|
|
206
|
-
return {
|
|
207
|
-
context: "jsx-tag",
|
|
208
|
-
completions: unique([
|
|
209
|
-
...components,
|
|
210
|
-
...nativeJsxTags.map((label) => ({ label, detail: "native Web element", kind: "extension:function:web-component", presentationKind: "class" })),
|
|
211
|
-
...nativeSvgTags.map((label) => ({ label, detail: "native SVG element", kind: "extension:function:web-component", presentationKind: "class" })),
|
|
212
|
-
]).filter((item) => item.label.startsWith(tag.prefix)),
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
const attribute = jsxAttributeContextAt(context.source, context.offset);
|
|
216
|
-
if (!attribute)
|
|
217
|
-
return undefined;
|
|
218
|
-
const common = attribute.component
|
|
219
|
-
? jsxControlCompletions
|
|
220
|
-
: svgElementNames.has(attribute.tag)
|
|
221
|
-
? [...nativeSvgCompletions, ...nativeJsxCompletions]
|
|
222
|
-
: nativeJsxCompletions;
|
|
223
|
-
const component = attribute.component ? context.membersAt(attribute.tagOffset) : [];
|
|
224
|
-
return {
|
|
225
|
-
context: attribute.component ? "component-attribute" : "native-attribute",
|
|
226
|
-
completions: unique([...component, ...common]).filter((item) => !attribute.used.has(item.label)),
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
function lookCompletionContextAt(source, offset) {
|
|
230
|
-
const end = Math.min(Math.max(0, offset), source.length);
|
|
231
|
-
const lineStart = end === 0 ? 0 : source.lastIndexOf("\n", end - 1) + 1;
|
|
232
|
-
const linePrefix = source.slice(lineStart, end);
|
|
233
|
-
const indentation = /^[ \t]*/u.exec(linePrefix)?.[0] ?? "";
|
|
234
|
-
if (!insideLookBlock(source, lineStart, indentationWidth(indentation)))
|
|
235
|
-
return null;
|
|
236
|
-
const body = linePrefix.slice(indentation.length);
|
|
237
|
-
const assignment = /^([A-Za-z][A-Za-z0-9]*)\s*=\s*(.*)$/u.exec(body);
|
|
238
|
-
if (assignment) {
|
|
239
|
-
const property = assignment[1];
|
|
240
|
-
if (!LOOK_PROPERTIES.has(property))
|
|
241
|
-
return { kind: "value", property, prefix: "", quoted: false };
|
|
242
|
-
const value = assignment[2];
|
|
243
|
-
const quoted = /^(["'])([^"']*)$/u.exec(value);
|
|
244
|
-
if (quoted)
|
|
245
|
-
return { kind: "value", property, prefix: quoted[2], quoted: true };
|
|
246
|
-
return /^[A-Za-z0-9_-]*$/u.test(value)
|
|
247
|
-
? { kind: "value", property, prefix: value, quoted: false }
|
|
248
|
-
: null;
|
|
249
|
-
}
|
|
250
|
-
const target = /^@([A-Za-z][A-Za-z0-9]*)?$/u.exec(body);
|
|
251
|
-
if (target)
|
|
252
|
-
return { kind: "target", prefix: target[1] ?? "" };
|
|
253
|
-
const hook = /^if\s+@([A-Za-z][A-Za-z0-9]*)?$/u.exec(body);
|
|
254
|
-
if (hook)
|
|
255
|
-
return { kind: "hook", prefix: hook[1] ?? "" };
|
|
256
|
-
const media = /^if\s+([A-Za-z][A-Za-z0-9.]*)?$/u.exec(body);
|
|
257
|
-
if (media)
|
|
258
|
-
return { kind: "media", prefix: media[1] ?? "" };
|
|
259
|
-
const property = /^([A-Za-z][A-Za-z0-9]*)?$/u.exec(body);
|
|
260
|
-
return property ? { kind: "property", prefix: property[1] ?? "" } : null;
|
|
261
|
-
}
|
|
262
|
-
function insideLookBlock(source, lineStart, currentIndent) {
|
|
263
|
-
const lines = source.slice(0, lineStart).split("\n");
|
|
264
|
-
let childIndent = currentIndent;
|
|
265
|
-
for (let index = lines.length - 2; index >= 0; index -= 1) {
|
|
266
|
-
const line = lines[index];
|
|
267
|
-
if (line.trim().length === 0)
|
|
268
|
-
continue;
|
|
269
|
-
const indentation = /^[ \t]*/u.exec(line)?.[0] ?? "";
|
|
270
|
-
const indent = indentationWidth(indentation);
|
|
271
|
-
if (indent >= childIndent)
|
|
272
|
-
continue;
|
|
273
|
-
const body = line.slice(indentation.length).trimEnd();
|
|
274
|
-
if (/(?:=\s*|\breturn\s+)look\s*:\s*$/u.test(body))
|
|
275
|
-
return true;
|
|
276
|
-
if (/^(?:if\b.+|else|@[A-Za-z][A-Za-z0-9]*)\s*:\s*$/u.test(body)) {
|
|
277
|
-
childIndent = indent;
|
|
278
|
-
continue;
|
|
279
|
-
}
|
|
280
|
-
return false;
|
|
281
|
-
}
|
|
282
|
-
return false;
|
|
283
|
-
}
|
|
284
|
-
function indentationWidth(indentation) {
|
|
285
|
-
let width = 0;
|
|
286
|
-
for (const character of indentation)
|
|
287
|
-
width += character === "\t" ? 4 - (width % 4) : 1;
|
|
288
|
-
return width;
|
|
75
|
+
const lookCompletion = look ? completeLook(look, context) : undefined;
|
|
76
|
+
if (lookCompletion)
|
|
77
|
+
return lookCompletion;
|
|
78
|
+
return completeJsx(context);
|
|
289
79
|
}
|
|
290
80
|
function protectWebRename(context) {
|
|
291
81
|
return context.kind === "parameter" && context.containerKind === "extension:function:web-component" && context.name === "children"
|
|
292
82
|
? "The JSX children prop cannot be renamed"
|
|
293
83
|
: undefined;
|
|
294
84
|
}
|
|
295
|
-
function jsxTagContextAt(source, offset) {
|
|
296
|
-
const end = Math.min(Math.max(0, offset), source.length);
|
|
297
|
-
const before = source.slice(0, end);
|
|
298
|
-
const opening = before.lastIndexOf("<");
|
|
299
|
-
if (opening < 0 || before.lastIndexOf(">") > opening)
|
|
300
|
-
return null;
|
|
301
|
-
const match = /^<\/?([A-Za-z0-9_]*)$/u.exec(source.slice(opening, end));
|
|
302
|
-
return match ? { prefix: match[1] } : null;
|
|
303
|
-
}
|
|
304
|
-
function jsxAttributeContextAt(source, offset) {
|
|
305
|
-
const end = Math.min(Math.max(0, offset), source.length);
|
|
306
|
-
const before = source.slice(0, end);
|
|
307
|
-
const opening = before.lastIndexOf("<");
|
|
308
|
-
if (opening < 0 || before.lastIndexOf(">") > opening || source[opening + 1] === "/")
|
|
309
|
-
return null;
|
|
310
|
-
const fragment = source.slice(opening, end);
|
|
311
|
-
const tag = /^<([A-Za-z][A-Za-z0-9_]*)\b/u.exec(fragment);
|
|
312
|
-
if (!tag)
|
|
313
|
-
return null;
|
|
314
|
-
const attributesStart = tag[0].length;
|
|
315
|
-
let quote = null;
|
|
316
|
-
let depth = 0;
|
|
317
|
-
let escaped = false;
|
|
318
|
-
let visible = "";
|
|
319
|
-
for (const character of fragment.slice(attributesStart)) {
|
|
320
|
-
if (quote) {
|
|
321
|
-
visible += " ";
|
|
322
|
-
if (!escaped && character === quote)
|
|
323
|
-
quote = null;
|
|
324
|
-
escaped = !escaped && character === "\\";
|
|
325
|
-
if (character !== "\\")
|
|
326
|
-
escaped = false;
|
|
327
|
-
continue;
|
|
328
|
-
}
|
|
329
|
-
if (character === '"' || character === "'") {
|
|
330
|
-
quote = character;
|
|
331
|
-
visible += " ";
|
|
332
|
-
continue;
|
|
333
|
-
}
|
|
334
|
-
if (character === "{") {
|
|
335
|
-
depth += 1;
|
|
336
|
-
visible += " ";
|
|
337
|
-
continue;
|
|
338
|
-
}
|
|
339
|
-
if (character === "}") {
|
|
340
|
-
depth = Math.max(0, depth - 1);
|
|
341
|
-
visible += " ";
|
|
342
|
-
continue;
|
|
343
|
-
}
|
|
344
|
-
visible += depth === 0 ? character : " ";
|
|
345
|
-
}
|
|
346
|
-
if (quote || depth > 0)
|
|
347
|
-
return null;
|
|
348
|
-
const used = new Set();
|
|
349
|
-
for (const match of visible.matchAll(/([A-Za-z_][A-Za-z0-9_.:-]*)\s*(?==|\s|$)/gu))
|
|
350
|
-
used.add(match[1]);
|
|
351
|
-
return {
|
|
352
|
-
component: /^[A-Z]/u.test(tag[1]),
|
|
353
|
-
tag: tag[1],
|
|
354
|
-
tagOffset: opening + 1,
|
|
355
|
-
used,
|
|
356
|
-
};
|
|
357
|
-
}
|
|
358
|
-
function unique(items) {
|
|
359
|
-
return items.filter((item, index) => items.findIndex((candidate) => candidate.label === item.label) === index);
|
|
360
|
-
}
|
|
361
85
|
//# sourceMappingURL=editor.js.map
|
package/dist/editor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A `component` declaration, and the assignment to a state cell that lowers to
|
|
3
|
+
* a `set` rather than a store.
|
|
4
|
+
*
|
|
5
|
+
* D115 P4 R3d: the family owns the two statements whose lowering is the
|
|
6
|
+
* component instance itself — everything a component's body declares becomes
|
|
7
|
+
* one setup function, and the reactive assignment is the only statement whose
|
|
8
|
+
* meaning depends on what that body declared.
|
|
9
|
+
*/
|
|
10
|
+
import type { Expression, LoweringHints, Statement } from "@velarscript/compiler/extension";
|
|
11
|
+
import { type WebComponentDeclaration as ComponentDeclaration } from "../ast.ts";
|
|
12
|
+
type AssignmentStatement = Extract<Statement, {
|
|
13
|
+
readonly kind: "AssignmentStatement";
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* What component emission reads and writes on the emitter. `currentScope` and
|
|
17
|
+
* `currentJsxNamespace` are live: the body's JSX is emitted while they name the
|
|
18
|
+
* instance's scope, and every path restores what it found.
|
|
19
|
+
*/
|
|
20
|
+
export interface ComponentEmitHost {
|
|
21
|
+
currentJsxNamespace: string;
|
|
22
|
+
currentScope: string | null;
|
|
23
|
+
readonly hints: LoweringHints;
|
|
24
|
+
blockAlwaysReturns(statements: readonly Statement[]): boolean;
|
|
25
|
+
emitMappedExpression(expression: Expression): string;
|
|
26
|
+
emitMappedStatement(statement: Statement, depth: number): string;
|
|
27
|
+
emitParameter(name: string, defaultValue: Expression | null, rest?: boolean): string;
|
|
28
|
+
emitStatementLines(statements: readonly Statement[], depth: number): readonly string[];
|
|
29
|
+
}
|
|
30
|
+
export declare function emitComponent(host: ComponentEmitHost, statement: ComponentDeclaration, depth: number): string;
|
|
31
|
+
export declare function emitReactiveAssignment(host: ComponentEmitHost, statement: AssignmentStatement, depth: number): string | null;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/emit/components.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5F,OAAO,EAGL,KAAK,uBAAuB,IAAI,oBAAoB,EACrD,MAAM,WAAW,CAAC;AAEnB,KAAK,mBAAmB,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,CAAC;AAExF;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9D,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC;IACrD,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACjE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACrF,kBAAkB,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;CACxF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA0G7G;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU5H"}
|