@wire-dsl/language-support 0.2.3 → 0.3.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/INTEGRATION-GUIDE.md +50 -194
- package/README.md +39 -33
- package/dist/completions.d.ts.map +1 -1
- package/dist/completions.js +8 -1
- package/dist/completions.js.map +1 -1
- package/dist/components.d.ts +0 -6
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +80 -35
- package/dist/components.js.map +1 -1
- package/dist/context-detection.js +2 -2
- package/dist/context-detection.js.map +1 -1
- package/dist/document-parser.d.ts +12 -0
- package/dist/document-parser.d.ts.map +1 -1
- package/dist/document-parser.js +49 -0
- package/dist/document-parser.js.map +1 -1
- package/dist/documentation.js +1 -1
- package/dist/documentation.js.map +1 -1
- package/dist/icon-names.d.ts +8 -0
- package/dist/icon-names.d.ts.map +1 -0
- package/dist/icon-names.js +295 -0
- package/dist/icon-names.js.map +1 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -6
- package/dist/index.js.map +1 -1
- package/dist-cjs/completions.js +394 -0
- package/dist-cjs/completions.js.map +1 -0
- package/dist-cjs/components.js +495 -0
- package/dist-cjs/components.js.map +1 -0
- package/dist-cjs/context-detection.js +153 -0
- package/dist-cjs/context-detection.js.map +1 -0
- package/dist-cjs/document-parser.js +323 -0
- package/dist-cjs/document-parser.js.map +1 -0
- package/dist-cjs/documentation.js +133 -0
- package/dist-cjs/documentation.js.map +1 -0
- package/dist-cjs/icon-names.js +298 -0
- package/dist-cjs/icon-names.js.map +1 -0
- package/dist-cjs/index.js +114 -0
- package/dist-cjs/index.js.map +1 -0
- package/dist-cjs/package.json +1 -0
- package/package.json +14 -3
package/INTEGRATION-GUIDE.md
CHANGED
|
@@ -1,218 +1,74 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @wire-dsl/language-support Integration Guide
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This package is the single source of truth for Wire DSL language metadata.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## What You Get
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- component/layout metadata
|
|
8
|
+
- keyword/property catalogs
|
|
9
|
+
- completion helpers
|
|
10
|
+
- parser/context helpers for editor tooling
|
|
11
|
+
- typed icon catalog (`ICON_NAMES`, `IconName`)
|
|
8
12
|
|
|
9
|
-
|
|
10
|
-
packages/
|
|
11
|
-
├── language-support/ ← Nueva fuente centralizada
|
|
12
|
-
│ ├── src/
|
|
13
|
-
│ │ ├── index.ts # Keywords, componentes, propiedades
|
|
14
|
-
│ │ ├── grammar.ts # Configuración de tokens para Monaco
|
|
15
|
-
│ │ └── completions.ts # Lógica de autocompletado
|
|
16
|
-
│ ├── dist/ # JavaScript compilado
|
|
17
|
-
│ └── package.json
|
|
18
|
-
│
|
|
19
|
-
├── web/ # Wire Live Editor
|
|
20
|
-
│ ├── src/
|
|
21
|
-
│ │ └── monaco/
|
|
22
|
-
│ │ └── wireLanguage.ts # Usa @wire-dsl/language-support
|
|
23
|
-
│ └── package.json # Dependencia: @wire-dsl/language-support
|
|
24
|
-
│
|
|
25
|
-
└── vscode-extension/ # (Futuro) Usar language-support también
|
|
26
|
-
└── src/
|
|
27
|
-
├── completionProvider.ts
|
|
28
|
-
└── data/
|
|
29
|
-
└── components.ts
|
|
30
|
-
```
|
|
13
|
+
## Import Patterns
|
|
31
14
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
```typescript
|
|
35
|
-
// apps/web/src/monaco/wireLanguage.ts
|
|
36
|
-
import { ALL_KEYWORDS, getCompletions } from '@wire-dsl/language-support';
|
|
37
|
-
|
|
38
|
-
export function registerWireLanguage() {
|
|
39
|
-
// Usar keywords dinámicamente
|
|
40
|
-
const keywordPattern = ALL_KEYWORDS.map(kw => kw.name).join('|');
|
|
41
|
-
|
|
42
|
-
// Tokenizer usa el patrón
|
|
43
|
-
monaco.languages.setMonarchTokensProvider('wire', {
|
|
44
|
-
tokenizer: {
|
|
45
|
-
root: [
|
|
46
|
-
[new RegExp(`\\b(${keywordPattern})\\b`), 'keyword'],
|
|
47
|
-
// ...
|
|
48
|
-
],
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
// Autocompletado usa language-support
|
|
53
|
-
monaco.languages.registerCompletionItemProvider('wire', {
|
|
54
|
-
provideCompletionItems: (model, position) => {
|
|
55
|
-
const word = getWord(model, position);
|
|
56
|
-
return {
|
|
57
|
-
suggestions: getCompletions(word).map(item => ({
|
|
58
|
-
label: item.label,
|
|
59
|
-
kind: getKind(item.kind),
|
|
60
|
-
detail: item.documentation,
|
|
61
|
-
})),
|
|
62
|
-
};
|
|
63
|
-
},
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
```
|
|
15
|
+
### ESM
|
|
67
16
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
```typescript
|
|
73
|
-
// vscode-extension/src/completionProvider.ts
|
|
74
|
-
import {
|
|
75
|
-
getCompletions,
|
|
76
|
-
getContextualCompletions,
|
|
77
|
-
getCurrentWord
|
|
78
|
-
} from '@wire-dsl/language-support/completions';
|
|
79
|
-
|
|
80
|
-
export class WireCompletionProvider implements vscode.CompletionItemProvider {
|
|
81
|
-
provideCompletionItems(document, position) {
|
|
82
|
-
const line = document.lineAt(position.line).text;
|
|
83
|
-
const word = getCurrentWord(line, position.character);
|
|
84
|
-
|
|
85
|
-
// Usar completions del language-support
|
|
86
|
-
const suggestions = getContextualCompletions(line, word);
|
|
87
|
-
|
|
88
|
-
return suggestions.map(item => ({
|
|
89
|
-
label: item.label,
|
|
90
|
-
kind: vscode.CompletionItemKind[item.kind],
|
|
91
|
-
detail: item.detail,
|
|
92
|
-
documentation: item.documentation,
|
|
93
|
-
range: new vscode.Range(position, position),
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
}
|
|
17
|
+
```ts
|
|
18
|
+
import { COMPONENTS, LAYOUTS, getCompletions } from '@wire-dsl/language-support';
|
|
19
|
+
import { getContextualCompletions } from '@wire-dsl/language-support/completions';
|
|
97
20
|
```
|
|
98
21
|
|
|
99
|
-
###
|
|
100
|
-
|
|
101
|
-
```typescript
|
|
102
|
-
// vscode-extension/src/hoverProvider.ts
|
|
103
|
-
import { ALL_KEYWORDS } from '@wire-dsl/language-support';
|
|
104
|
-
|
|
105
|
-
export class WireHoverProvider implements vscode.HoverProvider {
|
|
106
|
-
provideHover(document, position) {
|
|
107
|
-
const word = document.getWordRangeAtPosition(position);
|
|
108
|
-
const text = document.getText(word);
|
|
109
|
-
|
|
110
|
-
// Buscar en language-support
|
|
111
|
-
const keyword = ALL_KEYWORDS.find(k => k.name === text);
|
|
112
|
-
if (!keyword) return null;
|
|
113
|
-
|
|
114
|
-
return new vscode.Hover(
|
|
115
|
-
`**${keyword.type}**: ${keyword.description}`
|
|
116
|
-
);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
```
|
|
22
|
+
### CommonJS
|
|
120
23
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
cd packages/vscode-extension
|
|
127
|
-
npm install @wire-dsl/language-support
|
|
24
|
+
```js
|
|
25
|
+
const { COMPONENTS, LAYOUTS, getCompletions } = require('@wire-dsl/language-support');
|
|
26
|
+
const { getContextualCompletions } = require('@wire-dsl/language-support/completions');
|
|
128
27
|
```
|
|
129
28
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
**Antes (hardcoded):**
|
|
133
|
-
```typescript
|
|
134
|
-
const COMPONENTS = ['button', 'text', 'input', ...];
|
|
135
|
-
const KEYWORDS = ['project', 'screen', 'component', ...];
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
**Después (dinámico):**
|
|
139
|
-
```typescript
|
|
140
|
-
import { ALL_KEYWORDS, getKeywordsByType } from '@wire-dsl/language-support';
|
|
141
|
-
|
|
142
|
-
const components = getKeywordsByType('component');
|
|
143
|
-
const keywords = getKeywordsByType('keyword');
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
## Ventajas
|
|
147
|
-
|
|
148
|
-
✅ **Single Source of Truth** - Una única definición de lenguaje
|
|
149
|
-
✅ **Menos duplicación** - Cambios se propagan automáticamente
|
|
150
|
-
✅ **Consistencia** - Todos los editores usan las mismas definiciones
|
|
151
|
-
✅ **Fácil mantenimiento** - Agregar componentes en un solo lugar
|
|
152
|
-
✅ **OSS-friendly** - Package público y reutilizable
|
|
153
|
-
✅ **Type-safe** - TypeScript types compartidos
|
|
29
|
+
## Editor Integration (Monaco / Custom)
|
|
154
30
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
31
|
+
```ts
|
|
32
|
+
import {
|
|
33
|
+
ALL_KEYWORDS,
|
|
34
|
+
COMPONENTS,
|
|
35
|
+
ICON_NAME_OPTIONS,
|
|
36
|
+
getCompletions,
|
|
37
|
+
} from '@wire-dsl/language-support';
|
|
158
38
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
// ... existing ...
|
|
163
|
-
{ name: 'new-component', type: 'component', description: 'New component' },
|
|
164
|
-
];
|
|
39
|
+
const keywordNames = ALL_KEYWORDS.map((k) => k.name);
|
|
40
|
+
const componentNames = Object.keys(COMPONENTS);
|
|
41
|
+
const iconOptions = ICON_NAME_OPTIONS;
|
|
165
42
|
```
|
|
166
43
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
44
|
+
Use `COMPONENTS` and `LAYOUTS` to drive:
|
|
45
|
+
- hover docs
|
|
46
|
+
- property completion
|
|
47
|
+
- enum completion
|
|
48
|
+
- validation hints
|
|
172
49
|
|
|
173
|
-
|
|
174
|
-
```bash
|
|
175
|
-
cd ../web && pnpm dev # Monaco lo carga automáticamente
|
|
176
|
-
cd ../vscode-extension && npm run compile # VS Code Extension
|
|
177
|
-
```
|
|
50
|
+
## Useful Subpaths
|
|
178
51
|
|
|
179
|
-
|
|
52
|
+
- `@wire-dsl/language-support/components`
|
|
53
|
+
- `@wire-dsl/language-support/completions`
|
|
54
|
+
- `@wire-dsl/language-support/grammar`
|
|
55
|
+
- `@wire-dsl/language-support/documentation`
|
|
56
|
+
- `@wire-dsl/language-support/document-parser`
|
|
57
|
+
- `@wire-dsl/language-support/context-detection`
|
|
180
58
|
|
|
181
|
-
|
|
182
|
-
// Main package
|
|
183
|
-
import {
|
|
184
|
-
KEYWORDS,
|
|
185
|
-
PROPERTIES,
|
|
186
|
-
ALL_KEYWORDS,
|
|
187
|
-
getKeywordsByType,
|
|
188
|
-
getCompletions,
|
|
189
|
-
} from '@wire-dsl/language-support';
|
|
59
|
+
## Icon Catalog
|
|
190
60
|
|
|
191
|
-
|
|
192
|
-
import {
|
|
61
|
+
```ts
|
|
62
|
+
import { ICON_NAMES, type IconName } from '@wire-dsl/language-support';
|
|
193
63
|
|
|
194
|
-
|
|
195
|
-
import {
|
|
196
|
-
KEYWORD_COMPLETIONS,
|
|
197
|
-
CONTAINER_COMPLETIONS,
|
|
198
|
-
COMPONENT_COMPLETIONS,
|
|
199
|
-
PROPERTY_COMPLETIONS,
|
|
200
|
-
getContextualCompletions,
|
|
201
|
-
isPropertyContext,
|
|
202
|
-
getCurrentWord,
|
|
203
|
-
} from '@wire-dsl/language-support/completions';
|
|
64
|
+
const first: IconName = ICON_NAMES[0];
|
|
204
65
|
```
|
|
205
66
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
1. ✅ Crear `@wire-dsl/language-support` (HECHO)
|
|
209
|
-
2. ✅ Integrar con Monaco Editor (HECHO)
|
|
210
|
-
3. ⏳ Integrar con VS Code Extension (Futuro)
|
|
211
|
-
4. ⏳ Publicar en NPM (Futuro)
|
|
212
|
-
5. ⏳ Crear Language Server Protocol (LSP) para mejor soporte
|
|
67
|
+
This is the same catalog used for metadata validation in icon-related properties.
|
|
213
68
|
|
|
214
|
-
##
|
|
69
|
+
## Recommended Flow for Tool Authors
|
|
215
70
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
-
|
|
71
|
+
1. use `COMPONENTS`/`LAYOUTS` as the schema source
|
|
72
|
+
2. use `getContextualCompletions` for smart suggestions
|
|
73
|
+
3. use `document-parser` + `context-detection` for richer editor features
|
|
74
|
+
4. keep tool docs synced with package metadata on each release
|
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# @wire-dsl/language-support
|
|
2
2
|
|
|
3
|
-
Shared language
|
|
3
|
+
Shared language metadata and tooling for Wire DSL.
|
|
4
|
+
|
|
5
|
+
It powers autocomplete, syntax metadata, grammar helpers, and document parsing across editors/tools.
|
|
4
6
|
|
|
5
7
|
## Installation
|
|
6
8
|
|
|
@@ -8,49 +10,53 @@ Shared language definitions for Wire DSL - used by Monaco Editor, VS Code, and C
|
|
|
8
10
|
npm install @wire-dsl/language-support
|
|
9
11
|
```
|
|
10
12
|
|
|
11
|
-
##
|
|
13
|
+
## Module Support
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
The package publishes both module formats:
|
|
16
|
+
- ESM (`import`)
|
|
17
|
+
- CommonJS (`require`)
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
const suggestions = getCompletions('but'); // → [button, ...]
|
|
19
|
+
## Quick Start
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
```ts
|
|
22
|
+
import {
|
|
23
|
+
ALL_KEYWORDS,
|
|
24
|
+
COMPONENTS,
|
|
25
|
+
LAYOUTS,
|
|
26
|
+
ICON_NAMES,
|
|
27
|
+
type IconName,
|
|
28
|
+
getCompletions,
|
|
29
|
+
} from '@wire-dsl/language-support';
|
|
30
|
+
|
|
31
|
+
const suggestions = getCompletions('tab');
|
|
22
32
|
```
|
|
23
33
|
|
|
24
|
-
##
|
|
34
|
+
## Main Exports
|
|
25
35
|
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
## Documentation
|
|
36
|
+
From `@wire-dsl/language-support`:
|
|
37
|
+
- `KEYWORDS`, `PROPERTIES`, `ALL_KEYWORDS`
|
|
38
|
+
- `COMPONENTS`, `LAYOUTS`, `PROPERTY_VALUES`
|
|
39
|
+
- `ICON_NAMES`, `ICON_NAME_OPTIONS`, `IconName`
|
|
40
|
+
- `getCompletions`, `getKeywordsByType`
|
|
32
41
|
|
|
33
|
-
|
|
34
|
-
-
|
|
42
|
+
Subpath exports:
|
|
43
|
+
- `@wire-dsl/language-support/components`
|
|
44
|
+
- `@wire-dsl/language-support/completions`
|
|
45
|
+
- `@wire-dsl/language-support/grammar`
|
|
46
|
+
- `@wire-dsl/language-support/documentation`
|
|
47
|
+
- `@wire-dsl/language-support/document-parser`
|
|
48
|
+
- `@wire-dsl/language-support/context-detection`
|
|
35
49
|
|
|
36
|
-
##
|
|
50
|
+
## Notes
|
|
37
51
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
export { ALL_KEYWORDS, KEYWORDS, PROPERTIES } from '@wire-dsl/language-support';
|
|
41
|
-
export { getCompletions, getKeywordsByType } from '@wire-dsl/language-support';
|
|
52
|
+
- `COMPONENTS` / `LAYOUTS` include the latest DSL metadata (for example `split` with `left`/`right`, `background`, `border`).
|
|
53
|
+
- Icon properties (`Icon.type`, `IconButton.icon`, `Topbar.icon`, `Image.icon`, `StatCard.icon`) are backed by a shared icon catalog.
|
|
42
54
|
|
|
43
|
-
|
|
44
|
-
export { MONACO_GRAMMAR, TOKENIZE_RULES } from '@wire-dsl/language-support/grammar';
|
|
45
|
-
|
|
46
|
-
// Advanced completions
|
|
47
|
-
export { getContextualCompletions } from '@wire-dsl/language-support/completions';
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Published Versions
|
|
55
|
+
## Documentation
|
|
51
56
|
|
|
52
|
-
-
|
|
57
|
+
- `INTEGRATION-GUIDE.md`
|
|
58
|
+
- `STRATEGY.md`
|
|
53
59
|
|
|
54
60
|
## License
|
|
55
61
|
|
|
56
|
-
MIT
|
|
62
|
+
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../src/completions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAGD,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAGlD,eAAO,MAAM,mBAAmB,EAAE,cAAc,EA6B/C,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,cAAc,EAoCjD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,cAAc,EAUjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,cAAc,EA8EhD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAItE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,GACf;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgBxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG7E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,oBAAoB,EAAE,CAU/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAcpF;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,aAAa,EAAE,MAAM,EACrB,oBAAoB,GAAE,MAAM,EAAO,GAClC,oBAAoB,EAAE,CAiBxB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,GACnB,oBAAoB,EAAE,CAgBxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,YAAY,GAAG,gBAAgB,GAAG,eAAe,GAAG,eAAe,GACzE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../src/completions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAGD,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAGlD,eAAO,MAAM,mBAAmB,EAAE,cAAc,EA6B/C,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,cAAc,EAoCjD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,cAAc,EAUjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,cAAc,EA8EhD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAItE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,GACf;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgBxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG7E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,oBAAoB,EAAE,CAU/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAcpF;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,aAAa,EAAE,MAAM,EACrB,oBAAoB,GAAE,MAAM,EAAO,GAClC,oBAAoB,EAAE,CAiBxB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,GACnB,oBAAoB,EAAE,CAgBxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,YAAY,GAAG,gBAAgB,GAAG,eAAe,GAAG,eAAe,GACzE,oBAAoB,EAAE,CA+FxB;;;;;;;;;;;;;;;AAED,wBAaE"}
|
package/dist/completions.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Autocomplete and IntelliSense Provider
|
|
3
3
|
* Shared completion logic for Monaco, VS Code, and other editors
|
|
4
4
|
*/
|
|
5
|
-
import { COMPONENTS } from './components';
|
|
5
|
+
import { COMPONENTS } from './components.js';
|
|
6
6
|
// Completion suggestions by context
|
|
7
7
|
export const KEYWORD_COMPLETIONS = [
|
|
8
8
|
{
|
|
@@ -319,6 +319,13 @@ export function getScopeBasedCompletions(scope) {
|
|
|
319
319
|
documentation: 'define Component "Name" { ... }',
|
|
320
320
|
insertText: 'define Component "${1:CustomName}" {\n\t$0\n}',
|
|
321
321
|
},
|
|
322
|
+
{
|
|
323
|
+
label: 'define layout',
|
|
324
|
+
kind: 'Keyword',
|
|
325
|
+
detail: 'Define custom layout',
|
|
326
|
+
documentation: 'define Layout "name" { layout stack { ... } }',
|
|
327
|
+
insertText: 'define Layout "${1:screen_default}" {\n\tlayout ${2:stack}(${3:direction: vertical}) {\n\t\tcomponent Children\n\t}\n}',
|
|
328
|
+
},
|
|
322
329
|
];
|
|
323
330
|
return topLevelCompletions;
|
|
324
331
|
}
|
package/dist/completions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completions.js","sourceRoot":"","sources":["../src/completions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAA8C,MAAM,
|
|
1
|
+
{"version":3,"file":"completions.js","sourceRoot":"","sources":["../src/completions.ts"],"names":[],"mappings":"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"}
|
package/dist/components.d.ts
CHANGED
package/dist/components.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,MAAM,GACN,OAAO,GACP,QAAQ,GACR,UAAU,CAAC;AAuDf,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAiWxD,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CA2DlD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CASpD,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;CAOpB,CAAC"}
|