@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.
Files changed (60) hide show
  1. package/dist/browser.cjs +5 -1
  2. package/dist/browser.d.cts +7 -5
  3. package/dist/browser.d.mts +7 -5
  4. package/dist/browser.d.ts +7 -5
  5. package/dist/browser.mjs +3 -2
  6. package/dist/index.cjs +15 -2
  7. package/dist/index.d.cts +14 -11
  8. package/dist/index.d.mts +14 -11
  9. package/dist/index.d.ts +14 -11
  10. package/dist/index.mjs +17 -1
  11. package/dist/likec4lib.cjs +1538 -952
  12. package/dist/likec4lib.d.cts +1 -1
  13. package/dist/likec4lib.d.mts +1 -1
  14. package/dist/likec4lib.d.ts +1 -1
  15. package/dist/likec4lib.mjs +1538 -952
  16. package/dist/model-graph/index.cjs +1 -1
  17. package/dist/model-graph/index.mjs +1 -1
  18. package/dist/protocol.cjs +1 -1
  19. package/dist/protocol.d.cts +3 -1
  20. package/dist/protocol.d.mts +3 -1
  21. package/dist/protocol.d.ts +3 -1
  22. package/dist/protocol.mjs +1 -1
  23. package/dist/shared/{language-server.DJhoJBWh.cjs → language-server.3Bh0zvVS.cjs} +10 -2
  24. package/dist/shared/{language-server.CnVuAxDh.d.ts → language-server.BCDM5gt9.d.ts} +147 -137
  25. package/dist/shared/{language-server.DEK39RmI.d.mts → language-server.BN7V1vQA.d.mts} +147 -137
  26. package/dist/shared/language-server.BX2gtzo8.d.cts +1233 -0
  27. package/dist/shared/{language-server.BFBeyvV8.mjs → language-server.BbMFBkE-.mjs} +196 -140
  28. package/dist/shared/language-server.BiN_phWO.d.mts +1233 -0
  29. package/dist/shared/{language-server.CbqwHp7Q.mjs → language-server.BxxqS4Id.mjs} +10 -2
  30. package/dist/shared/{language-server.Bfc-5M8A.cjs → language-server.BzrAcTYK.cjs} +194 -137
  31. package/dist/shared/{language-server.BGy3FJPJ.d.cts → language-server.DtLmc4Fz.d.cts} +147 -137
  32. package/dist/shared/language-server.ljop0PBQ.d.ts +1233 -0
  33. package/package.json +34 -30
  34. package/src/Rpc.ts +10 -6
  35. package/src/ast.ts +24 -10
  36. package/src/browser.ts +5 -0
  37. package/src/formatting/LikeC4Formatter.ts +19 -7
  38. package/src/generated/ast.ts +9 -4
  39. package/src/generated/grammar.ts +1 -1
  40. package/src/generated-lib/icons.ts +1538 -952
  41. package/src/index.ts +23 -2
  42. package/src/like-c4.langium +8 -4
  43. package/src/likec4lib.ts +1 -1
  44. package/src/logger.ts +16 -16
  45. package/src/lsp/CompletionProvider.ts +48 -1
  46. package/src/model/model-builder.ts +12 -12
  47. package/src/model/model-parser.ts +2 -6
  48. package/src/model-graph/compute-view/compute.ts +5 -1
  49. package/src/model-graph/dynamic-view/compute.ts +5 -1
  50. package/src/model-graph/utils/applyCustomRelationProperties.ts +1 -1
  51. package/src/protocol.ts +5 -1
  52. package/src/shared/WorkspaceManager.ts +1 -1
  53. package/src/test/testServices.ts +1 -1
  54. package/src/view-utils/manual-layout.ts +5 -2
  55. package/dist/node.cjs +0 -18
  56. package/dist/node.d.cts +0 -19
  57. package/dist/node.d.mts +0 -19
  58. package/dist/node.d.ts +0 -19
  59. package/dist/node.mjs +0 -16
  60. package/src/node.ts +0 -20
package/src/index.ts CHANGED
@@ -1,4 +1,25 @@
1
- export { setLogLevel } from './logger'
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
+ }
@@ -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 Hex: /[a-zA-Z0-9]+/;
626
+ terminal Number returns number: /\b\d+\b/;
627
+ terminal Hex: /\b[a-zA-Z0-9]+\b/;
package/src/likec4lib.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { LibIcons } from './generated-lib/icons'
2
2
 
3
3
  export const Scheme = 'likec4builtin'
4
- export const Uri = `${Scheme}:///likec4/lib/icons.c4`
4
+ export const Uri = `${Scheme}:///likec4/lib/icons.c4` as const
5
5
 
6
6
  export { LibIcons as Content }
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 && typeof arg.stack === 'string') {
32
- return arg.message + '\n' + arg.stack
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 String(arg)
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 && typeof arg.stack === 'string') {
56
- return arg.message + '\n' + arg.stack
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 String(arg)
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
- connection.console.info(message)
78
- break
79
- }
73
+ // case level >= LogLevels.info: {
74
+ // connection.console.info(message)
75
+ // break
76
+ // }
80
77
  case level >= LogLevels.log: {
81
- connection.console.log(message)
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.addReporter(reporter)
95
+ root.setReporters([reporter])
96
96
  logger.setReporters(root.options.reporters)
97
97
  }
@@ -1,7 +1,54 @@
1
- import { type CompletionProviderOptions, DefaultCompletionProvider } from 'langium/lsp'
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)\n${printDocs(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] buildModel from ${docs.length} docs:\n${printDocs(docs)}`)
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: autoLayoutRule?.autoLayout ?? 'TB',
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: autoLayoutRule?.autoLayout ?? 'LR',
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 { isEmpty, isNullish, omitBy } from 'remeda'
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 RequestType0<{ model: ComputedLikeC4Model | null }, void>(
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() {
@@ -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: false })
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 { ViewManualLayout } from '@likec4/core'
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
- }