@likec4/language-server 1.23.0 → 1.24.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/LikeC4FileSystem.d.ts +1 -0
- package/dist/LikeC4FileSystem.js +8 -1
- package/dist/Rpc.js +10 -7
- package/dist/ast.d.ts +13 -29
- package/dist/ast.js +3 -70
- package/dist/bundled.mjs +2466 -2641
- package/dist/generated/ast.d.ts +36 -8
- package/dist/generated/ast.js +44 -2
- package/dist/generated/grammar.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/likec4lib.d.ts +2 -0
- package/dist/likec4lib.js +3 -0
- package/dist/lsp/CodeLensProvider.js +7 -4
- package/dist/lsp/CompletionProvider.js +20 -2
- package/dist/lsp/DocumentLinkProvider.d.ts +3 -3
- package/dist/lsp/DocumentLinkProvider.js +14 -5
- package/dist/lsp/DocumentSymbolProvider.d.ts +1 -1
- package/dist/lsp/DocumentSymbolProvider.js +5 -2
- package/dist/lsp/HoverProvider.js +20 -7
- package/dist/lsp/SemanticTokenProvider.js +18 -1
- package/dist/model/builder/MergedExtends.d.ts +12 -0
- package/dist/model/builder/MergedExtends.js +67 -0
- package/dist/model/builder/MergedSpecification.d.ts +29 -0
- package/dist/model/builder/MergedSpecification.js +203 -0
- package/dist/model/builder/buildModel.d.ts +3 -0
- package/dist/model/builder/buildModel.js +194 -0
- package/dist/model/deployments-index.d.ts +6 -56
- package/dist/model/deployments-index.js +59 -137
- package/dist/model/fqn-index.d.ts +47 -17
- package/dist/model/fqn-index.js +155 -68
- package/dist/model/index.d.ts +0 -1
- package/dist/model/index.js +0 -1
- package/dist/model/model-builder.d.ts +13 -9
- package/dist/model/model-builder.js +101 -547
- package/dist/model/model-locator.d.ts +1 -0
- package/dist/model/model-locator.js +7 -9
- package/dist/model/model-parser.d.ts +24 -18
- package/dist/model/model-parser.js +51 -31
- package/dist/model/parser/Base.d.ts +3 -3
- package/dist/model/parser/Base.js +15 -9
- package/dist/model/parser/DeploymentModelParser.d.ts +4 -3
- package/dist/model/parser/DeploymentModelParser.js +54 -3
- package/dist/model/parser/DeploymentViewParser.d.ts +3 -2
- package/dist/model/parser/FqnRefParser.d.ts +2 -2
- package/dist/model/parser/GlobalsParser.d.ts +3 -2
- package/dist/model/parser/ModelParser.d.ts +4 -4
- package/dist/model/parser/ModelParser.js +45 -4
- package/dist/model/parser/PredicatesParser.d.ts +2 -2
- package/dist/model/parser/SpecificationParser.d.ts +2 -2
- package/dist/model/parser/ViewsParser.d.ts +3 -2
- package/dist/module.d.ts +2 -3
- package/dist/module.js +2 -3
- package/dist/references/scope-computation.d.ts +1 -1
- package/dist/references/scope-computation.js +14 -11
- package/dist/references/scope-provider.d.ts +16 -4
- package/dist/references/scope-provider.js +64 -30
- package/dist/test/testServices.d.ts +2 -1
- package/dist/test/testServices.js +17 -14
- package/dist/utils/elementRef.d.ts +1 -1
- package/dist/utils/elementRef.js +3 -3
- package/dist/validation/deployment-checks.d.ts +1 -0
- package/dist/validation/deployment-checks.js +12 -0
- package/dist/validation/index.d.ts +1 -1
- package/dist/validation/index.js +8 -1
- package/dist/views/configurable-layouter.js +3 -3
- package/dist/views/likec4-views.d.ts +1 -0
- package/dist/views/likec4-views.js +11 -11
- package/package.json +6 -7
- package/dist/bundled.d.ts +0 -8
- package/dist/bundled.js +0 -25
- package/dist/model/fqn-computation.d.ts +0 -3
- package/dist/model/fqn-computation.js +0 -72
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@likec4/language-server",
|
|
3
3
|
"description": "LikeC4 Language Server",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.24.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bugs": "https://github.com/likec4/likec4/issues",
|
|
7
7
|
"homepage": "https://likec4.dev",
|
|
@@ -96,7 +96,6 @@
|
|
|
96
96
|
"json5": "^2.2.3",
|
|
97
97
|
"langium": "3.3.1",
|
|
98
98
|
"langium-cli": "3.3.0",
|
|
99
|
-
"mnemonist": "^0.40.2",
|
|
100
99
|
"natural-compare-lite": "^1.4.0",
|
|
101
100
|
"p-debounce": "^4.0.0",
|
|
102
101
|
"remeda": "^2.20.1",
|
|
@@ -113,11 +112,11 @@
|
|
|
113
112
|
"vscode-languageserver-types": "3.17.5",
|
|
114
113
|
"vscode-uri": "3.1.0",
|
|
115
114
|
"which": "^5.0.0",
|
|
116
|
-
"@likec4/core": "1.
|
|
117
|
-
"@likec4/
|
|
118
|
-
"@likec4/
|
|
119
|
-
"@likec4/
|
|
120
|
-
"@likec4/
|
|
115
|
+
"@likec4/core": "1.24.0",
|
|
116
|
+
"@likec4/icons": "1.24.0",
|
|
117
|
+
"@likec4/log": "1.24.0",
|
|
118
|
+
"@likec4/tsconfig": "1.24.0",
|
|
119
|
+
"@likec4/layouts": "1.24.0"
|
|
121
120
|
},
|
|
122
121
|
"scripts": {
|
|
123
122
|
"typecheck": "tsc --noEmit",
|
package/dist/bundled.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type LikeC4Services, type LikeC4SharedServices } from './module';
|
|
2
|
-
/**
|
|
3
|
-
* This is used as `bin` entry point to start the language server.
|
|
4
|
-
*/
|
|
5
|
-
export declare function startLanguageServer(): Promise<{
|
|
6
|
-
shared: LikeC4SharedServices;
|
|
7
|
-
likec4: LikeC4Services;
|
|
8
|
-
}>;
|
package/dist/bundled.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { configureLogger, getConsoleSink } from "@likec4/log";
|
|
2
|
-
import { startLanguageServer as startLanguim } from "langium/lsp";
|
|
3
|
-
import { createConnection, ProposedFeatures } from "vscode-languageserver/node";
|
|
4
|
-
import { LikeC4FileSystem } from "./LikeC4FileSystem.js";
|
|
5
|
-
import { logger } from "./logger.js";
|
|
6
|
-
import { createCustomLanguageServices } from "./module.js";
|
|
7
|
-
import { ConfigurableLayouter } from "./views/configurable-layouter.js";
|
|
8
|
-
export async function startLanguageServer() {
|
|
9
|
-
const connection = createConnection(ProposedFeatures.all);
|
|
10
|
-
await configureLogger({
|
|
11
|
-
sinks: {
|
|
12
|
-
console: getConsoleSink()
|
|
13
|
-
},
|
|
14
|
-
loggers: [
|
|
15
|
-
{
|
|
16
|
-
category: ["likec4"],
|
|
17
|
-
sinks: ["console"]
|
|
18
|
-
}
|
|
19
|
-
]
|
|
20
|
-
});
|
|
21
|
-
logger.info("Starting LikeC4 language server");
|
|
22
|
-
const services = createCustomLanguageServices({ connection, ...LikeC4FileSystem }, ConfigurableLayouter);
|
|
23
|
-
startLanguim(services.shared);
|
|
24
|
-
return services;
|
|
25
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { AsFqn, LinkedList, nonexhaustive } from "@likec4/core";
|
|
2
|
-
import { AstUtils, CstUtils, GrammarUtils, MultiMap } from "langium";
|
|
3
|
-
import { isDefined, isEmpty } from "remeda";
|
|
4
|
-
import { ast, ElementOps } from "../ast.js";
|
|
5
|
-
import { logWarnError } from "../logger.js";
|
|
6
|
-
import { getFqnElementRef } from "../utils/elementRef.js";
|
|
7
|
-
const { findNodeForProperty } = GrammarUtils;
|
|
8
|
-
const { toDocumentSegment } = CstUtils;
|
|
9
|
-
const { getDocument } = AstUtils;
|
|
10
|
-
function toAstNodeDescription(locator, entry, doc) {
|
|
11
|
-
const $cstNode = findNodeForProperty(entry.$cstNode, "name");
|
|
12
|
-
return {
|
|
13
|
-
documentUri: doc.uri,
|
|
14
|
-
name: entry.name,
|
|
15
|
-
...entry.$cstNode && {
|
|
16
|
-
selectionSegment: toDocumentSegment(entry.$cstNode)
|
|
17
|
-
},
|
|
18
|
-
...$cstNode && {
|
|
19
|
-
nameSegment: toDocumentSegment($cstNode)
|
|
20
|
-
},
|
|
21
|
-
path: locator.getAstNodePath(entry),
|
|
22
|
-
type: ast.Element
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
export function computeDocumentFqn(document, services) {
|
|
26
|
-
const c4fqnIndex = document.c4fqnIndex = new MultiMap();
|
|
27
|
-
const elements = document.parseResult.value.models.flatMap((m) => m.elements);
|
|
28
|
-
if (elements.length === 0) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
const locator = services.workspace.AstNodeLocator;
|
|
32
|
-
const traverseStack = LinkedList.from(elements.map((el) => [el, null]));
|
|
33
|
-
let pair;
|
|
34
|
-
while (pair = traverseStack.shift()) {
|
|
35
|
-
try {
|
|
36
|
-
const [el, parent] = pair;
|
|
37
|
-
if (ast.isRelation(el)) {
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
if (ast.isExtendElement(el)) {
|
|
41
|
-
if (isDefined(el.body) && !isEmpty(el.body.elements)) {
|
|
42
|
-
const fqn = getFqnElementRef(el.element);
|
|
43
|
-
for (const child of el.body.elements) {
|
|
44
|
-
if (!ast.isRelation(child)) {
|
|
45
|
-
traverseStack.push([child, fqn]);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
if (ast.isElement(el)) {
|
|
52
|
-
const fqn = AsFqn(el.name, parent);
|
|
53
|
-
c4fqnIndex.add(fqn, {
|
|
54
|
-
...toAstNodeDescription(locator, el, document),
|
|
55
|
-
fqn
|
|
56
|
-
});
|
|
57
|
-
ElementOps.writeId(el, fqn);
|
|
58
|
-
if (isDefined(el.body) && !isEmpty(el.body.elements)) {
|
|
59
|
-
for (const child of el.body.elements) {
|
|
60
|
-
if (!ast.isRelation(child)) {
|
|
61
|
-
traverseStack.push([child, fqn]);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
continue;
|
|
66
|
-
}
|
|
67
|
-
nonexhaustive(el);
|
|
68
|
-
} catch (e) {
|
|
69
|
-
logWarnError(e);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|