@wire-dsl/language-support 0.0.2

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/dist/index.js ADDED
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Wire DSL Language Support
3
+ * Shared language definitions, syntax, and code intelligence for Monaco, VS Code, and other editors
4
+ */
5
+ // Import for internal use
6
+ import { COMPONENTS, KEYWORDS } from './components';
7
+ // Re-export new core modules
8
+ export { COMPONENTS, LAYOUTS, PROPERTY_VALUES, KEYWORDS, } from './components';
9
+ export { getComponentDocumentation, getLayoutDocumentation, getPropertyDocumentation, getKeywordDocumentation, } from './documentation';
10
+ export { extractComponentDefinitions, getTokenAtPosition, isComponentReference, extractComponentReferences, extractScreenDefinitions, getPositionOfDefinition, findComponentReferences, } from './document-parser';
11
+ export { determineScope, detectComponentContext, getComponentPropertiesForCompletion as getAvailableProperties, getAlreadyDeclaredProperties, } from './context-detection';
12
+ export { KEYWORD_COMPLETIONS, CONTAINER_COMPLETIONS, COMPONENT_COMPLETIONS, PROPERTY_COMPLETIONS, isPropertyContext, getComponentPropertiesForCompletion, getPropertyValueSuggestions, getScopeBasedCompletions, detectComponentKeyword, detectPropertyValueContext, getAvailableComponents, getComponentProperties, } from './completions';
13
+ // Build ALL_KEYWORDS using ACTUAL Wire DSL keywords
14
+ export const ALL_KEYWORDS = [
15
+ // Top-level keywords
16
+ ...KEYWORDS.topLevel.map(name => ({
17
+ name,
18
+ type: 'keyword',
19
+ description: `Wire DSL keyword: ${name}`,
20
+ })),
21
+ // Screen keyword
22
+ ...KEYWORDS.screen.map(name => ({
23
+ name,
24
+ type: 'keyword',
25
+ description: `Wire DSL keyword: ${name}`,
26
+ })),
27
+ // Layout keyword
28
+ ...KEYWORDS.layout.map(name => ({
29
+ name,
30
+ type: 'keyword',
31
+ description: `Wire DSL keyword: ${name}`,
32
+ })),
33
+ // Component keyword
34
+ ...KEYWORDS.component.map(name => ({
35
+ name,
36
+ type: 'keyword',
37
+ description: `Wire DSL keyword: ${name}`,
38
+ })),
39
+ // Cell keyword
40
+ ...KEYWORDS.cell.map(name => ({
41
+ name,
42
+ type: 'keyword',
43
+ description: `Wire DSL keyword: ${name}`,
44
+ })),
45
+ // Special keywords
46
+ ...KEYWORDS.special.map(name => ({
47
+ name,
48
+ type: 'keyword',
49
+ description: `Wire DSL keyword: ${name}`,
50
+ })),
51
+ // Components from metadata
52
+ ...Object.entries(COMPONENTS).map(([name, meta]) => ({
53
+ name,
54
+ type: 'component',
55
+ description: meta.description || `Component: ${name}`,
56
+ })),
57
+ ];
58
+ /**
59
+ * Get completions for a given prefix
60
+ * @param prefix Filter by prefix (e.g., 'but' → ['button', ...])
61
+ * @returns Array of completion suggestions
62
+ */
63
+ export function getCompletions(prefix = '') {
64
+ const lowerPrefix = prefix.toLowerCase();
65
+ return ALL_KEYWORDS
66
+ .filter(kw => kw.name.toLowerCase().startsWith(lowerPrefix))
67
+ .map(kw => ({
68
+ label: kw.name,
69
+ kind: kw.type === 'component' ? 'Class' : 'Keyword',
70
+ detail: kw.description,
71
+ documentation: kw.description,
72
+ sortText: kw.name,
73
+ }));
74
+ }
75
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,90 @@
1
+ {
2
+ "name": "@wire-dsl/language-support",
3
+ "version": "0.0.2",
4
+ "description": "Wire DSL language definitions for Monaco, VS Code, and other editors. Keywords, components, properties, autocompletion, grammar, and document parsing.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "engines": {
9
+ "node": ">=18.0.0"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.js",
14
+ "types": "./dist/index.d.ts"
15
+ },
16
+ "./completions": {
17
+ "import": "./dist/completions.js",
18
+ "types": "./dist/completions.d.ts"
19
+ },
20
+ "./grammar": {
21
+ "import": "./dist/grammar.js",
22
+ "types": "./dist/grammar.d.ts"
23
+ },
24
+ "./components": {
25
+ "import": "./dist/components.js",
26
+ "types": "./dist/components.d.ts"
27
+ },
28
+ "./documentation": {
29
+ "import": "./dist/documentation.js",
30
+ "types": "./dist/documentation.d.ts"
31
+ },
32
+ "./document-parser": {
33
+ "import": "./dist/document-parser.js",
34
+ "types": "./dist/document-parser.d.ts"
35
+ },
36
+ "./context-detection": {
37
+ "import": "./dist/context-detection.js",
38
+ "types": "./dist/context-detection.d.ts"
39
+ }
40
+ },
41
+ "files": [
42
+ "dist",
43
+ "wire.tmLanguage.json",
44
+ "README.md",
45
+ "LICENSE",
46
+ "INTEGRATION-GUIDE.md"
47
+ ],
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "https://github.com/Wire-DSL/wire-dsl.git",
51
+ "directory": "packages/language-support"
52
+ },
53
+ "bugs": {
54
+ "url": "https://github.com/Wire-DSL/wire-dsl/issues"
55
+ },
56
+ "homepage": "https://github.com/Wire-DSL/wire-dsl/tree/main/packages/language-support",
57
+ "publishConfig": {
58
+ "access": "public",
59
+ "registry": "https://registry.npmjs.org/"
60
+ },
61
+ "dependencies": {},
62
+ "devDependencies": {
63
+ "@types/node": "25.0.9",
64
+ "typescript": "5.9.3"
65
+ },
66
+ "keywords": [
67
+ "wire-dsl",
68
+ "language",
69
+ "syntax-highlighting",
70
+ "autocomplete",
71
+ "intellisense",
72
+ "monaco-editor",
73
+ "vscode-extension",
74
+ "lsp",
75
+ "code-intelligence",
76
+ "dsl",
77
+ "domain-specific-language",
78
+ "components",
79
+ "metadata",
80
+ "documentation",
81
+ "parser"
82
+ ],
83
+ "author": "Wire-DSL Contributors",
84
+ "license": "MIT",
85
+ "scripts": {
86
+ "build": "tsc",
87
+ "type-check": "tsc --noEmit",
88
+ "dev": "tsc --watch"
89
+ }
90
+ }