@likec4/language-server 1.15.0 → 1.16.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 (47) hide show
  1. package/contrib/likec4.tmLanguage.json +1 -1
  2. package/dist/browser.cjs +1 -1
  3. package/dist/browser.d.cts +2 -2
  4. package/dist/browser.d.mts +2 -2
  5. package/dist/browser.d.ts +2 -2
  6. package/dist/browser.mjs +2 -2
  7. package/dist/index.cjs +1 -1
  8. package/dist/index.d.cts +2 -2
  9. package/dist/index.d.mts +2 -2
  10. package/dist/index.d.ts +2 -2
  11. package/dist/index.mjs +2 -2
  12. package/dist/model-graph/index.cjs +1 -1
  13. package/dist/model-graph/index.d.cts +4 -2
  14. package/dist/model-graph/index.d.mts +4 -2
  15. package/dist/model-graph/index.d.ts +4 -2
  16. package/dist/model-graph/index.mjs +1 -1
  17. package/dist/shared/language-server.7iILaJYc.d.ts +1338 -0
  18. package/dist/shared/{language-server.80ITEDo5.cjs → language-server.Bd3NZ8uH.cjs} +130 -76
  19. package/dist/shared/{language-server.DXC9g4_f.mjs → language-server.C5gxpVUH.mjs} +132 -78
  20. package/dist/shared/language-server.CmBZHwSl.d.cts +1338 -0
  21. package/dist/shared/{language-server.U2piOAVt.d.cts → language-server.CnkCWVtf.d.cts} +44 -10
  22. package/dist/shared/{language-server.DfMwkd2l.d.mts → language-server.DIaiY0-C.d.mts} +44 -10
  23. package/dist/shared/language-server.DViE1Zxi.d.mts +1338 -0
  24. package/dist/shared/{language-server.zY53FGJE.mjs → language-server.D_13fWJQ.mjs} +216 -94
  25. package/dist/shared/{language-server.j-ShR6as.d.ts → language-server.DwyQ1FtY.d.ts} +44 -10
  26. package/dist/shared/{language-server.BUtiWTKg.cjs → language-server.Dym6GL4P.cjs} +214 -92
  27. package/package.json +8 -8
  28. package/src/ast.ts +11 -3
  29. package/src/formatting/LikeC4Formatter.ts +44 -4
  30. package/src/generated/ast.ts +111 -10
  31. package/src/generated/grammar.ts +1 -1
  32. package/src/like-c4.langium +19 -0
  33. package/src/lsp/SemanticTokenProvider.ts +3 -1
  34. package/src/model/model-builder.ts +34 -32
  35. package/src/model/model-parser.ts +91 -18
  36. package/src/model-graph/LikeC4ModelGraph.ts +22 -11
  37. package/src/model-graph/compute-view/__test__/fixture.ts +114 -44
  38. package/src/model-graph/compute-view/compute.ts +77 -72
  39. package/src/model-graph/dynamic-view/compute.ts +4 -1
  40. package/src/model-graph/utils/applyCustomRelationProperties.ts +7 -38
  41. package/src/model-graph/utils/applyViewRuleStyles.ts +0 -4
  42. package/src/model-graph/utils/relationExpressionToPredicates.ts +43 -0
  43. package/src/references/scope-computation.ts +10 -0
  44. package/src/validation/index.ts +3 -0
  45. package/src/validation/specification.ts +21 -0
  46. package/src/view-utils/index.ts +0 -1
  47. package/src/view-utils/resolve-global-rules.ts +66 -50
@@ -12,7 +12,7 @@
12
12
  },
