@lapidist/dtif-language-server 1.0.4 → 1.0.6

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/README.md CHANGED
@@ -65,9 +65,10 @@ start({ connection });
65
65
 
66
66
  The language server reads optional workspace configuration under the `dtifLanguageServer` section.
67
67
 
68
- | Setting | Type | Default | Description |
69
- | ----------------- | --------------- | ------- | ------------------------------------------------------------------------------- |
70
- | `validation.mode` | `'on' \| 'off'` | `'on'` | Enables or suppresses schema diagnostics while keeping navigation indexes warm. |
68
+ <!-- prettier-ignore -->
69
+ | Setting | Type | Default | Description |
70
+ | --- | --- | --- | --- |
71
+ | `validation.mode` | `'on' \| 'off'` | `'on'` | Enables or suppresses schema diagnostics while keeping navigation indexes warm. |
71
72
 
72
73
  Settings can be supplied by clients that implement [`workspace/configuration`](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#workspace_configuration) or via editor-specific configuration files.
73
74
 
@@ -97,11 +98,12 @@ Integration tests in `language-server/tests/` spin up the LSP over JSON-RPC stre
97
98
 
98
99
  ## Troubleshooting
99
100
 
100
- | Symptom | Suggested action |
101
- | ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
102
- | Diagnostics do not appear | Confirm `validation.mode` is set to `'on'` and the client calls `textDocument/didOpen` for DTIF files. |
103
- | Rename edits miss some files | Only documents opened by the client are available to the server. Ensure the editor loads relevant files before triggering rename. |
104
- | Diagnostics do not reappear after toggling validation | Ensure the client re-requests configuration after edits. Some editors only refetch settings on save or focus changes. |
101
+ <!-- prettier-ignore -->
102
+ | Symptom | Suggested action |
103
+ | --- | --- |
104
+ | Diagnostics do not appear | Confirm `validation.mode` is set to `'on'` and the client calls `textDocument/didOpen` for DTIF files. |
105
+ | Rename edits miss some files | Only documents opened by the client are available to the server. Ensure the editor loads relevant files before triggering rename. |
106
+ | Diagnostics do not reappear after toggling validation | Ensure the client re-requests configuration after edits. Some editors only refetch settings on save or focus changes. |
105
107
 
106
108
  ## License
107
109
 
@@ -0,0 +1,5 @@
1
+ import { type Disposable } from 'vscode-languageserver/node.js';
2
+ import type { ManagedDocuments } from '../runtime/documents.js';
3
+ import type { LanguageServerSession } from '../runtime/session.js';
4
+ export declare function registerDocumentEventHandlers(documents: ManagedDocuments, session: LanguageServerSession): Disposable[];
5
+ //# sourceMappingURL=documents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/handlers/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAgC,MAAM,+BAA+B,CAAC;AAE9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,qBAAqB,GAC7B,UAAU,EAAE,CAYd"}
@@ -0,0 +1,14 @@
1
+ export function registerDocumentEventHandlers(documents, session) {
2
+ return [
3
+ documents.onDidOpen((event) => {
4
+ session.handleDocumentOpen(event);
5
+ }),
6
+ documents.onDidChangeContent((event) => {
7
+ session.handleDocumentChange(event);
8
+ }),
9
+ documents.onDidClose((event) => {
10
+ session.handleDocumentClose(event);
11
+ })
12
+ ];
13
+ }
14
+ //# sourceMappingURL=documents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/handlers/documents.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,6BAA6B,CAC3C,SAA2B,EAC3B,OAA8B;IAE9B,OAAO;QACL,SAAS,CAAC,SAAS,CAAC,CAAC,KAA4C,EAAE,EAAE;YACnE,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC;QACF,SAAS,CAAC,kBAAkB,CAAC,CAAC,KAA4C,EAAE,EAAE;YAC5E,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC;QACF,SAAS,CAAC,UAAU,CAAC,CAAC,KAA4C,EAAE,EAAE;YACpE,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Connection } from 'vscode-languageserver/node.js';
2
+ import type { ManagedDocuments } from '../runtime/documents.js';
3
+ import type { LanguageServerSession } from '../runtime/session.js';
4
+ export declare function registerLanguageFeatureHandlers(connection: Connection, documents: ManagedDocuments, session: LanguageServerSession): void;
5
+ //# sourceMappingURL=features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/handlers/features.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAOnE,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,qBAAqB,GAC7B,IAAI,CA8BN"}
@@ -0,0 +1,25 @@
1
+ import { buildQuickFixes } from '../code-actions.js';
2
+ import { buildCompletions } from '../features/completions/index.js';
3
+ import { buildHover } from '../features/hover.js';
4
+ import { findDefinition } from '../features/definition.js';
5
+ import { buildRenameEdit } from '../features/rename.js';
6
+ export function registerLanguageFeatureHandlers(connection, documents, session) {
7
+ connection.onDefinition((params) => findDefinition(session.store, params.textDocument.uri, params.position));
8
+ connection.onHover((params) => buildHover(session.store, params.textDocument.uri, params.position));
9
+ connection.onCompletion((params) => {
10
+ const document = documents.get(params.textDocument.uri);
11
+ if (!document) {
12
+ return [];
13
+ }
14
+ return buildCompletions({ document, position: params.position, store: session.store });
15
+ });
16
+ connection.onRenameRequest((params) => buildRenameEdit(session.store, params.textDocument.uri, params.position, params.newName));
17
+ connection.onCodeAction((params) => {
18
+ const document = documents.get(params.textDocument.uri);
19
+ if (!document) {
20
+ return [];
21
+ }
22
+ return buildQuickFixes({ document, params, store: session.store });
23
+ });
24
+ }
25
+ //# sourceMappingURL=features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/handlers/features.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,UAAU,+BAA+B,CAC7C,UAAsB,EACtB,SAA2B,EAC3B,OAA8B;IAE9B,UAAU,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE,CACjC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CACxE,CAAC;IAEF,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5B,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CACpE,CAAC;IAEF,UAAU,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,gBAAgB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE,CACpC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CACzF,CAAC;IAEF,UAAU,CAAC,YAAY,CAAC,CAAC,MAAwB,EAAE,EAAE;QACnD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type Connection, type Disposable } from 'vscode-languageserver/node.js';
2
+ import type { LanguageServerSession } from '../runtime/session.js';
3
+ export declare function registerLifecycleHandlers(connection: Connection, session: LanguageServerSession, documentListeners: readonly Disposable[]): void;
4
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/handlers/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EAEhB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,qBAAqB,EAC9B,iBAAiB,EAAE,SAAS,UAAU,EAAE,GACvC,IAAI,CAiBN"}
@@ -0,0 +1,16 @@
1
+ export function registerLifecycleHandlers(connection, session, documentListeners) {
2
+ connection.onInitialize(() => session.handleInitialize());
3
+ connection.onInitialized(() => {
4
+ void session.handleInitialized();
5
+ });
6
+ connection.onShutdown(() => {
7
+ session.handleShutdown();
8
+ for (const disposable of documentListeners) {
9
+ disposable.dispose();
10
+ }
11
+ });
12
+ connection.onDidChangeConfiguration(() => {
13
+ void session.handleDidChangeConfiguration();
14
+ });
15
+ }
16
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/handlers/lifecycle.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,yBAAyB,CACvC,UAAsB,EACtB,OAA8B,EAC9B,iBAAwC;IAExC,UAAU,CAAC,YAAY,CAAC,GAAqB,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAE5E,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE;QAC5B,KAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE;QACzB,OAAO,CAAC,cAAc,EAAE,CAAC;QACzB,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;YAC3C,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,wBAAwB,CAAC,GAAG,EAAE;QACvC,KAAK,OAAO,CAAC,4BAA4B,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings-controller.d.ts","sourceRoot":"","sources":["../../../src/runtime/services/settings-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAKL,KAAK,0BAA0B,EAChC,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;gBAEZ,KAAK,EAAE,OAAO;CAK3B;AAED,qBAAa,kBAAkB;;gBAIjB,UAAU,EAAE,UAAU;IAIlC,IAAI,OAAO,IAAI,0BAA0B,CAExC;IAED,KAAK,IAAI,IAAI;IAIP,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;YAkB1B,IAAI;CASnB"}
1
+ {"version":3,"file":"settings-controller.d.ts","sourceRoot":"","sources":["../../../src/runtime/services/settings-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAKL,KAAK,0BAA0B,EAChC,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;gBAEZ,KAAK,EAAE,OAAO;CAK3B;AAED,qBAAa,kBAAkB;;gBAIjB,UAAU,EAAE,UAAU;IAIlC,IAAI,OAAO,IAAI,0BAA0B,CAExC;IAED,KAAK,IAAI,IAAI;IAIP,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;YAyB1B,IAAI;CAWnB"}
@@ -22,12 +22,18 @@ export class SettingsController {
22
22
  async refresh() {
23
23
  const previous = this.#current;
24
24
  let next;
25
+ let warnings = [];
25
26
  try {
26
- next = await this.read();
27
+ const result = await this.read();
28
+ next = result.settings;
29
+ warnings = result.warnings;
27
30
  }
28
31
  catch (error) {
29
32
  throw new SettingsReadError(error);
30
33
  }
34
+ for (const warning of warnings) {
35
+ this.#connection.console.warn(`DTIF language server settings warning: ${warning}`);
36
+ }
31
37
  if (settingsEqual(previous, next)) {
32
38
  return { previous, current: previous, changed: false };
33
39
  }
@@ -37,7 +43,7 @@ export class SettingsController {
37
43
  async read() {
38
44
  const workspace = this.#connection.workspace;
39
45
  if (!hasConfiguration(workspace)) {
40
- return DEFAULT_SETTINGS;
46
+ return { settings: DEFAULT_SETTINGS, warnings: [] };
41
47
  }
42
48
  const configuration = await workspace.getConfiguration({ section: SETTINGS_SECTION });
43
49
  return parseSettings(configuration);
@@ -1 +1 @@
1
- {"version":3,"file":"settings-controller.js","sourceRoot":"","sources":["../../../src/runtime/services/settings-controller.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EAEd,MAAM,mBAAmB,CAAC;AAQ3B,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,KAAK,CAAU;IAExB,YAAY,KAAc;QACxB,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IAC7B,WAAW,CAAa;IACxB,QAAQ,GAA+B,gBAAgB,CAAC;IAExD,YAAY,UAAsB;QAChC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,IAAgC,CAAC;QAErC,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAA2B,CAAC;QAClF,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAA2B,CAAC;IAC7E,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,MAAM,SAAS,GAAY,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QACtD,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,MAAM,aAAa,GAAY,MAAM,SAAS,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC/F,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;CACF;AAMD,SAAS,gBAAgB,CAAC,SAAkB;IAC1C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAY,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IACnE,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"settings-controller.js","sourceRoot":"","sources":["../../../src/runtime/services/settings-controller.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EAEd,MAAM,mBAAmB,CAAC;AAQ3B,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,KAAK,CAAU;IAExB,YAAY,KAAc;QACxB,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IAC7B,WAAW,CAAa;IACxB,QAAQ,GAA+B,gBAAgB,CAAC;IAExD,YAAY,UAAsB;QAChC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,IAAgC,CAAC;QACrC,IAAI,QAAQ,GAAsB,EAAE,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;YACvB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,0CAA0C,OAAO,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAA2B,CAAC;QAClF,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAA2B,CAAC;IAC7E,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,MAAM,SAAS,GAAY,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QACtD,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAEhD,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAY,MAAM,SAAS,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC/F,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;CACF;AAMD,SAAS,gBAAgB,CAAC,SAAkB;IAC1C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAY,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IACnE,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,UAAU,EAIhB,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEvF,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,cAAc,CA+E9E;AAED,wBAAgB,KAAK,IAAI,cAAc,CAItC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAKvF,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,cAAc,CAqB9E;AAED,wBAAgB,KAAK,IAAI,cAAc,CAItC"}
package/dist/server.js CHANGED
@@ -1,61 +1,22 @@
1
1
  import { createConnection, ProposedFeatures } from 'vscode-languageserver/node.js';
2
2
  import { pathToFileURL } from 'node:url';
3
- import { buildQuickFixes } from './code-actions.js';
4
- import { buildCompletions } from './features/completions/index.js';
5
- import { buildHover } from './features/hover.js';
6
- import { findDefinition } from './features/definition.js';
7
- import { buildRenameEdit } from './features/rename.js';
8
3
  import { DocumentValidator } from './diagnostics/index.js';
9
4
  import { DocumentAnalysisStore } from './core/documents/analysis-store.js';
10
5
  import { createManagedDocuments } from './runtime/documents.js';
11
6
  import { LanguageServerSession } from './runtime/session.js';
7
+ import { registerLanguageFeatureHandlers } from './handlers/features.js';
8
+ import { registerDocumentEventHandlers } from './handlers/documents.js';
9
+ import { registerLifecycleHandlers } from './handlers/lifecycle.js';
12
10
  export function createServer(options = {}) {
13
11
  const connection = options.connection ?? createConnection(ProposedFeatures.all);
14
12
  const documents = options.documents ?? createManagedDocuments();
15
13
  const validator = options.validator ?? new DocumentValidator();
16
14
  const store = options.store ?? new DocumentAnalysisStore();
17
15
  const session = new LanguageServerSession({ connection, documents, validator, store });
18
- const documentListeners = [];
19
- connection.onInitialize(() => session.handleInitialize());
20
- connection.onInitialized(() => {
21
- void session.handleInitialized();
22
- });
23
- connection.onShutdown(() => {
24
- session.handleShutdown();
25
- for (const disposable of documentListeners) {
26
- disposable.dispose();
27
- }
28
- });
29
- connection.onDidChangeConfiguration(() => {
30
- void session.handleDidChangeConfiguration();
31
- });
32
- connection.onDefinition((params) => findDefinition(session.store, params.textDocument.uri, params.position));
33
- connection.onHover((params) => buildHover(session.store, params.textDocument.uri, params.position));
34
- connection.onCompletion((params) => {
35
- const document = documents.get(params.textDocument.uri);
36
- if (!document) {
37
- return [];
38
- }
39
- return buildCompletions({ document, position: params.position, store: session.store });
40
- });
41
- connection.onRenameRequest((params) => buildRenameEdit(session.store, params.textDocument.uri, params.position, params.newName));
42
- connection.onCodeAction((params) => {
43
- const document = documents.get(params.textDocument.uri);
44
- if (!document) {
45
- return [];
46
- }
47
- return buildQuickFixes({ document, params, store: session.store });
48
- });
49
16
  documents.listen(connection);
50
- documentListeners.push(documents.onDidOpen((event) => {
51
- session.handleDocumentOpen(event);
52
- }));
53
- documentListeners.push(documents.onDidChangeContent((event) => {
54
- session.handleDocumentChange(event);
55
- }));
56
- documentListeners.push(documents.onDidClose((event) => {
57
- session.handleDocumentClose(event);
58
- }));
17
+ const documentListeners = registerDocumentEventHandlers(documents, session);
18
+ registerLifecycleHandlers(connection, session, documentListeners);
19
+ registerLanguageFeatureHandlers(connection, documents, session);
59
20
  return {
60
21
  connection,
61
22
  documents,
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAmB,MAAM,+BAA+B,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAyB,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAkBpE,MAAM,UAAU,YAAY,CAAC,UAA+B,EAAE;IAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAChF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,sBAAsB,EAAE,CAAC;IAChE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,iBAAiB,EAAE,CAAC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,qBAAqB,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvF,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAE7B,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAE5E,yBAAyB,CAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAClE,+BAA+B,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAEhE,OAAO;QACL,UAAU;QACV,SAAS;QACT,MAAM;YACJ,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;KACuB,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,CAAC,MAAM,EAAE,CAAC;IAChB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrC,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IACzE,KAAK,EAAE,CAAC;AACV,CAAC"}
@@ -3,8 +3,12 @@ export interface DtifLanguageServerSettings {
3
3
  readonly mode: 'on' | 'off';
4
4
  };
5
5
  }
6
+ export interface ParsedSettings {
7
+ readonly settings: DtifLanguageServerSettings;
8
+ readonly warnings: readonly string[];
9
+ }
6
10
  export declare const SETTINGS_SECTION = "dtifLanguageServer";
7
11
  export declare const DEFAULT_SETTINGS: DtifLanguageServerSettings;
8
- export declare function parseSettings(value: unknown): DtifLanguageServerSettings;
12
+ export declare function parseSettings(value: unknown): ParsedSettings;
9
13
  export declare function settingsEqual(a: DtifLanguageServerSettings, b: DtifLanguageServerSettings): boolean;
10
14
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC;KAC7B,CAAC;CACH;AAED,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AAErD,eAAO,MAAM,gBAAgB,EAAE,0BAE9B,CAAC;AAeF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,0BAA0B,CAQxE;AAED,wBAAgB,aAAa,CAC3B,CAAC,EAAE,0BAA0B,EAC7B,CAAC,EAAE,0BAA0B,GAC5B,OAAO,CAET"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AAErD,eAAO,MAAM,gBAAgB,EAAE,0BAE9B,CAAC;AA0BF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAW5D;AAED,wBAAgB,aAAa,CAC3B,CAAC,EAAE,0BAA0B,EAC7B,CAAC,EAAE,0BAA0B,GAC5B,OAAO,CAET"}
package/dist/settings.js CHANGED
@@ -3,22 +3,29 @@ export const SETTINGS_SECTION = 'dtifLanguageServer';
3
3
  export const DEFAULT_SETTINGS = {
4
4
  validation: { mode: 'on' }
5
5
  };
6
- function parseValidationSettings(value) {
6
+ function parseValidationSettings(value, warnings) {
7
7
  if (!isRecord(value)) {
8
+ warnings.push('Expected an object for validation settings; using defaults.');
8
9
  return DEFAULT_SETTINGS.validation;
9
10
  }
10
11
  const mode = value.mode;
11
12
  if (mode === 'off') {
12
13
  return { mode: 'off' };
13
14
  }
15
+ if (mode === 'on') {
16
+ return { mode: 'on' };
17
+ }
18
+ warnings.push(`validation.mode must be "on" or "off" (received ${JSON.stringify(mode)}); using "on".`);
14
19
  return { mode: 'on' };
15
20
  }
16
21
  export function parseSettings(value) {
22
+ const warnings = [];
17
23
  if (!isRecord(value)) {
18
- return DEFAULT_SETTINGS;
24
+ warnings.push('Expected dtifLanguageServer settings to be an object; using defaults.');
25
+ return { settings: DEFAULT_SETTINGS, warnings };
19
26
  }
20
- const validation = parseValidationSettings(value.validation);
21
- return { validation };
27
+ const validation = parseValidationSettings(value.validation, warnings);
28
+ return { settings: { validation }, warnings };
22
29
  }
23
30
  export function settingsEqual(a, b) {
24
31
  return a.validation.mode === b.validation.mode;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAQlD,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAErD,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;CAC3B,CAAC;AAEF,SAAS,uBAAuB,CAAC,KAAc;IAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAE7D,OAAO,EAAE,UAAU,EAAuC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,CAA6B,EAC7B,CAA6B;IAE7B,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAalD,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAErD,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;CAC3B,CAAC;AAEF,SAAS,uBAAuB,CAC9B,KAAc,EACd,QAAkB;IAElB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,gBAAgB,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,IAAI,CACX,mDAAmD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CACxF,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACvF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAA2B,CAAC;IAC3E,CAAC;IAED,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEvE,OAAO,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAA2B,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,CAA6B,EAC7B,CAA6B;IAE7B,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;AACjD,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,16 @@
1
1
  {
2
2
  "name": "@lapidist/dtif-language-server",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "Language Server Protocol implementation for the Design Token Interchange Format (DTIF).",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "sideEffects": false,
8
8
  "main": "./dist/index.js",
9
9
  "types": "./dist/index.d.ts",
10
+ "engines": {
11
+ "node": ">=22",
12
+ "npm": ">=10"
13
+ },
10
14
  "exports": {
11
15
  ".": {
12
16
  "types": "./dist/index.d.ts",
@@ -22,12 +26,13 @@
22
26
  "build": "tsc -p tsconfig.json",
23
27
  "clean": "rimraf dist",
24
28
  "test": "node --import tsx --test ./tests/**/*.test.ts",
29
+ "typecheck": "tsc -p tsconfig.json --noEmit",
25
30
  "prepack": "npm run build"
26
31
  },
27
32
  "dependencies": {
28
- "@lapidist/dtif-parser": "1.0.4",
29
- "@lapidist/dtif-schema": "1.0.4",
30
- "@lapidist/dtif-validator": "1.0.4",
33
+ "@lapidist/dtif-parser": "1.0.6",
34
+ "@lapidist/dtif-schema": "1.0.6",
35
+ "@lapidist/dtif-validator": "1.0.6",
31
36
  "jsonc-parser": "^3.3.1",
32
37
  "vscode-languageserver": "^9.0.1",
33
38
  "vscode-languageserver-textdocument": "^1.0.11"