aurora-langium 0.0.21 → 0.1.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/dist/cjs/src/cli/cli-util.js +71 -0
- package/dist/cjs/src/cli/cli-util.js.map +1 -0
- package/dist/cjs/src/cli/generator.js +46 -0
- package/dist/cjs/src/cli/generator.js.map +1 -0
- package/dist/cjs/src/cli/main.js +74 -0
- package/dist/cjs/src/cli/main.js.map +1 -0
- package/dist/cjs/src/extension/main.js +123 -0
- package/dist/cjs/src/extension/main.js.map +1 -0
- package/dist/cjs/src/extension/src/parser/parser.js +17 -0
- package/dist/cjs/src/extension/src/parser/parser.js.map +1 -0
- package/dist/cjs/src/language/aurora-diagram-generator.js +150 -0
- package/dist/cjs/src/language/aurora-diagram-generator.js.map +1 -0
- package/dist/cjs/src/language/aurora-module.js +55 -0
- package/dist/cjs/src/language/aurora-module.js.map +1 -0
- package/dist/cjs/src/language/aurora-scope.js +54 -0
- package/dist/cjs/src/language/aurora-scope.js.map +1 -0
- package/dist/cjs/src/language/aurora-validator.js +30 -0
- package/dist/cjs/src/language/aurora-validator.js.map +1 -0
- package/dist/cjs/src/language/generated/ast.js +408 -0
- package/dist/cjs/src/language/generated/ast.js.map +1 -0
- package/dist/cjs/src/language/generated/grammar.js +2440 -0
- package/dist/{language → cjs/src/language}/generated/grammar.js.map +1 -1
- package/dist/cjs/src/language/generated/module.js +23 -0
- package/dist/cjs/src/language/generated/module.js.map +1 -0
- package/dist/cjs/src/language/main.js +35 -0
- package/dist/cjs/src/language/main.js.map +1 -0
- package/dist/cjs/test/linking/linking.test.js +46 -0
- package/dist/cjs/test/linking/linking.test.js.map +1 -0
- package/dist/cjs/test/parsing/custom-parsing.test.js +26 -0
- package/dist/cjs/test/parsing/custom-parsing.test.js.map +1 -0
- package/dist/cjs/test/validating/validating.test.js +54 -0
- package/dist/cjs/test/validating/validating.test.js.map +1 -0
- package/dist/esm/src/cli/cli-util.js.map +1 -0
- package/dist/esm/src/cli/generator.js.map +1 -0
- package/dist/{cli → esm/src/cli}/main.js +12 -5
- package/dist/esm/src/cli/main.js.map +1 -0
- package/dist/esm/src/extension/main.js.map +1 -0
- package/dist/esm/src/extension/src/parser/parser.js.map +1 -0
- package/dist/esm/src/language/aurora-diagram-generator.js.map +1 -0
- package/dist/esm/src/language/aurora-module.js.map +1 -0
- package/dist/esm/src/language/aurora-scope.js.map +1 -0
- package/dist/esm/src/language/aurora-validator.js.map +1 -0
- package/dist/esm/src/language/generated/ast.js.map +1 -0
- package/dist/esm/src/language/generated/grammar.js.map +1 -0
- package/dist/esm/src/language/generated/module.js.map +1 -0
- package/dist/esm/src/language/main.js.map +1 -0
- package/dist/esm/test/linking/linking.test.js +44 -0
- package/dist/esm/test/linking/linking.test.js.map +1 -0
- package/dist/esm/test/parsing/custom-parsing.test.js +24 -0
- package/dist/esm/test/parsing/custom-parsing.test.js.map +1 -0
- package/dist/esm/test/validating/validating.test.js +52 -0
- package/dist/esm/test/validating/validating.test.js.map +1 -0
- package/dist/{cli → types/src/cli}/main.d.ts +0 -1
- package/dist/types/test/linking/linking.test.d.ts +1 -0
- package/dist/types/test/parsing/custom-parsing.test.d.ts +1 -0
- package/dist/types/test/validating/validating.test.d.ts +1 -0
- package/package.json +8 -16
- package/src/cli/main.ts +15 -5
- package/dist/cli/cli-util.js.map +0 -1
- package/dist/cli/generator.js.map +0 -1
- package/dist/cli/main.js.map +0 -1
- package/dist/extension/main.js.map +0 -1
- package/dist/extension/src/parser/parser.js.map +0 -1
- package/dist/language/aurora-diagram-generator.js.map +0 -1
- package/dist/language/aurora-module.js.map +0 -1
- package/dist/language/aurora-scope.js.map +0 -1
- package/dist/language/aurora-validator.js.map +0 -1
- package/dist/language/generated/ast.js.map +0 -1
- package/dist/language/generated/module.js.map +0 -1
- package/dist/language/main.js.map +0 -1
- package/out/extension/main.cjs +0 -20945
- package/out/extension/main.cjs.map +0 -7
- package/out/language/main.cjs +0 -35137
- package/out/language/main.cjs.map +0 -7
- /package/dist/{cli → esm/src/cli}/cli-util.js +0 -0
- /package/dist/{cli → esm/src/cli}/generator.js +0 -0
- /package/dist/{extension → esm/src/extension}/main.js +0 -0
- /package/dist/{extension → esm/src/extension}/src/parser/parser.js +0 -0
- /package/dist/{language → esm/src/language}/aurora-diagram-generator.js +0 -0
- /package/dist/{language → esm/src/language}/aurora-module.js +0 -0
- /package/dist/{language → esm/src/language}/aurora-scope.js +0 -0
- /package/dist/{language → esm/src/language}/aurora-validator.js +0 -0
- /package/dist/{language → esm/src/language}/generated/ast.js +0 -0
- /package/dist/{language → esm/src/language}/generated/grammar.js +0 -0
- /package/dist/{language → esm/src/language}/generated/module.js +0 -0
- /package/dist/{language → esm/src/language}/main.js +0 -0
- /package/dist/{cli → types/src/cli}/cli-util.d.ts +0 -0
- /package/dist/{cli → types/src/cli}/generator.d.ts +0 -0
- /package/dist/{extension → types/src/extension}/main.d.ts +0 -0
- /package/dist/{extension → types/src/extension}/src/parser/parser.d.ts +0 -0
- /package/dist/{language → types/src/language}/aurora-diagram-generator.d.ts +0 -0
- /package/dist/{language → types/src/language}/aurora-module.d.ts +0 -0
- /package/dist/{language → types/src/language}/aurora-scope.d.ts +0 -0
- /package/dist/{language → types/src/language}/aurora-validator.d.ts +0 -0
- /package/dist/{language → types/src/language}/generated/ast.d.ts +0 -0
- /package/dist/{language → types/src/language}/generated/grammar.d.ts +0 -0
- /package/dist/{language → types/src/language}/generated/module.d.ts +0 -0
- /package/dist/{language → types/src/language}/main.d.ts +0 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.extractDestinationAndName = exports.extractAstNode = exports.extractDocument = void 0;
|
|
30
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
31
|
+
const path = __importStar(require("node:path"));
|
|
32
|
+
const fs = __importStar(require("node:fs"));
|
|
33
|
+
const langium_1 = require("langium");
|
|
34
|
+
async function extractDocument(fileName, services) {
|
|
35
|
+
var _a;
|
|
36
|
+
const extensions = services.LanguageMetaData.fileExtensions;
|
|
37
|
+
if (!extensions.includes(path.extname(fileName))) {
|
|
38
|
+
console.error(chalk_1.default.yellow(`Please choose a file with one of these extensions: ${extensions}.`));
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
if (!fs.existsSync(fileName)) {
|
|
42
|
+
console.error(chalk_1.default.red(`File ${fileName} does not exist.`));
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
const document = await services.shared.workspace.LangiumDocuments.getOrCreateDocument(langium_1.URI.file(path.resolve(fileName)));
|
|
46
|
+
await services.shared.workspace.DocumentBuilder.build([document], { validation: true });
|
|
47
|
+
const validationErrors = ((_a = document.diagnostics) !== null && _a !== void 0 ? _a : []).filter(e => e.severity === 1);
|
|
48
|
+
if (validationErrors.length > 0) {
|
|
49
|
+
console.error(chalk_1.default.red('There are validation errors:'));
|
|
50
|
+
for (const validationError of validationErrors) {
|
|
51
|
+
console.error(chalk_1.default.red(`line ${validationError.range.start.line + 1}: ${validationError.message} [${document.textDocument.getText(validationError.range)}]`));
|
|
52
|
+
}
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
return document;
|
|
56
|
+
}
|
|
57
|
+
exports.extractDocument = extractDocument;
|
|
58
|
+
async function extractAstNode(fileName, services) {
|
|
59
|
+
var _a;
|
|
60
|
+
return (_a = (await extractDocument(fileName, services)).parseResult) === null || _a === void 0 ? void 0 : _a.value;
|
|
61
|
+
}
|
|
62
|
+
exports.extractAstNode = extractAstNode;
|
|
63
|
+
function extractDestinationAndName(filePath, destination) {
|
|
64
|
+
filePath = path.basename(filePath, path.extname(filePath)).replace(/[.-]/g, '');
|
|
65
|
+
return {
|
|
66
|
+
destination: destination !== null && destination !== void 0 ? destination : path.join(path.dirname(filePath), 'generated'),
|
|
67
|
+
name: path.basename(filePath)
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
exports.extractDestinationAndName = extractDestinationAndName;
|
|
71
|
+
//# sourceMappingURL=cli-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-util.js","sourceRoot":"","sources":["../../../../src/cli/cli-util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAA0B;AAC1B,gDAAkC;AAClC,4CAA8B;AAC9B,qCAA8B;AAEvB,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,QAA6B;;IACjF,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC9C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,sDAAsD,UAAU,GAAG,CAAC,CAAC,CAAC;QACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,QAAQ,kBAAkB,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,aAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxH,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAExF,MAAM,gBAAgB,GAAG,CAAC,MAAA,QAAQ,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;IACpF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE;YAC5C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CACnB,QAAQ,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,eAAe,CAAC,OAAO,KAAK,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CACvI,CAAC,CAAC;SACN;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AA3BD,0CA2BC;AAEM,KAAK,UAAU,cAAc,CAAoB,QAAgB,EAAE,QAA6B;;IACnG,OAAO,MAAA,CAAC,MAAM,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,0CAAE,KAAU,CAAC;AAC/E,CAAC;AAFD,wCAEC;AAOD,SAAgB,yBAAyB,CAAC,QAAgB,EAAE,WAA+B;IACvF,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAChF,OAAO;QACH,WAAW,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;QAC1E,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAChC,CAAC;AACN,CAAC;AAND,8DAMC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.generateJavaScript = void 0;
|
|
27
|
+
const generate_1 = require("langium/generate");
|
|
28
|
+
const fs = __importStar(require("node:fs"));
|
|
29
|
+
const path = __importStar(require("node:path"));
|
|
30
|
+
const cli_util_js_1 = require("./cli-util.js");
|
|
31
|
+
function generateJavaScript(model, filePath, destination) {
|
|
32
|
+
const data = (0, cli_util_js_1.extractDestinationAndName)(filePath, destination);
|
|
33
|
+
const generatedFilePath = `${path.join(data.destination, data.name)}.js`;
|
|
34
|
+
const fileNode = (0, generate_1.expandToNode) `
|
|
35
|
+
"use strict";
|
|
36
|
+
|
|
37
|
+
${(0, generate_1.joinToNode)(model.imports, greeting => `console.log('Hello, ${greeting.importedNamespace}!');`, { appendNewLineIfNotEmpty: true })}
|
|
38
|
+
`.appendNewLineIfNotEmpty();
|
|
39
|
+
if (!fs.existsSync(data.destination)) {
|
|
40
|
+
fs.mkdirSync(data.destination, { recursive: true });
|
|
41
|
+
}
|
|
42
|
+
fs.writeFileSync(generatedFilePath, (0, generate_1.toString)(fileNode));
|
|
43
|
+
return generatedFilePath;
|
|
44
|
+
}
|
|
45
|
+
exports.generateJavaScript = generateJavaScript;
|
|
46
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/cli/generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAsE;AACtE,4CAA8B;AAC9B,gDAAkC;AAClC,+CAA0D;AAE1D,SAAgB,kBAAkB,CAAC,KAAU,EAAE,QAAgB,EAAE,WAA+B;IAC5F,MAAM,IAAI,GAAG,IAAA,uCAAyB,EAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9D,MAAM,iBAAiB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAEzE,MAAM,QAAQ,GAAG,IAAA,uBAAY,EAAA;;;UAGvB,IAAA,qBAAU,EAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,uBAAuB,QAAQ,CAAC,iBAAiB,MAAM,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;KACtI,CAAC,uBAAuB,EAAE,CAAC;IAE5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;QAClC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KACvD;IACD,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAA,mBAAQ,EAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAfD,gDAeC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.generateAction = exports.getAuroraServices = void 0;
|
|
30
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
31
|
+
const commander_1 = require("commander");
|
|
32
|
+
const module_js_1 = require("../language/generated/module.js");
|
|
33
|
+
const aurora_module_js_1 = require("../language/aurora-module.js");
|
|
34
|
+
const cli_util_js_1 = require("./cli-util.js");
|
|
35
|
+
const generator_js_1 = require("./generator.js");
|
|
36
|
+
const node_1 = require("langium/node");
|
|
37
|
+
const fs = __importStar(require("node:fs/promises"));
|
|
38
|
+
const path = __importStar(require("node:path"));
|
|
39
|
+
const __dirname = path.resolve();
|
|
40
|
+
const packagePath = path.resolve(__dirname, '..', '..', 'package.json');
|
|
41
|
+
async function loadPackageContent() {
|
|
42
|
+
const packageContent = await fs.readFile(packagePath, 'utf-8');
|
|
43
|
+
return JSON.parse(packageContent);
|
|
44
|
+
}
|
|
45
|
+
const getAuroraServices = async () => {
|
|
46
|
+
const services = await Promise.resolve((0, aurora_module_js_1.createAuroraServices)(node_1.NodeFileSystem));
|
|
47
|
+
return services;
|
|
48
|
+
};
|
|
49
|
+
exports.getAuroraServices = getAuroraServices;
|
|
50
|
+
const generateAction = async (fileName, opts) => {
|
|
51
|
+
const services = (0, aurora_module_js_1.createAuroraServices)(node_1.NodeFileSystem).Aurora;
|
|
52
|
+
const PCM = await (0, cli_util_js_1.extractAstNode)(fileName, services);
|
|
53
|
+
const generatedFilePath = (0, generator_js_1.generateJavaScript)(PCM, fileName, opts.destination);
|
|
54
|
+
console.log(chalk_1.default.green(`JavaScript code generated successfully: ${generatedFilePath}`));
|
|
55
|
+
};
|
|
56
|
+
exports.generateAction = generateAction;
|
|
57
|
+
async function main() {
|
|
58
|
+
const program = new commander_1.Command();
|
|
59
|
+
const packageContent = await loadPackageContent();
|
|
60
|
+
program.version(packageContent.version);
|
|
61
|
+
const fileExtensions = module_js_1.AuroraLanguageMetaData.fileExtensions.join(', ');
|
|
62
|
+
program
|
|
63
|
+
.command('generate')
|
|
64
|
+
.argument('<file>', `source file (possible file extensions: ${fileExtensions})`)
|
|
65
|
+
.option('-d, --destination <dir>', 'destination directory of generating')
|
|
66
|
+
.description('generates JavaScript code that prints "Hello, {name}!" for each greeting in a source file')
|
|
67
|
+
.action(exports.generateAction);
|
|
68
|
+
program.parse(process.argv);
|
|
69
|
+
}
|
|
70
|
+
main().catch(err => {
|
|
71
|
+
console.error(err);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../src/cli/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAA0B;AAC1B,yCAAoC;AACpC,+DAAyE;AACzE,mEAAoE;AACpE,+CAA+C;AAC/C,iDAAoD;AACpD,uCAA8C;AAC9C,qDAAuC;AACvC,gDAAkC;AAElC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAEjC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAExE,KAAK,UAAU,kBAAkB;IAC7B,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACtC,CAAC;AAEM,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;IACxC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAA,uCAAoB,EAAC,qBAAc,CAAC,CAAC,CAAC;IAC7E,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,cAAc,GAAG,KAAK,EAAE,QAAgB,EAAE,IAAqB,EAAiB,EAAE;IAC3F,MAAM,QAAQ,GAAG,IAAA,uCAAoB,EAAC,qBAAc,CAAC,CAAC,MAAM,CAAC;IAC7D,MAAM,GAAG,GAAG,MAAM,IAAA,4BAAc,EAAM,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,IAAA,iCAAkB,EAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2CAA2C,iBAAiB,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB;AAMF,KAAK,UAAU,IAAI;IACf,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC9B,MAAM,cAAc,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAElD,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAExC,MAAM,cAAc,GAAG,kCAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,OAAO;SACF,OAAO,CAAC,UAAU,CAAC;SACnB,QAAQ,CAAC,QAAQ,EAAE,0CAA0C,cAAc,GAAG,CAAC;SAC/E,MAAM,CAAC,yBAAyB,EAAE,qCAAqC,CAAC;SACxE,WAAW,CAAC,2FAA2F,CAAC;SACxG,MAAM,CAAC,sBAAc,CAAC,CAAC;IAE5B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.deactivate = exports.activate = void 0;
|
|
27
|
+
const vscode = __importStar(require("vscode"));
|
|
28
|
+
// import type * as vscode from 'vscode';
|
|
29
|
+
const path = __importStar(require("node:path"));
|
|
30
|
+
const node_js_1 = require("vscode-languageclient/node.js");
|
|
31
|
+
const sprotty_vscode_1 = require("sprotty-vscode");
|
|
32
|
+
const lsp_sprotty_view_provider_js_1 = require("sprotty-vscode/lib/lsp/lsp-sprotty-view-provider.js");
|
|
33
|
+
const vscode_messenger_1 = require("vscode-messenger");
|
|
34
|
+
let client;
|
|
35
|
+
class CustomLspSprottyViewProvider extends lsp_sprotty_view_provider_js_1.LspSprottyViewProvider {
|
|
36
|
+
createWebview(container) {
|
|
37
|
+
const webview = container.webview;
|
|
38
|
+
const localResourceRoots = [(0, sprotty_vscode_1.createFileUri)(this.options.extensionUri.fsPath, 'pack', 'diagram')];
|
|
39
|
+
webview.options = {
|
|
40
|
+
enableScripts: true,
|
|
41
|
+
localResourceRoots
|
|
42
|
+
};
|
|
43
|
+
const identifier = { clientId: 'aurora', diagramType: 'aurora', uri: 'aurora' };
|
|
44
|
+
webview.html = (0, sprotty_vscode_1.createWebviewHtml)(identifier, container, {
|
|
45
|
+
scriptUri: (0, sprotty_vscode_1.createFileUri)(this.options.extensionUri.fsPath, 'pack', 'diagram', 'main.js'),
|
|
46
|
+
cssUri: (0, sprotty_vscode_1.createFileUri)(this.options.extensionUri.fsPath, 'pack', 'diagram', 'main.css')
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// This function is called when the extension is activated.
|
|
51
|
+
function activate(context) {
|
|
52
|
+
console.log("Hello Activation...");
|
|
53
|
+
client = startLanguageClient(context);
|
|
54
|
+
// Register the focus command
|
|
55
|
+
context.subscriptions.push(vscode.commands.registerCommand('aurora.focus', () => {
|
|
56
|
+
// Handle focus action
|
|
57
|
+
console.log('Aurora focus command executed');
|
|
58
|
+
}));
|
|
59
|
+
// Set up webview view shown in the side panel
|
|
60
|
+
const webviewViewProvider = new CustomLspSprottyViewProvider({
|
|
61
|
+
extensionUri: context.extensionUri,
|
|
62
|
+
viewType: 'aurora',
|
|
63
|
+
languageClient: client,
|
|
64
|
+
supportedFileExtensions: ['.aurora'],
|
|
65
|
+
openActiveEditor: true,
|
|
66
|
+
messenger: new vscode_messenger_1.Messenger({ ignoreHiddenViews: false }),
|
|
67
|
+
});
|
|
68
|
+
context.subscriptions.push(vscode.window.registerWebviewViewProvider('aurora', webviewViewProvider, {
|
|
69
|
+
webviewOptions: { retainContextWhenHidden: true }
|
|
70
|
+
}));
|
|
71
|
+
(0, sprotty_vscode_1.registerDefaultCommands)(webviewViewProvider, context, { extensionPrefix: 'aurora' });
|
|
72
|
+
(0, sprotty_vscode_1.registerTextEditorSync)(webviewViewProvider, context);
|
|
73
|
+
}
|
|
74
|
+
exports.activate = activate;
|
|
75
|
+
// This function is called when the extension is deactivated.
|
|
76
|
+
function deactivate() {
|
|
77
|
+
if (client) {
|
|
78
|
+
return client.stop();
|
|
79
|
+
}
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
exports.deactivate = deactivate;
|
|
83
|
+
function startLanguageClient(context) {
|
|
84
|
+
const serverModule = context.asAbsolutePath(path.join('out', 'language', 'main.cjs'));
|
|
85
|
+
// The debug options for the server
|
|
86
|
+
// --inspect=6009: runs the server in Node's Inspector mode so VS Code can attach to the server for debugging.
|
|
87
|
+
// By setting `process.env.DEBUG_BREAK` to a truthy value, the language server will wait until a debugger is attached.
|
|
88
|
+
const debugOptions = { execArgv: ['--nolazy', `--inspect${process.env.DEBUG_BREAK ? '-brk' : ''}=${process.env.DEBUG_SOCKET || '6009'}`] };
|
|
89
|
+
// If the extension is launched in debug mode then the debug server options are used
|
|
90
|
+
// Otherwise the run options are used
|
|
91
|
+
const serverOptions = {
|
|
92
|
+
run: { module: serverModule, transport: node_js_1.TransportKind.ipc },
|
|
93
|
+
debug: { module: serverModule, transport: node_js_1.TransportKind.ipc, options: debugOptions }
|
|
94
|
+
};
|
|
95
|
+
// Options to control the language client
|
|
96
|
+
const clientOptions = {
|
|
97
|
+
documentSelector: [{ scheme: 'file', language: 'aurora' }],
|
|
98
|
+
synchronize: {
|
|
99
|
+
fileEvents: vscode.workspace.createFileSystemWatcher('**/*.aurora')
|
|
100
|
+
},
|
|
101
|
+
outputChannel: vscode.window.createOutputChannel('Aurora Language Server'),
|
|
102
|
+
initializationFailedHandler: (error) => {
|
|
103
|
+
console.error('Language server initialization failed:', error);
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
// Create the language client and start the client.
|
|
108
|
+
const client = new node_js_1.LanguageClient('aurora', 'Aurora', serverOptions, clientOptions);
|
|
109
|
+
// Start the client. This will also launch the server
|
|
110
|
+
// Add error handling
|
|
111
|
+
client.start().catch(error => {
|
|
112
|
+
console.error('Failed to start language client:', error);
|
|
113
|
+
vscode.window.showErrorMessage(`Failed to start Aurora language server: ${error.message}`);
|
|
114
|
+
});
|
|
115
|
+
// Add shutdown handling
|
|
116
|
+
context.subscriptions.push(client.onDidChangeState(event => {
|
|
117
|
+
if (event.newState === node_js_1.State.Stopped) {
|
|
118
|
+
console.log('Language server stopped');
|
|
119
|
+
}
|
|
120
|
+
}));
|
|
121
|
+
return client;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../src/extension/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseFromText = void 0;
|
|
4
|
+
const vscode_uri_1 = require("vscode-uri");
|
|
5
|
+
async function parseFromText(services, model, existingUri) {
|
|
6
|
+
var _a;
|
|
7
|
+
const metaData = services.LanguageMetaData;
|
|
8
|
+
const randomNumber = Math.floor(Math.random() * 10000000) + 1000000;
|
|
9
|
+
const uri = existingUri ? existingUri : vscode_uri_1.URI.parse(`file:///${randomNumber}${metaData.fileExtensions[0]}`);
|
|
10
|
+
const document = services.shared.workspace.LangiumDocumentFactory.fromString(model, uri);
|
|
11
|
+
services.shared.workspace.LangiumDocuments.addDocument(document);
|
|
12
|
+
await services.shared.workspace.DocumentBuilder.build([document], {});
|
|
13
|
+
(_a = document.parseResult.value.$container) === null || _a === void 0 ? void 0 : _a.$document;
|
|
14
|
+
return document.parseResult.value;
|
|
15
|
+
}
|
|
16
|
+
exports.parseFromText = parseFromText;
|
|
17
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../../../src/extension/src/parser/parser.ts"],"names":[],"mappings":";;;AAGA,2CAA8B;AAIvB,KAAK,UAAU,aAAa,CAAC,QAAwB,EAAE,KAAa,EAAE,WAAuB;;IAChG,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAA;IAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC;IACpE,MAAM,GAAG,GAAG,WAAW,CAAA,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA,gBAAG,CAAC,KAAK,CAAC,WAAW,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxG,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACxF,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAChE,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAG,CAAC,CAAA;IACtE,MAAA,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,0CAAE,SAAS,CAAA;IAChD,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAY,CAAA;AAC5C,CAAC;AATD,sCASC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuroraDiagramGenerator = exports.getNgoFilter = exports.addToNGOFilter = exports.clearNGOFilter = void 0;
|
|
4
|
+
const langium_sprotty_1 = require("langium-sprotty");
|
|
5
|
+
const langium_1 = require("langium");
|
|
6
|
+
var ngoFilter = [];
|
|
7
|
+
function clearNGOFilter() { ngoFilter = []; }
|
|
8
|
+
exports.clearNGOFilter = clearNGOFilter;
|
|
9
|
+
function addToNGOFilter(s) { ngoFilter = [...ngoFilter, ...s]; }
|
|
10
|
+
exports.addToNGOFilter = addToNGOFilter;
|
|
11
|
+
function getNgoFilter() { return ngoFilter; }
|
|
12
|
+
exports.getNgoFilter = getNgoFilter;
|
|
13
|
+
function listOfNarratives(a) {
|
|
14
|
+
return langium_1.AstUtils.streamAllContents(a)
|
|
15
|
+
.toArray()
|
|
16
|
+
.filter((i) => i.$type == "NL_STATEMENT");
|
|
17
|
+
}
|
|
18
|
+
class AuroraDiagramGenerator extends langium_sprotty_1.LangiumDiagramGenerator {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.ngoFilter = [];
|
|
22
|
+
}
|
|
23
|
+
updateNGOFilter(s) { {
|
|
24
|
+
ngoFilter = [...ngoFilter, ...s];
|
|
25
|
+
} }
|
|
26
|
+
generateRoot(args) {
|
|
27
|
+
const { document } = args;
|
|
28
|
+
const sm = document.parseResult.value;
|
|
29
|
+
let ic = sm.elements.filter(x => x.$type == "Issues").map(i => i).flatMap(x => x.coord);
|
|
30
|
+
let ngo = sm.elements.filter(x => x.$type == "Orders").map(i => i).flatMap(x => x.namedGroups);
|
|
31
|
+
let oc = ngo.filter(x => this.ngoFilter.indexOf(x.name.replace(":", "").trim()) === -1).flatMap(n => n.orders).filter(x => x.$type == "OrderCoordinate").map(x => x);
|
|
32
|
+
let nar = listOfNarratives(sm).filter(x => x.$container.$type != "ClinicalCoordinate" && x.$container.$type != "NamedGroupOrder" && x.$container.$type != "NamedGroupClinical");
|
|
33
|
+
return {
|
|
34
|
+
type: 'graph',
|
|
35
|
+
id: 'pcm',
|
|
36
|
+
children: [
|
|
37
|
+
...ic.map(x => this.generateIC(x, args)).filter(Boolean),
|
|
38
|
+
...oc.map(x => this.generateOC(x, args)).filter(Boolean),
|
|
39
|
+
...nar.map(x => this.generateNar(x, args)).filter(Boolean),
|
|
40
|
+
...nar.map(x => this.generateNLEdge(x, args)).filter(Boolean),
|
|
41
|
+
...oc.map(x => this.generateEdge(x, args)).filter(Boolean),
|
|
42
|
+
...ic.filter(i => { var _a; return ((_a = i.refs) === null || _a === void 0 ? void 0 : _a.length) > 0; }).map(x => this.generateEdge(x, args)).filter(Boolean)
|
|
43
|
+
]
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
generateNar(nl, { idCache }) {
|
|
47
|
+
const nodeId = idCache.uniqueId(nl.name, nl);
|
|
48
|
+
var t = "node:nl"; // Neutral Nar
|
|
49
|
+
switch (nl.name.trim()[1].toString()) {
|
|
50
|
+
case '?':
|
|
51
|
+
t = "node:nldraft";
|
|
52
|
+
break;
|
|
53
|
+
case '!':
|
|
54
|
+
t = "node:nlexclamation";
|
|
55
|
+
break;
|
|
56
|
+
case 'x':
|
|
57
|
+
t = "node:nltaskcompleted";
|
|
58
|
+
break;
|
|
59
|
+
case '.':
|
|
60
|
+
t = "node:nltask";
|
|
61
|
+
break;
|
|
62
|
+
default:
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
type: t,
|
|
66
|
+
id: nodeId,
|
|
67
|
+
children: [{ type: 'label:darktext', id: idCache.uniqueId(nodeId + '.label'), text: nl.name }],
|
|
68
|
+
layout: 'stack',
|
|
69
|
+
layoutOptions: { paddingTop: 10.0, paddingBottom: 10.0, paddingLeft: 10.0, paddingRight: 10.0 }
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
generateIC(state, { idCache }) {
|
|
73
|
+
const nodeId = idCache.uniqueId(state.name, state);
|
|
74
|
+
return {
|
|
75
|
+
type: 'node:ic',
|
|
76
|
+
id: nodeId,
|
|
77
|
+
children: [
|
|
78
|
+
{ type: 'label', id: idCache.uniqueId(nodeId + '.label'), text: state.name }
|
|
79
|
+
],
|
|
80
|
+
layout: 'stack',
|
|
81
|
+
layoutOptions: { paddingTop: 10.0, paddingBottom: 10.0, paddingLeft: 10.0, paddingRight: 10.0
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
generateOC(oc, { idCache }) {
|
|
86
|
+
var i = "node:oc";
|
|
87
|
+
if (oc.refs.length == 0) {
|
|
88
|
+
i = "node:ocorphan";
|
|
89
|
+
}
|
|
90
|
+
const nodeId = idCache.uniqueId(oc.name, oc);
|
|
91
|
+
return {
|
|
92
|
+
type: i,
|
|
93
|
+
id: nodeId,
|
|
94
|
+
children: [{ type: 'label:darktext', id: idCache.uniqueId(nodeId + '.label'), text: oc.name }],
|
|
95
|
+
layout: 'stack',
|
|
96
|
+
layoutOptions: { paddingTop: 10.0, paddingBottom: 10.0, paddingLeft: 10.0, paddingRight: 10.0 }
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
// TODO, change this from ic -> (to, from )
|
|
100
|
+
// And capture the ~ for the negative relationship
|
|
101
|
+
generateEdge(ic, { idCache }) {
|
|
102
|
+
var _a, _b;
|
|
103
|
+
const sourceId = idCache.getId(ic);
|
|
104
|
+
// Check if refs array exists and has elements
|
|
105
|
+
if (!ic.refs || ic.refs.length === 0 || !ic.refs[0].ref) {
|
|
106
|
+
console.warn(`No valid reference found for ${ic.name}`);
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
const targetId = idCache.getId(ic.refs[0].ref);
|
|
110
|
+
// Check if both IDs are valid
|
|
111
|
+
if (!sourceId || !targetId) {
|
|
112
|
+
console.warn(`Invalid source or target ID for ${ic.name}`);
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
const edgeId = idCache.uniqueId(`${sourceId}:${(_b = (_a = ic.refs[0].$refNode) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : ''}:${targetId}`, ic);
|
|
116
|
+
return {
|
|
117
|
+
type: 'edge',
|
|
118
|
+
id: edgeId,
|
|
119
|
+
sourceId: sourceId,
|
|
120
|
+
targetId: targetId,
|
|
121
|
+
children: [
|
|
122
|
+
{
|
|
123
|
+
type: 'label:xref',
|
|
124
|
+
id: idCache.uniqueId(edgeId + '.label'),
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
generateNLEdge(nl, { idCache }) {
|
|
130
|
+
var _a;
|
|
131
|
+
const sourceId = idCache.getId(nl);
|
|
132
|
+
const targetId = idCache.getId(nl.$container);
|
|
133
|
+
const edgeId = idCache.uniqueId(`${sourceId}:${(_a = nl.$container.$cstNode) === null || _a === void 0 ? void 0 : _a.text}:${targetId}`, nl);
|
|
134
|
+
return {
|
|
135
|
+
type: 'edge',
|
|
136
|
+
id: edgeId,
|
|
137
|
+
sourceId: sourceId,
|
|
138
|
+
targetId: targetId,
|
|
139
|
+
children: [
|
|
140
|
+
{
|
|
141
|
+
type: 'label:xref',
|
|
142
|
+
id: idCache.uniqueId(edgeId + '.label'),
|
|
143
|
+
// text: transition.event?.ref?.name
|
|
144
|
+
}
|
|
145
|
+
]
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
exports.AuroraDiagramGenerator = AuroraDiagramGenerator;
|
|
150
|
+
//# sourceMappingURL=aurora-diagram-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aurora-diagram-generator.js","sourceRoot":"","sources":["../../../../src/language/aurora-diagram-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAuroraServices = exports.AuroraModule = void 0;
|
|
4
|
+
const langium_1 = require("langium");
|
|
5
|
+
const lsp_1 = require("langium/lsp");
|
|
6
|
+
const module_js_1 = require("./generated/module.js");
|
|
7
|
+
const aurora_validator_js_1 = require("./aurora-validator.js");
|
|
8
|
+
const aurora_scope_js_1 = require("./aurora-scope.js");
|
|
9
|
+
const aurora_diagram_generator_js_1 = require("./aurora-diagram-generator.js");
|
|
10
|
+
const langium_sprotty_1 = require("langium-sprotty");
|
|
11
|
+
/**
|
|
12
|
+
* Dependency injection module that overrides Langium default services and contributes the
|
|
13
|
+
* declared custom services. The Langium defaults can be partially specified to override only
|
|
14
|
+
* selected services, while the custom services must be fully specified.
|
|
15
|
+
*/
|
|
16
|
+
exports.AuroraModule = {
|
|
17
|
+
diagram: {
|
|
18
|
+
DiagramGenerator: services => new aurora_diagram_generator_js_1.AuroraDiagramGenerator(services),
|
|
19
|
+
},
|
|
20
|
+
validation: {
|
|
21
|
+
AuroraValidator: () => new aurora_validator_js_1.AuroraValidator()
|
|
22
|
+
},
|
|
23
|
+
references: {
|
|
24
|
+
ScopeComputation: (services) => new aurora_scope_js_1.AuroraScopeComputation(services),
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Create the full set of services required by Langium.
|
|
29
|
+
*
|
|
30
|
+
* First inject the shared services by merging two modules:
|
|
31
|
+
* - Langium default shared services
|
|
32
|
+
* - Services generated by langium-cli
|
|
33
|
+
*
|
|
34
|
+
* Then inject the language-specific services by merging three modules:
|
|
35
|
+
* - Langium default language-specific services
|
|
36
|
+
* - Services generated by langium-cli
|
|
37
|
+
* - Services specified in this file
|
|
38
|
+
*
|
|
39
|
+
* @param context Optional module context with the LSP connection
|
|
40
|
+
* @returns An object wrapping the shared services and the language-specific services
|
|
41
|
+
*/
|
|
42
|
+
function createAuroraServices(context) {
|
|
43
|
+
const shared = (0, langium_1.inject)((0, lsp_1.createDefaultSharedModule)(context), module_js_1.AuroraGeneratedSharedModule, langium_sprotty_1.SprottySharedModule);
|
|
44
|
+
const Aurora = (0, langium_1.inject)((0, lsp_1.createDefaultModule)({ shared }), langium_sprotty_1.SprottyDefaultModule, module_js_1.AuroraGeneratedModule, exports.AuroraModule);
|
|
45
|
+
shared.ServiceRegistry.register(Aurora);
|
|
46
|
+
(0, aurora_validator_js_1.registerValidationChecks)(Aurora);
|
|
47
|
+
if (!context.connection) {
|
|
48
|
+
// We don't run inside a language server
|
|
49
|
+
// Therefore, initialize the configuration provider instantly
|
|
50
|
+
shared.workspace.ConfigurationProvider.initialized({});
|
|
51
|
+
}
|
|
52
|
+
return { shared, Aurora };
|
|
53
|
+
}
|
|
54
|
+
exports.createAuroraServices = createAuroraServices;
|
|
55
|
+
//# sourceMappingURL=aurora-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aurora-module.js","sourceRoot":"","sources":["../../../../src/language/aurora-module.ts"],"names":[],"mappings":";;;AAAA,qCAA8C;AAC9C,qCAAiK;AACjK,qDAA2F;AAC3F,+DAAkF;AAClF,uDAA2D;AAC3D,+EAAuE;AACvE,qDAA0J;AAiB1J;;;;GAIG;AACU,QAAA,YAAY,GAAkG;IACvH,OAAO,EAAE;QACL,gBAAgB,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,oDAAsB,CAAC,QAAQ,CAAC;KACrE;IACD,UAAU,EAAE;QACR,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,qCAAe,EAAE;KAC/C;IACD,UAAU,EAAE;QACR,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,wCAAsB,CAAC,QAAQ,CAAC;KACvE;CACJ,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,SAAgB,oBAAoB,CAAC,OAAmC;IAIpE,MAAM,MAAM,GAAG,IAAA,gBAAM,EACjB,IAAA,+BAAyB,EAAC,OAAO,CAAC,EAClC,uCAA2B,EAC3B,qCAAmB,CACtB,CAAC;IACF,MAAM,MAAM,GAAG,IAAA,gBAAM,EACjB,IAAA,yBAAmB,EAAC,EAAE,MAAM,EAAE,CAAC,EAC/B,sCAAoB,EACpB,iCAAqB,EACrB,oBAAY,CACf,CAAC;IACF,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxC,IAAA,8CAAwB,EAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;QACrB,wCAAwC;QACxC,6DAA6D;QAC7D,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KAC1D;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAvBD,oDAuBC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/******************************************************************************
|
|
3
|
+
* Copyright 2021 TypeFox GmbH
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License, which is available in the project root.
|
|
6
|
+
******************************************************************************/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.AuroraScopeComputation = void 0;
|
|
9
|
+
const langium_1 = require("langium");
|
|
10
|
+
const ast_js_1 = require("./generated/ast.js");
|
|
11
|
+
class AuroraScopeComputation extends langium_1.DefaultScopeComputation {
|
|
12
|
+
constructor(services) {
|
|
13
|
+
super(services);
|
|
14
|
+
}
|
|
15
|
+
async computeExports(document) {
|
|
16
|
+
const exportedDescriptions = [];
|
|
17
|
+
for (const childNode of langium_1.AstUtils.streamAllContents(document.parseResult.value)) {
|
|
18
|
+
if ((0, ast_js_1.isIssueCoordinate)(childNode) && childNode.name) {
|
|
19
|
+
exportedDescriptions.push(this.descriptions.createDescription(childNode, childNode.name, document));
|
|
20
|
+
}
|
|
21
|
+
if ((0, ast_js_1.isOrderCoordinate)(childNode) && childNode.name) {
|
|
22
|
+
exportedDescriptions.push(this.descriptions.createDescription(childNode, childNode.name, document));
|
|
23
|
+
}
|
|
24
|
+
if ((0, ast_js_1.isMODULE)(childNode) && childNode.name) {
|
|
25
|
+
exportedDescriptions.push(this.descriptions.createDescription(childNode, childNode.name, document));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return exportedDescriptions;
|
|
29
|
+
}
|
|
30
|
+
async computeLocalScopes(document) {
|
|
31
|
+
const model = document.parseResult.value;
|
|
32
|
+
const scopes = new langium_1.MultiMap();
|
|
33
|
+
this.processContainer(model, scopes, document);
|
|
34
|
+
return scopes;
|
|
35
|
+
}
|
|
36
|
+
processContainer(container, scopes, document) {
|
|
37
|
+
const localDescriptions = [];
|
|
38
|
+
for (const element of langium_1.AstUtils.streamAllContents(container)) {
|
|
39
|
+
if ((0, ast_js_1.isIssueCoordinate)(element) && element.name) {
|
|
40
|
+
localDescriptions.push(this.descriptions.createDescription(element, element.name, document));
|
|
41
|
+
}
|
|
42
|
+
if ((0, ast_js_1.isOrderCoordinate)(element) && element.name) {
|
|
43
|
+
localDescriptions.push(this.descriptions.createDescription(element, element.name, document));
|
|
44
|
+
}
|
|
45
|
+
if ((0, ast_js_1.isMODULE)(element) && element.name) {
|
|
46
|
+
localDescriptions.push(this.descriptions.createDescription(element, element.name, document));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
scopes.addAll(container, localDescriptions);
|
|
50
|
+
return localDescriptions;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.AuroraScopeComputation = AuroraScopeComputation;
|
|
54
|
+
//# sourceMappingURL=aurora-scope.js.map
|