13
13
  {
14
14
  "name": "keyword.control.likec4",
15
- "match": "\\b(BottomTop|LeftRight|RightLeft|TopBottom|amber|and|autoLayout|blue|border|browser|color|crow|cylinder|dashed|description|diamond|dot|dotted|dynamic|element|element\\.kind|element\\.tag|exclude|extend|extends|global|gray|green|group|head|icon|icons|include|indigo|is|kind|likec4lib|line|link|metadata|mobile|model|muted|navigateTo|none|normal|not|notation|notes|odiamond|odot|of|onormal|opacity|open|or|par|parallel|person|primary|queue|rectangle|red|relationship|secondary|shape|sky|slate|solid|specification|storage|style|styleGroup|tag|tail|technology|title|vee|view|views|where|with)\\b"
15
+ "match": "\\b(BottomTop|LeftRight|RightLeft|TopBottom|amber|and|autoLayout|blue|border|browser|color|crow|cylinder|dashed|description|diamond|dot|dotted|dynamic|dynamicPredicateGroup|element|element\\.kind|element\\.tag|exclude|extend|extends|global|gray|green|group|head|icon|icons|include|indigo|is|kind|likec4lib|line|link|metadata|mobile|model|muted|navigateTo|none|normal|not|notation|notes|odiamond|odot|of|onormal|opacity|open|or|par|parallel|person|predicate|predicateGroup|primary|queue|rectangle|red|relationship|secondary|shape|sky|slate|solid|specification|storage|style|styleGroup|tag|tail|technology|title|vee|view|views|where|with)\\b"
16
16
  },
