@likec4/language-server 1.10.1 → 1.11.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/browser.cjs +5 -1
- package/dist/browser.d.cts +7 -5
- package/dist/browser.d.mts +7 -5
- package/dist/browser.d.ts +7 -5
- package/dist/browser.mjs +3 -2
- package/dist/index.cjs +15 -2
- package/dist/index.d.cts +14 -11
- package/dist/index.d.mts +14 -11
- package/dist/index.d.ts +14 -11
- package/dist/index.mjs +17 -1
- package/dist/likec4lib.cjs +949 -952
- package/dist/likec4lib.d.cts +1 -1
- package/dist/likec4lib.d.mts +1 -1
- package/dist/likec4lib.d.ts +1 -1
- package/dist/likec4lib.mjs +949 -952
- package/dist/protocol.cjs +1 -1
- package/dist/protocol.d.cts +3 -1
- package/dist/protocol.d.mts +3 -1
- package/dist/protocol.d.ts +3 -1
- package/dist/protocol.mjs +1 -1
- package/dist/shared/{language-server.Bfc-5M8A.cjs → language-server.C8lV6gDw.cjs} +116 -115
- package/dist/shared/{language-server.BFBeyvV8.mjs → language-server.CCOotWDz.mjs} +116 -116
- package/dist/shared/{language-server.CnVuAxDh.d.ts → language-server.Cyw-bCtc.d.ts} +143 -136
- package/dist/shared/{language-server.DEK39RmI.d.mts → language-server.DGjTE7xL.d.mts} +143 -136
- package/dist/shared/{language-server.BGy3FJPJ.d.cts → language-server.Ol32Kygo.d.cts} +143 -136
- package/package.json +30 -26
- package/src/Rpc.ts +10 -6
- package/src/ast.ts +1 -1
- package/src/browser.ts +5 -0
- package/src/generated-lib/icons.ts +949 -952
- package/src/index.ts +23 -2
- package/src/likec4lib.ts +1 -1
- package/src/logger.ts +16 -16
- package/src/model/model-builder.ts +12 -12
- package/src/model-graph/utils/applyCustomRelationProperties.ts +1 -1
- package/src/protocol.ts +5 -1
- package/src/shared/WorkspaceManager.ts +1 -1
- package/dist/node.cjs +0 -18
- package/dist/node.d.cts +0 -19
- package/dist/node.d.mts +0 -19
- package/dist/node.d.ts +0 -19
- package/dist/node.mjs +0 -16
- package/src/node.ts +0 -20
package/src/index.ts
CHANGED
|
@@ -1,4 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
import { startLanguageServer as startLanguim } from 'langium/lsp'
|
|
2
|
+
import { NodeFileSystem } from 'langium/node'
|
|
3
|
+
import { createConnection, ProposedFeatures } from 'vscode-languageserver/node'
|
|
4
|
+
import { createLanguageServices } from './module'
|
|
5
|
+
|
|
6
|
+
export { logger as lspLogger, setLogLevel } from './logger'
|
|
2
7
|
export type * from './model'
|
|
3
|
-
export { createCustomLanguageServices, createLanguageServices, LikeC4Module } from './module'
|
|
4
8
|
export type * from './module'
|
|
9
|
+
export { createCustomLanguageServices, createLanguageServices, LikeC4Module } from './module'
|
|
10
|
+
|
|
11
|
+
export function startLanguageServer() {
|
|
12
|
+
/* browser specific setup code */
|
|
13
|
+
const connection = createConnection(ProposedFeatures.all)
|
|
14
|
+
|
|
15
|
+
// Inject the shared services and language-specific services
|
|
16
|
+
const services = createLanguageServices({ connection, ...NodeFileSystem })
|
|
17
|
+
|
|
18
|
+
// Start the language server with the shared services
|
|
19
|
+
startLanguim(services.shared)
|
|
20
|
+
|
|
21
|
+
return {
|
|
22
|
+
...services,
|
|
23
|
+
connection
|
|
24
|
+
}
|
|
25
|
+
}
|
package/src/likec4lib.ts
CHANGED
package/src/logger.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import { type ConsolaReporter, LogLevels, rootLogger as root } from '@likec4/log'
|
|
3
|
+
import { isError } from 'remeda'
|
|
3
4
|
import type { Connection } from 'vscode-languageserver'
|
|
4
5
|
|
|
5
6
|
export const logger = root.withTag('lsp')
|
|
@@ -28,13 +29,13 @@ export function logErrorToTelemetry(connection: Connection): void {
|
|
|
28
29
|
}
|
|
29
30
|
const tag = logObj.tag || ''
|
|
30
31
|
const parts = logObj.args.map((arg) => {
|
|
31
|
-
if (arg
|
|
32
|
-
return arg.
|
|
32
|
+
if (isError(arg)) {
|
|
33
|
+
return arg.stack ?? arg.message
|
|
33
34
|
}
|
|
34
35
|
if (typeof arg === 'string') {
|
|
35
36
|
return arg
|
|
36
37
|
}
|
|
37
|
-
return
|
|
38
|
+
return '' + arg
|
|
38
39
|
})
|
|
39
40
|
if (tag) {
|
|
40
41
|
parts.unshift(`[${tag}]`)
|
|
@@ -52,33 +53,29 @@ export function logToLspConnection(connection: Connection): void {
|
|
|
52
53
|
log: ({ level, ...logObj }, ctx) => {
|
|
53
54
|
const tag = logObj.tag || ''
|
|
54
55
|
const parts = logObj.args.map((arg) => {
|
|
55
|
-
if (arg
|
|
56
|
-
return arg.
|
|
56
|
+
if (isError(arg)) {
|
|
57
|
+
return arg.stack ?? arg.message
|
|
57
58
|
}
|
|
58
59
|
if (typeof arg === 'string') {
|
|
59
60
|
return arg
|
|
60
61
|
}
|
|
61
|
-
return
|
|
62
|
+
return '' + arg
|
|
62
63
|
})
|
|
63
64
|
if (tag) {
|
|
64
65
|
parts.unshift(`[${tag}]`)
|
|
65
66
|
}
|
|
66
67
|
const message = parts.join(' ')
|
|
67
68
|
switch (true) {
|
|
68
|
-
case level >= LogLevels.trace: {
|
|
69
|
-
connection.tracer.log(message)
|
|
70
|
-
break
|
|
71
|
-
}
|
|
72
69
|
case level >= LogLevels.debug: {
|
|
73
70
|
connection.console.debug(message)
|
|
74
71
|
break
|
|
75
72
|
}
|
|
76
|
-
case level >= LogLevels.info: {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
73
|
+
// case level >= LogLevels.info: {
|
|
74
|
+
// connection.console.info(message)
|
|
75
|
+
// break
|
|
76
|
+
// }
|
|
80
77
|
case level >= LogLevels.log: {
|
|
81
|
-
connection.console.
|
|
78
|
+
connection.console.info(message)
|
|
82
79
|
break
|
|
83
80
|
}
|
|
84
81
|
case level >= LogLevels.warn: {
|
|
@@ -89,9 +86,12 @@ export function logToLspConnection(connection: Connection): void {
|
|
|
89
86
|
connection.console.error(message)
|
|
90
87
|
break
|
|
91
88
|
}
|
|
89
|
+
default: {
|
|
90
|
+
connection.console.log(message)
|
|
91
|
+
}
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
-
root.
|
|
95
|
+
root.setReporters([reporter])
|
|
96
96
|
logger.setReporters(root.options.reporters)
|
|
97
97
|
}
|
|
@@ -315,7 +315,7 @@ export class LikeC4ModelBuilder {
|
|
|
315
315
|
async (docs, _cancelToken) => {
|
|
316
316
|
let parsed = [] as URI[]
|
|
317
317
|
try {
|
|
318
|
-
logger.debug(`[ModelBuilder] onValidated (${docs.length} docs)
|
|
318
|
+
logger.debug(`[ModelBuilder] onValidated (${docs.length} docs)`)
|
|
319
319
|
for (const doc of parser.parse(docs)) {
|
|
320
320
|
parsed.push(doc.uri)
|
|
321
321
|
}
|
|
@@ -344,7 +344,7 @@ export class LikeC4ModelBuilder {
|
|
|
344
344
|
logger.debug('[ModelBuilder] No documents to build model from')
|
|
345
345
|
return null
|
|
346
346
|
}
|
|
347
|
-
logger.debug(`[ModelBuilder]
|
|
347
|
+
logger.debug(`[ModelBuilder] onValidated (${docs.length} docs)`)
|
|
348
348
|
return buildModel(this.services, docs)
|
|
349
349
|
})
|
|
350
350
|
}
|
|
@@ -408,14 +408,14 @@ export class LikeC4ModelBuilder {
|
|
|
408
408
|
if (cache.has(CACHE_KEY_COMPUTED_MODEL)) {
|
|
409
409
|
return cache.get(CACHE_KEY_COMPUTED_MODEL)!
|
|
410
410
|
}
|
|
411
|
-
const model = await this.buildModel(cancelToken)
|
|
412
|
-
if (!model) {
|
|
413
|
-
return null
|
|
414
|
-
}
|
|
415
411
|
return await this.services.shared.workspace.WorkspaceLock.read(async () => {
|
|
416
412
|
if (cancelToken) {
|
|
417
413
|
await interruptAndCheck(cancelToken)
|
|
418
414
|
}
|
|
415
|
+
const model = this.unsafeSyncBuildModel()
|
|
416
|
+
if (!model) {
|
|
417
|
+
return null
|
|
418
|
+
}
|
|
419
419
|
return this.unsafeSyncBuildComputedModel(model)
|
|
420
420
|
})
|
|
421
421
|
}
|
|
@@ -429,17 +429,17 @@ export class LikeC4ModelBuilder {
|
|
|
429
429
|
if (cache.has(cacheKey)) {
|
|
430
430
|
return cache.get(cacheKey)!
|
|
431
431
|
}
|
|
432
|
-
const model = await this.buildModel(cancelToken)
|
|
433
|
-
const view = model?.views[viewId]
|
|
434
|
-
if (!view) {
|
|
435
|
-
logger.warn(`[ModelBuilder] Cannot find view ${viewId}`)
|
|
436
|
-
return null
|
|
437
|
-
}
|
|
438
432
|
return await this.services.shared.workspace.WorkspaceLock.read(async () => {
|
|
439
433
|
if (cancelToken) {
|
|
440
434
|
await interruptAndCheck(cancelToken)
|
|
441
435
|
}
|
|
442
436
|
return cache.get(cacheKey, () => {
|
|
437
|
+
const model = this.unsafeSyncBuildModel()
|
|
438
|
+
const view = model?.views[viewId]
|
|
439
|
+
if (!view) {
|
|
440
|
+
logger.warn(`[ModelBuilder] Cannot find view ${viewId}`)
|
|
441
|
+
return null
|
|
442
|
+
}
|
|
443
443
|
const index = new LikeC4ModelGraph(model)
|
|
444
444
|
const result = isElementView(view) ? computeView(view, index) : computeDynamicView(view, index)
|
|
445
445
|
if (!result.isSuccess) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ComputedEdge, ComputedNode, Element, ViewRule } from '@likec4/core'
|
|
2
2
|
import { Expr, nonexhaustive } from '@likec4/core'
|
|
3
|
-
import {
|
|
3
|
+
import { isNullish, omitBy } from 'remeda'
|
|
4
4
|
import { elementExprToPredicate } from './elementExpressionToPredicate'
|
|
5
5
|
|
|
6
6
|
function relationExpressionToPredicates(
|
package/src/protocol.ts
CHANGED
|
@@ -21,7 +21,11 @@ export const fetchModel = new RequestType0<{ model: ParsedLikeC4Model | null },
|
|
|
21
21
|
)
|
|
22
22
|
export type FetchModelRequest = typeof fetchModel
|
|
23
23
|
|
|
24
|
-
export const fetchComputedModel = new
|
|
24
|
+
export const fetchComputedModel = new RequestType<
|
|
25
|
+
{ cleanCaches?: boolean | undefined },
|
|
26
|
+
{ model: ComputedLikeC4Model | null },
|
|
27
|
+
void
|
|
28
|
+
>(
|
|
25
29
|
'likec4/fetchComputedModel'
|
|
26
30
|
)
|
|
27
31
|
export type FetchComputedModelRequest = typeof fetchComputedModel
|
|
@@ -23,8 +23,8 @@ export class LikeC4WorkspaceManager extends DefaultWorkspaceManager {
|
|
|
23
23
|
folders: WorkspaceFolder[],
|
|
24
24
|
collector: (document: LangiumDocument) => void
|
|
25
25
|
): Promise<void> {
|
|
26
|
-
await super.loadAdditionalDocuments(folders, collector)
|
|
27
26
|
collector(this.documentFactory.fromString(BuiltIn.Content, URI.parse(BuiltIn.Uri)))
|
|
27
|
+
await super.loadAdditionalDocuments(folders, collector)
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
public workspace() {
|
package/dist/node.cjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const lsp = require('langium/lsp');
|
|
4
|
-
const node$1 = require('langium/node');
|
|
5
|
-
const node = require('vscode-languageserver/node');
|
|
6
|
-
const module$1 = require('./shared/language-server.Bfc-5M8A.cjs');
|
|
7
|
-
|
|
8
|
-
function startLanguageServer() {
|
|
9
|
-
const connection = node.createConnection(node.ProposedFeatures.all);
|
|
10
|
-
const services = module$1.createLanguageServices({ connection, ...node$1.NodeFileSystem });
|
|
11
|
-
lsp.startLanguageServer(services.shared);
|
|
12
|
-
return {
|
|
13
|
-
...services,
|
|
14
|
-
connection
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
exports.startLanguageServer = startLanguageServer;
|
package/dist/node.d.cts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { i as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.BGy3FJPJ.cjs';
|
|
2
|
-
import * as vscode_languageserver_lib_common_inlineCompletion_proposed from 'vscode-languageserver/lib/common/inlineCompletion.proposed';
|
|
3
|
-
import * as vscode_languageserver from 'vscode-languageserver';
|
|
4
|
-
import '@likec4/core';
|
|
5
|
-
import 'langium';
|
|
6
|
-
import 'type-fest';
|
|
7
|
-
import 'vscode-languageserver-types';
|
|
8
|
-
import 'langium/lsp';
|
|
9
|
-
import './protocol.cjs';
|
|
10
|
-
import 'vscode-jsonrpc';
|
|
11
|
-
import 'vscode-uri';
|
|
12
|
-
|
|
13
|
-
declare function startLanguageServer(): {
|
|
14
|
-
connection: vscode_languageserver._Connection<vscode_languageserver._, vscode_languageserver._, vscode_languageserver._, vscode_languageserver._, vscode_languageserver._, vscode_languageserver._, vscode_languageserver_lib_common_inlineCompletion_proposed.InlineCompletionFeatureShape, vscode_languageserver._>;
|
|
15
|
-
shared: LikeC4SharedServices;
|
|
16
|
-
likec4: LikeC4Services;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export { startLanguageServer };
|
package/dist/node.d.mts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { i as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.DEK39RmI.mjs';
|
|
2
|
-
import * as vscode_languageserver_lib_common_inlineCompletion_proposed from 'vscode-languageserver/lib/common/inlineCompletion.proposed';
|
|
3
|
-
import * as vscode_languageserver from 'vscode-languageserver';
|
|
4
|
-
import '@likec4/core';
|
|
5
|
-
import 'langium';
|
|
6
|
-
import 'type-fest';
|
|
7
|
-
import 'vscode-languageserver-types';
|
|
8
|
-
import 'langium/lsp';
|
|
9
|
-
import './protocol.mjs';
|
|
10
|
-
import 'vscode-jsonrpc';
|
|
11
|
-
import 'vscode-uri';
|
|
12
|
-
|
|
13
|
-
declare function startLanguageServer(): {
|
|
14
|
-
connection: vscode_languageserver._Connection<vscode_languageserver._, vscode_languageserver._, vscode_languageserver._, vscode_languageserver._, vscode_languageserver._, vscode_languageserver._, vscode_languageserver_lib_common_inlineCompletion_proposed.InlineCompletionFeatureShape, vscode_languageserver._>;
|
|
15
|
-
shared: LikeC4SharedServices;
|
|
16
|
-
likec4: LikeC4Services;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export { startLanguageServer };
|
package/dist/node.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { i as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.CnVuAxDh.js';
|
|
2
|
-
import * as vscode_languageserver_lib_common_inlineCompletion_proposed from 'vscode-languageserver/lib/common/inlineCompletion.proposed';
|
|
3
|
-
import * as vscode_languageserver from 'vscode-languageserver';
|
|
4
|
-
import '@likec4/core';
|
|
5
|
-
import 'langium';
|
|
6
|
-
import 'type-fest';
|
|
7
|
-
import 'vscode-languageserver-types';
|
|
8
|
-
import 'langium/lsp';
|
|
9
|
-
import './protocol.js';
|
|
10
|
-
import 'vscode-jsonrpc';
|
|
11
|
-
import 'vscode-uri';
|
|
12
|
-
|
|
13
|
-
declare function startLanguageServer(): {
|
|
14
|
-
connection: vscode_languageserver._Connection<vscode_languageserver._, vscode_languageserver._, vscode_languageserver._, vscode_languageserver._, vscode_languageserver._, vscode_languageserver._, vscode_languageserver_lib_common_inlineCompletion_proposed.InlineCompletionFeatureShape, vscode_languageserver._>;
|
|
15
|
-
shared: LikeC4SharedServices;
|
|
16
|
-
likec4: LikeC4Services;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export { startLanguageServer };
|
package/dist/node.mjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { startLanguageServer as startLanguageServer$1 } from 'langium/lsp';
|
|
2
|
-
import { NodeFileSystem } from 'langium/node';
|
|
3
|
-
import { createConnection, ProposedFeatures } from 'vscode-languageserver/node';
|
|
4
|
-
import { a as createLanguageServices } from './shared/language-server.BFBeyvV8.mjs';
|
|
5
|
-
|
|
6
|
-
function startLanguageServer() {
|
|
7
|
-
const connection = createConnection(ProposedFeatures.all);
|
|
8
|
-
const services = createLanguageServices({ connection, ...NodeFileSystem });
|
|
9
|
-
startLanguageServer$1(services.shared);
|
|
10
|
-
return {
|
|
11
|
-
...services,
|
|
12
|
-
connection
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export { startLanguageServer };
|
package/src/node.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { startLanguageServer as startLanguim } from 'langium/lsp'
|
|
2
|
-
import { NodeFileSystem } from 'langium/node'
|
|
3
|
-
import { createConnection, ProposedFeatures } from 'vscode-languageserver/node'
|
|
4
|
-
import { createLanguageServices } from './module'
|
|
5
|
-
|
|
6
|
-
export function startLanguageServer() {
|
|
7
|
-
/* browser specific setup code */
|
|
8
|
-
const connection = createConnection(ProposedFeatures.all)
|
|
9
|
-
|
|
10
|
-
// Inject the shared services and language-specific services
|
|
11
|
-
const services = createLanguageServices({ connection, ...NodeFileSystem })
|
|
12
|
-
|
|
13
|
-
// Start the language server with the shared services
|
|
14
|
-
startLanguim(services.shared)
|
|
15
|
-
|
|
16
|
-
return {
|
|
17
|
-
...services,
|
|
18
|
-
connection
|
|
19
|
-
}
|
|
20
|
-
}
|