@likec4/language-server 1.10.1 → 1.12.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 +1538 -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 +1538 -952
- package/dist/model-graph/index.cjs +1 -1
- package/dist/model-graph/index.mjs +1 -1
- 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.DJhoJBWh.cjs → language-server.3Bh0zvVS.cjs} +10 -2
- package/dist/shared/{language-server.CnVuAxDh.d.ts → language-server.BCDM5gt9.d.ts} +147 -137
- package/dist/shared/{language-server.DEK39RmI.d.mts → language-server.BN7V1vQA.d.mts} +147 -137
- package/dist/shared/language-server.BX2gtzo8.d.cts +1233 -0
- package/dist/shared/{language-server.BFBeyvV8.mjs → language-server.BbMFBkE-.mjs} +196 -140
- package/dist/shared/language-server.BiN_phWO.d.mts +1233 -0
- package/dist/shared/{language-server.CbqwHp7Q.mjs → language-server.BxxqS4Id.mjs} +10 -2
- package/dist/shared/{language-server.Bfc-5M8A.cjs → language-server.BzrAcTYK.cjs} +194 -137
- package/dist/shared/{language-server.BGy3FJPJ.d.cts → language-server.DtLmc4Fz.d.cts} +147 -137
- package/dist/shared/language-server.ljop0PBQ.d.ts +1233 -0
- package/package.json +34 -30
- package/src/Rpc.ts +10 -6
- package/src/ast.ts +24 -10
- package/src/browser.ts +5 -0
- package/src/formatting/LikeC4Formatter.ts +19 -7
- package/src/generated/ast.ts +9 -4
- package/src/generated/grammar.ts +1 -1
- package/src/generated-lib/icons.ts +1538 -952
- package/src/index.ts +23 -2
- package/src/like-c4.langium +8 -4
- package/src/likec4lib.ts +1 -1
- package/src/logger.ts +16 -16
- package/src/lsp/CompletionProvider.ts +48 -1
- package/src/model/model-builder.ts +12 -12
- package/src/model/model-parser.ts +2 -6
- package/src/model-graph/compute-view/compute.ts +5 -1
- package/src/model-graph/dynamic-view/compute.ts +5 -1
- package/src/model-graph/utils/applyCustomRelationProperties.ts +1 -1
- package/src/protocol.ts +5 -1
- package/src/shared/WorkspaceManager.ts +1 -1
- package/src/test/testServices.ts +1 -1
- package/src/view-utils/manual-layout.ts +5 -2
- 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/like-c4.langium
CHANGED
|
@@ -439,7 +439,10 @@ ViewRuleStyle:
|
|
|
439
439
|
'}';
|
|
440
440
|
|
|
441
441
|
ViewRuleAutoLayout:
|
|
442
|
-
'autoLayout' direction=ViewLayoutDirection
|
|
442
|
+
'autoLayout' direction=ViewLayoutDirection (
|
|
443
|
+
rankSep=Number (
|
|
444
|
+
nodeSep=Number)?
|
|
445
|
+
)?;
|
|
443
446
|
|
|
444
447
|
NotationProperty:
|
|
445
448
|
key='notation' ':'? value=String ';'?
|
|
@@ -547,7 +550,7 @@ ElementShape returns string:
|
|
|
547
550
|
'rectangle' | 'person' | 'browser' | 'mobile' | 'cylinder' | 'storage' | 'queue';
|
|
548
551
|
|
|
549
552
|
CustomColorValue returns string:
|
|
550
|
-
Hash (Id | Hex);
|
|
553
|
+
Hash (Id | Hex | Number);
|
|
551
554
|
|
|
552
555
|
IconId returns string:
|
|
553
556
|
LIB_ICON;
|
|
@@ -599,7 +602,7 @@ hidden terminal NL: /[\r\n]+/;
|
|
|
599
602
|
//terminal LineStartWithDash: /(?<=([\r?\n][^\S\r\n]*))-/;
|
|
600
603
|
|
|
601
604
|
// LibIcons
|
|
602
|
-
terminal LIB_ICON: /(aws|gcp|tech):[-\w]*/;
|
|
605
|
+
terminal LIB_ICON: /(aws|azure|gcp|tech):[-\w]*/;
|
|
603
606
|
|
|
604
607
|
terminal URI_WITH_SCHEMA: /\w+:\/\/\S+/;
|
|
605
608
|
terminal URI_RELATIVE: /\.{0,2}\/[^\/]\S+/;
|
|
@@ -620,4 +623,5 @@ terminal String: /"[^"]*"|'[^']*'/;
|
|
|
620
623
|
// terminal TagId: HASH LETTER (LETTER | DIGIT | UNDERSCORE | DASH)*;
|
|
621
624
|
// terminal IdTerminal: (LETTER | UNDERSCORE+ (LETTER | DIGIT)) (LETTER | DIGIT | UNDERSCORE | DASH)*;
|
|
622
625
|
terminal IdTerminal: /[_]*[a-zA-Z][-\w]*/;
|
|
623
|
-
terminal
|
|
626
|
+
terminal Number returns number: /\b\d+\b/;
|
|
627
|
+
terminal Hex: /\b[a-zA-Z0-9]+\b/;
|
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
|
}
|
|
@@ -1,7 +1,54 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type GrammarAST, type MaybePromise } from 'langium'
|
|
2
|
+
import {
|
|
3
|
+
type CompletionAcceptor,
|
|
4
|
+
type CompletionContext,
|
|
5
|
+
type CompletionProviderOptions,
|
|
6
|
+
DefaultCompletionProvider
|
|
7
|
+
} from 'langium/lsp'
|
|
8
|
+
import { CompletionItemKind, InsertTextFormat } from 'vscode-languageserver-types'
|
|
2
9
|
|
|
3
10
|
export class LikeC4CompletionProvider extends DefaultCompletionProvider {
|
|
4
11
|
override readonly completionOptions = {
|
|
5
12
|
triggerCharacters: ['.']
|
|
6
13
|
} satisfies CompletionProviderOptions
|
|
14
|
+
|
|
15
|
+
protected override completionForKeyword(
|
|
16
|
+
context: CompletionContext,
|
|
17
|
+
keyword: GrammarAST.Keyword,
|
|
18
|
+
acceptor: CompletionAcceptor
|
|
19
|
+
): MaybePromise<void> {
|
|
20
|
+
if (!this.filterKeyword(context, keyword)) {
|
|
21
|
+
return
|
|
22
|
+
}
|
|
23
|
+
if (['views', 'specification', 'model'].includes(keyword.value)) {
|
|
24
|
+
return acceptor(context, {
|
|
25
|
+
label: keyword.value,
|
|
26
|
+
detail: `Insert ${keyword} block`,
|
|
27
|
+
kind: CompletionItemKind.Module,
|
|
28
|
+
insertTextFormat: InsertTextFormat.Snippet,
|
|
29
|
+
insertText: `${keyword} {\n\t$0\n}`
|
|
30
|
+
})
|
|
31
|
+
}
|
|
32
|
+
if (keyword.value === 'dynamic') {
|
|
33
|
+
return acceptor(context, {
|
|
34
|
+
label: keyword.value,
|
|
35
|
+
detail: `Insert dynamic view`,
|
|
36
|
+
kind: CompletionItemKind.Class,
|
|
37
|
+
insertTextFormat: InsertTextFormat.Snippet,
|
|
38
|
+
insertText: [
|
|
39
|
+
'dynamic view ${1:view_${TM_FILENAME_BASE}_${CURRENT_SECOND}} {',
|
|
40
|
+
'\ttitle \'${2:Untitled}\'',
|
|
41
|
+
'\t',
|
|
42
|
+
'\t$0',
|
|
43
|
+
'}'
|
|
44
|
+
].join('\n')
|
|
45
|
+
})
|
|
46
|
+
}
|
|
47
|
+
acceptor(context, {
|
|
48
|
+
label: keyword.value,
|
|
49
|
+
kind: this.getKeywordCompletionItemKind(keyword),
|
|
50
|
+
detail: 'Keyword',
|
|
51
|
+
sortText: '1'
|
|
52
|
+
})
|
|
53
|
+
}
|
|
7
54
|
}
|
|
@@ -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) {
|
|
@@ -608,9 +608,7 @@ export class LikeC4ModelParser {
|
|
|
608
608
|
}
|
|
609
609
|
}
|
|
610
610
|
if (ast.isViewRuleAutoLayout(astRule)) {
|
|
611
|
-
return
|
|
612
|
-
autoLayout: toAutoLayout(astRule.direction)
|
|
613
|
-
}
|
|
611
|
+
return toAutoLayout(astRule)
|
|
614
612
|
}
|
|
615
613
|
nonexhaustive(astRule)
|
|
616
614
|
}
|
|
@@ -849,9 +847,7 @@ export class LikeC4ModelParser {
|
|
|
849
847
|
return acc
|
|
850
848
|
}
|
|
851
849
|
if (ast.isViewRuleAutoLayout(n)) {
|
|
852
|
-
acc.push(
|
|
853
|
-
autoLayout: toAutoLayout(n.direction)
|
|
854
|
-
})
|
|
850
|
+
acc.push(toAutoLayout(n))
|
|
855
851
|
return acc
|
|
856
852
|
}
|
|
857
853
|
nonexhaustive(n)
|
|
@@ -175,7 +175,11 @@ export class ComputeCtx {
|
|
|
175
175
|
|
|
176
176
|
return calcViewLayoutHash({
|
|
177
177
|
...view,
|
|
178
|
-
autoLayout:
|
|
178
|
+
autoLayout: {
|
|
179
|
+
direction: autoLayoutRule?.direction ?? 'TB',
|
|
180
|
+
...(autoLayoutRule?.nodeSep && { nodeSep: autoLayoutRule.nodeSep }),
|
|
181
|
+
...(autoLayoutRule?.rankSep && { rankSep: autoLayoutRule.rankSep }),
|
|
182
|
+
},
|
|
179
183
|
nodes: map(nodes, omit(['notation'])),
|
|
180
184
|
edges: applyCustomRelationProperties(rules, nodes, sortedEdges),
|
|
181
185
|
...(elementNotations.length > 0 && {
|
|
@@ -200,7 +200,11 @@ export class DynamicViewComputeCtx {
|
|
|
200
200
|
|
|
201
201
|
return calcViewLayoutHash({
|
|
202
202
|
...view,
|
|
203
|
-
autoLayout:
|
|
203
|
+
autoLayout: {
|
|
204
|
+
direction: autoLayoutRule?.direction ?? 'LR',
|
|
205
|
+
...(autoLayoutRule?.nodeSep && { nodeSep: autoLayoutRule.nodeSep }),
|
|
206
|
+
...(autoLayoutRule?.rankSep && { rankSep: autoLayoutRule.rankSep }),
|
|
207
|
+
},
|
|
204
208
|
nodes: map(nodes, omit(['notation'])),
|
|
205
209
|
edges,
|
|
206
210
|
...(elementNotations.length > 0 && {
|
|
@@ -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/src/test/testServices.ts
CHANGED
|
@@ -72,7 +72,7 @@ export function createTestServices(workspace = 'file:///test/workspace') {
|
|
|
72
72
|
const format = async (input: string | LikeC4LangiumDocument, uri?: string) => {
|
|
73
73
|
const document = typeof input === 'string' ? await parse(input, uri) : input
|
|
74
74
|
await services.shared.workspace.WorkspaceLock.write(async (_cancelToken) => {
|
|
75
|
-
await documentBuilder.build([document], { validation:
|
|
75
|
+
await documentBuilder.build([document], { validation: true })
|
|
76
76
|
})
|
|
77
77
|
|
|
78
78
|
const edits = await services.lsp.Formatter?.formatDocument(
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { isAutoLayoutDirection, type ViewManualLayout } from '@likec4/core'
|
|
2
2
|
import { decode, encode } from '@msgpack/msgpack'
|
|
3
3
|
import { fromBase64, toBase64 } from '@smithy/util-base64'
|
|
4
4
|
import { mapValues } from 'remeda'
|
|
@@ -28,10 +28,13 @@ function pack({
|
|
|
28
28
|
function unpack({
|
|
29
29
|
nodes,
|
|
30
30
|
edges,
|
|
31
|
+
autoLayout,
|
|
31
32
|
...rest
|
|
32
33
|
}: ReturnType<typeof pack>): ViewManualLayout {
|
|
33
34
|
return {
|
|
34
35
|
...rest,
|
|
36
|
+
/// Try to parse the old format for backward compatibility
|
|
37
|
+
autoLayout: isAutoLayoutDirection(autoLayout) ? { direction: autoLayout } : autoLayout,
|
|
35
38
|
nodes: mapValues(nodes, ({ b, c, ...n }) => ({
|
|
36
39
|
x: b[0],
|
|
37
40
|
y: b[1],
|
|
@@ -85,4 +88,4 @@ export function deserializeFromComment(comment: string): ViewManualLayout {
|
|
|
85
88
|
.join('')
|
|
86
89
|
const decodedb64 = fromBase64(b64)
|
|
87
90
|
return unpack(decode(decodedb64) as any) as ViewManualLayout
|
|
88
|
-
}
|
|
91
|
+
}
|
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
|
-
}
|