17
17
  {
18
18
  "name": "string.quoted.double.likec4",
package/dist/browser.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  const lsp = require('langium/lsp');
4
4
  const browser = require('vscode-languageserver/browser');
5
- const module$1 = require('./shared/language-server.BUtiWTKg.cjs');
5
+ const module$1 = require('./shared/language-server.Dym6GL4P.cjs');
6
6
 
7
7
  function startLanguageServer() {
8
8
  const messageReader = new browser.BrowserMessageReader(self);
@@ -1,5 +1,5 @@
1
- import { L as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.U2piOAVt.cjs';
2
- export { f as FqnIndex, F as FqnIndexEntry, I as IsValidFn, k as LanguageServicesContext, j as LikeC4AddedServices, g as LikeC4ModelBuilder, h as LikeC4ModelLocator, i as LikeC4ModelParser, d as LikeC4Module, M as ModelParsedListener, e as computeDocumentFqn, c as createCustomLanguageServices, b as createLanguageServices, l as createSharedServices, s as setLogLevel } from './shared/language-server.U2piOAVt.cjs';
1
+ import { L as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.CnkCWVtf.cjs';
2
+ export { f as FqnIndex, F as FqnIndexEntry, I as IsValidFn, k as LanguageServicesContext, j as LikeC4AddedServices, g as LikeC4ModelBuilder, h as LikeC4ModelLocator, i as LikeC4ModelParser, d as LikeC4Module, M as ModelParsedListener, e as computeDocumentFqn, c as createCustomLanguageServices, b as createLanguageServices, l as createSharedServices, s as setLogLevel } from './shared/language-server.CnkCWVtf.cjs';
3
3
  import * as vscode_languageserver from 'vscode-languageserver';
4
4
  import { BrowserMessageReader, BrowserMessageWriter } from 'vscode-languageserver/browser';
5
5
  import 'langium';
@@ -1,5 +1,5 @@
1
- import { L as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.DfMwkd2l.mjs';
2
- export { f as FqnIndex, F as FqnIndexEntry, I as IsValidFn, k as LanguageServicesContext, j as LikeC4AddedServices, g as LikeC4ModelBuilder, h as LikeC4ModelLocator, i as LikeC4ModelParser, d as LikeC4Module, M as ModelParsedListener, e as computeDocumentFqn, c as createCustomLanguageServices, b as createLanguageServices, l as createSharedServices, s as setLogLevel } from './shared/language-server.DfMwkd2l.mjs';
1
+ import { L as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.DIaiY0-C.mjs';
2
+ export { f as FqnIndex, F as FqnIndexEntry, I as IsValidFn, k as LanguageServicesContext, j as LikeC4AddedServices, g as LikeC4ModelBuilder, h as LikeC4ModelLocator, i as LikeC4ModelParser, d as LikeC4Module, M as ModelParsedListener, e as computeDocumentFqn, c as createCustomLanguageServices, b as createLanguageServices, l as createSharedServices, s as setLogLevel } from './shared/language-server.DIaiY0-C.mjs';
3
3
  import * as vscode_languageserver from 'vscode-languageserver';
4
4
  import { BrowserMessageReader, BrowserMessageWriter } from 'vscode-languageserver/browser';
5
5
  import 'langium';
package/dist/browser.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { L as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.j-ShR6as.js';
2
- export { f as FqnIndex, F as FqnIndexEntry, I as IsValidFn, k as LanguageServicesContext, j as LikeC4AddedServices, g as LikeC4ModelBuilder, h as LikeC4ModelLocator, i as LikeC4ModelParser, d as LikeC4Module, M as ModelParsedListener, e as computeDocumentFqn, c as createCustomLanguageServices, b as createLanguageServices, l as createSharedServices, s as setLogLevel } from './shared/language-server.j-ShR6as.js';
1
+ import { L as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.DwyQ1FtY.js';
2
+ export { f as FqnIndex, F as FqnIndexEntry, I as IsValidFn, k as LanguageServicesContext, j as LikeC4AddedServices, g as LikeC4ModelBuilder, h as LikeC4ModelLocator, i as LikeC4ModelParser, d as LikeC4Module, M as ModelParsedListener, e as computeDocumentFqn, c as createCustomLanguageServices, b as createLanguageServices, l as createSharedServices, s as setLogLevel } from './shared/language-server.DwyQ1FtY.js';
3
3
  import * as vscode_languageserver from 'vscode-languageserver';
4
4
  import { BrowserMessageReader, BrowserMessageWriter } from 'vscode-languageserver/browser';
5
5
  import 'langium';
package/dist/browser.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { startLanguageServer as startLanguageServer$1 } from 'langium/lsp';
2
2
  import { BrowserMessageReader, BrowserMessageWriter, createConnection } from 'vscode-languageserver/browser';
3
- import { c as createLanguageServices } from './shared/language-server.zY53FGJE.mjs';
4
- export { L as LikeC4Module, a as createCustomLanguageServices, s as setLogLevel } from './shared/language-server.zY53FGJE.mjs';
3
+ import { c as createLanguageServices } from './shared/language-server.D_13fWJQ.mjs';
4
+ export { L as LikeC4Module, a as createCustomLanguageServices, s as setLogLevel } from './shared/language-server.D_13fWJQ.mjs';
5
5
 
6
6
  function startLanguageServer() {
7
7
  const messageReader = new BrowserMessageReader(self);
package/dist/index.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
  const lsp = require('langium/lsp');
4
4
  const node$1 = require('langium/node');
5
5
  const node = require('vscode-languageserver/node');
6
- const module$1 = require('./shared/language-server.BUtiWTKg.cjs');
6
+ const module$1 = require('./shared/language-server.Dym6GL4P.cjs');
7
7
 
8
8
  function startLanguageServer() {
9
9
  const connection = node.createConnection(node.ProposedFeatures.all);
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { L as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.U2piOAVt.cjs';
2
- export { f as FqnIndex, F as FqnIndexEntry, I as IsValidFn, k as LanguageServicesContext, j as LikeC4AddedServices, g as LikeC4ModelBuilder, h as LikeC4ModelLocator, i as LikeC4ModelParser, d as LikeC4Module, M as ModelParsedListener, e as computeDocumentFqn, c as createCustomLanguageServices, b as createLanguageServices, l as createSharedServices, m as lspLogger, s as setLogLevel } from './shared/language-server.U2piOAVt.cjs';
1
+ import { L as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.CnkCWVtf.cjs';
2
+ export { f as FqnIndex, F as FqnIndexEntry, I as IsValidFn, k as LanguageServicesContext, j as LikeC4AddedServices, g as LikeC4ModelBuilder, h as LikeC4ModelLocator, i as LikeC4ModelParser, d as LikeC4Module, M as ModelParsedListener, e as computeDocumentFqn, c as createCustomLanguageServices, b as createLanguageServices, l as createSharedServices, m as lspLogger, s as setLogLevel } from './shared/language-server.CnkCWVtf.cjs';
3
3
  import * as vscode_languageserver_lib_common_inlineCompletion_proposed from 'vscode-languageserver/lib/common/inlineCompletion.proposed';
4
4
  import * as vscode_languageserver from 'vscode-languageserver';
5
5
  import 'langium';
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { L as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.DfMwkd2l.mjs';
2
- export { f as FqnIndex, F as FqnIndexEntry, I as IsValidFn, k as LanguageServicesContext, j as LikeC4AddedServices, g as LikeC4ModelBuilder, h as LikeC4ModelLocator, i as LikeC4ModelParser, d as LikeC4Module, M as ModelParsedListener, e as computeDocumentFqn, c as createCustomLanguageServices, b as createLanguageServices, l as createSharedServices, m as lspLogger, s as setLogLevel } from './shared/language-server.DfMwkd2l.mjs';
1
+ import { L as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.DIaiY0-C.mjs';
2
+ export { f as FqnIndex, F as FqnIndexEntry, I as IsValidFn, k as LanguageServicesContext, j as LikeC4AddedServices, g as LikeC4ModelBuilder, h as LikeC4ModelLocator, i as LikeC4ModelParser, d as LikeC4Module, M as ModelParsedListener, e as computeDocumentFqn, c as createCustomLanguageServices, b as createLanguageServices, l as createSharedServices, m as lspLogger, s as setLogLevel } from './shared/language-server.DIaiY0-C.mjs';
3
3
  import * as vscode_languageserver_lib_common_inlineCompletion_proposed from 'vscode-languageserver/lib/common/inlineCompletion.proposed';
4
4
  import * as vscode_languageserver from 'vscode-languageserver';
5
5
  import 'langium';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { L as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.j-ShR6as.js';
2
- export { f as FqnIndex, F as FqnIndexEntry, I as IsValidFn, k as LanguageServicesContext, j as LikeC4AddedServices, g as LikeC4ModelBuilder, h as LikeC4ModelLocator, i as LikeC4ModelParser, d as LikeC4Module, M as ModelParsedListener, e as computeDocumentFqn, c as createCustomLanguageServices, b as createLanguageServices, l as createSharedServices, m as lspLogger, s as setLogLevel } from './shared/language-server.j-ShR6as.js';
1
+ import { L as LikeC4SharedServices, a as LikeC4Services } from './shared/language-server.DwyQ1FtY.js';
2
+ export { f as FqnIndex, F as FqnIndexEntry, I as IsValidFn, k as LanguageServicesContext, j as LikeC4AddedServices, g as LikeC4ModelBuilder, h as LikeC4ModelLocator, i as LikeC4ModelParser, d as LikeC4Module, M as ModelParsedListener, e as computeDocumentFqn, c as createCustomLanguageServices, b as createLanguageServices, l as createSharedServices, m as lspLogger, s as setLogLevel } from './shared/language-server.DwyQ1FtY.js';
3
3
  import * as vscode_languageserver_lib_common_inlineCompletion_proposed from 'vscode-languageserver/lib/common/inlineCompletion.proposed';
4
4
  import * as vscode_languageserver from 'vscode-languageserver';
5
5
  import 'langium';
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import { startLanguageServer as startLanguageServer$1 } from 'langium/lsp';
2
2
  import { NodeFileSystem } from 'langium/node';
3
3
  import { createConnection, ProposedFeatures } from 'vscode-languageserver/node';
4
- import { c as createLanguageServices } from './shared/language-server.zY53FGJE.mjs';
5
- export { L as LikeC4Module, a as createCustomLanguageServices, l as lspLogger, s as setLogLevel } from './shared/language-server.zY53FGJE.mjs';
4
+ import { c as createLanguageServices } from './shared/language-server.D_13fWJQ.mjs';
5
+ export { L as LikeC4Module, a as createCustomLanguageServices, l as lspLogger, s as setLogLevel } from './shared/language-server.D_13fWJQ.mjs';
6
6
 
7
7
  function startLanguageServer() {
8
8
  const connection = createConnection(ProposedFeatures.all);
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const LikeC4ModelGraph = require('../shared/language-server.80ITEDo5.cjs');
3
+ const LikeC4ModelGraph = require('../shared/language-server.Bd3NZ8uH.cjs');
4
4
 
5
5
 
6
6
 
@@ -1,8 +1,9 @@
1
- import { Element, Fqn, Relation, RelationID, ElementView, ComputedElementView, DynamicView, ComputedDynamicView } from '@likec4/core';
1
+ import { ModelGlobals, Element, Fqn, Relation, RelationID, ElementView, ComputedElementView, DynamicView, ComputedDynamicView } from '@likec4/core';
2
2
 
3
3
  type Params = {
4
4
  elements: Record<Fqn, Element>;
5
5
  relations: Record<RelationID, Relation>;
6
+ globals?: ModelGlobals;
6
7
  };
7
8
  type RelationEdge = {
8
9
  source: Element;
@@ -17,7 +18,8 @@ type FqnsOrElements = ReadonlyArray<Fqn> | ReadonlyArray<Element>;
17
18
  */
18
19
  declare class LikeC4ModelGraph {
19
20
  #private;
20
- constructor({ elements, relations }: Params);
21
+ readonly globals: ModelGlobals;
22
+ constructor({ elements, relations, globals }: Params);
21
23
  get rootElements(): Element[];
22
24
  get elements(): Element[];
23
25
  element(id: Fqn): Element;
@@ -1,8 +1,9 @@
1
- import { Element, Fqn, Relation, RelationID, ElementView, ComputedElementView, DynamicView, ComputedDynamicView } from '@likec4/core';
1
+ import { ModelGlobals, Element, Fqn, Relation, RelationID, ElementView, ComputedElementView, DynamicView, ComputedDynamicView } from '@likec4/core';
2
2
 
3
3
  type Params = {
4
4
  elements: Record<Fqn, Element>;
5
5
  relations: Record<RelationID, Relation>;
6
+ globals?: ModelGlobals;
6
7
  };
7
8
  type RelationEdge = {
8
9
  source: Element;
@@ -17,7 +18,8 @@ type FqnsOrElements = ReadonlyArray<Fqn> | ReadonlyArray<Element>;
17
18
  */
18
19
  declare class LikeC4ModelGraph {
19
20
  #private;
20
- constructor({ elements, relations }: Params);
21
+ readonly globals: ModelGlobals;
22
+ constructor({ elements, relations, globals }: Params);
21
23
  get rootElements(): Element[];
22
24
  get elements(): Element[];
23
25
  element(id: Fqn): Element;
@@ -1,8 +1,9 @@
1
- import { Element, Fqn, Relation, RelationID, ElementView, ComputedElementView, DynamicView, ComputedDynamicView } from '@likec4/core';
1
+ import { ModelGlobals, Element, Fqn, Relation, RelationID, ElementView, ComputedElementView, DynamicView, ComputedDynamicView } from '@likec4/core';
2
2
 
3
3
  type Params = {
4
4
  elements: Record<Fqn, Element>;
5
5
  relations: Record<RelationID, Relation>;
6
+ globals?: ModelGlobals;
6
7
  };
7
8
  type RelationEdge = {
8
9
  source: Element;
@@ -17,7 +18,8 @@ type FqnsOrElements = ReadonlyArray<Fqn> | ReadonlyArray<Element>;
17
18
  */
18
19
  declare class LikeC4ModelGraph {
19
20
  #private;
20
- constructor({ elements, relations }: Params);
21
+ readonly globals: ModelGlobals;
22
+ constructor({ elements, relations, globals }: Params);
21
23
  get rootElements(): Element[];
22
24
  get elements(): Element[];
23
25
  element(id: Fqn): Element;
@@ -1 +1 @@
1
- export { L as LikeC4ModelGraph, b as computeDynamicView, c as computeElementView, a as computeView } from '../shared/language-server.DXC9g4_f.mjs';
1
+ export { L as LikeC4ModelGraph, b as computeDynamicView, c as computeElementView, a as computeView } from '../shared/language-server.C5gxpVUH.mjs';