muddle/views/language.ts
2026-10-23 09:12:49 -04:00

93 lines
2.2 KiB
TypeScript

export interface LanguageCompletion {
label: string;
detail: string;
insertText: string;
}
export const SPUG_COMPLETIONS: LanguageCompletion[] = [
{
label: "props",
detail: "Typed component props",
insertText: "props\n ${1:name}: ${2:string}",
},
{
label: "javascript!",
detail: "Embedded TypeScript block",
insertText: "javascript!\n ${1:const value = true;}\nend",
},
{
label: "component",
detail: "SPUG component",
insertText: "component ${1:Name}",
},
{
label: "portal",
detail: "Named view-transition boundary",
insertText: "portal ${1:main}\n ${0}",
},
{
label: "anchor",
detail: "Relation identity",
insertText: "${1:li}@${2:item}() ${3:content}",
},
];
export const STCSS_COMPLETIONS: LanguageCompletion[] = [
{
label: "@responsive",
detail: "Mobile-first breakpoint",
insertText: "@responsive ${1:md} {\n ${2}\n}",
},
{
label: "@concentric",
detail: "Inherited child radius",
insertText: "@concentric ${1:1rem};",
},
{
label: "border-radius: concentric",
detail: "Concentric radii for children",
insertText: "border-radius: concentric ${1:1rem};",
},
{
label: "freeform-gradient",
detail: "Stacked radial gradients",
insertText:
"background-image: freeform-gradient(${1:#7c3aed} ${2:10%} ${3:50%}, ${4:f00} ${5:70%} ${6:40%});",
},
{
label: "$center",
detail: "Center a known size",
insertText: "$center(${1:30rem})",
},
{
label: "$offset",
detail: "Compose positional offsets",
insertText: "$offset(${1:$center(30rem)}, ${2:$pad})",
},
{ label: "$pad", detail: "Shared spacing token", insertText: "$pad(${1:1})" },
{
label: "position: fixed-center",
detail: "Fixed viewport center",
insertText: "position: fixed-center;",
},
{
label: "position: page-center",
detail: "Absolute containing-block center",
insertText: "position: page-center;",
},
{
label: "@predict",
detail: "Prerendered geometry",
insertText: "@predict max-width max-height transform;",
},
{
label: "$relate",
detail: "Predicted anchor metric",
insertText: '$relate[${1:width}](d"@${2:item}")',
},
{
label: "javascript!",
detail: "Compile-time values",
insertText: "javascript!\n const ${1:space} = ${2:'1rem'};\nend",
},
];