@hydranium/client-browser 1.0.0-next.304 → 1.0.0-next.306

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
@@ -87,23 +87,22 @@ Build the Monaco client, from `./monaco`, in `beforeInitialized` too, from the
87
87
  server's capabilities and your language table, and hand it each diagnostics
88
88
  notification. Open a document on the text the worker holds, never on a copy
89
89
  in your bundle, and create editors through the client, which keeps the
90
- settings a server-driven language needs under your own. Save through a data
91
- session: the server already holds every edit, so the save persists and
92
- authors nothing.
90
+ settings a server-driven language needs under your own. Save through the
91
+ client: the server already holds every edit, so `save` and `saveAll` ask the
92
+ worker's LSP head to persist them. `saveDirtyDocuments` saves through a data
93
+ session instead, for a server whose LSP head does not advertise the request.
93
94
 
94
95
  <!-- snippet-preamble
95
96
  import { connectWorkerHeads } from '@hydranium/client-browser';
96
- import { DataConnectionWithEvents } from '@hydranium/protocol';
97
97
  declare const worker: Parameters<typeof connectWorkerHeads>[0];
98
98
  declare const container: HTMLElement;
99
99
  declare const textFromTheWorker: string;
100
100
  const heads = connectWorkerHeads(worker);
101
- const data = new DataConnectionWithEvents(heads.data);
102
101
  -->
103
102
 
104
103
  ```ts
105
104
  import { initializeLanguageClient } from '@hydranium/client-browser';
106
- import { MONACO_CLIENT_CAPABILITIES, MonacoLspClient, saveDirtyDocuments } from '@hydranium/client-browser/monaco';
105
+ import { MONACO_CLIENT_CAPABILITIES, MonacoLspClient } from '@hydranium/client-browser/monaco';
107
106
  import { PublishDiagnosticsNotification } from 'vscode-languageserver-protocol';
108
107
 
109
108
  let client!: MonacoLspClient;
@@ -119,7 +118,7 @@ await initializeLanguageClient(heads.lsp, {
119
118
  });
120
119
  const model = client.openDocument('file:///workspace/a.my', textFromTheWorker);
121
120
  client.createEditor(container, model, { theme: 'vs' });
122
- await saveDirtyDocuments(client, data.createSession('editors'));
121
+ await client.saveAll();
123
122
  ```
124
123
 
125
124
  `MONACO_CLIENT_CAPABILITIES` declares `workspace.applyEdit`, which the Monaco
@@ -120,6 +120,12 @@ export declare class MonacoLspClient {
120
120
  * need not be the connection's.
121
121
  */
122
122
  protected readonly connection: MessageConnection;
123
+ /** Whether the server answers {@link SaveTextDocumentRequest}: only one whose host leaves it the files does. */
124
+ protected readonly saveAdvertised: boolean;
125
+ /** Counts the {@link save} calls that sent a request, so their answers can be ordered. */
126
+ protected saveCount: number;
127
+ /** Per URI, the newest {@link save} whose answer marked the document saved. */
128
+ protected readonly markedSaves: Map<string, number>;
123
129
  constructor(connection: MessageConnection, capabilities: ServerCapabilities, options: MonacoLspClientOptions);
124
130
  /**
125
131
  * The language id for `uri`, by the extensions the options name.
@@ -309,6 +315,31 @@ export declare class MonacoLspClient {
309
315
  * forwarded `InsertReplaceEdit` ranges depend on.
310
316
  */
311
317
  createEditor(container: HTMLElement, model: monaco.editor.ITextModel, options?: monaco.editor.IStandaloneEditorConstructionOptions): monaco.editor.IStandaloneCodeEditor;
318
+ /**
319
+ * Have the server persist the document at `uri`, in any form, if it is
320
+ * dirty, and return it, marked saved at the version its text was read at;
321
+ * nothing for a document that is not dirty. For a host whose files only the
322
+ * server holds; a server that does not advertise
323
+ * {@link SaveTextDocumentRequest} makes this throw, sending nothing.
324
+ *
325
+ * The request carries the buffer's version and no text: every keystroke
326
+ * already reached the server as a `didChange` sent before it on the same
327
+ * connection, so the server persists its own text once it finds the buffer
328
+ * holds it, and refuses otherwise. A refusal leaves the document dirty.
329
+ *
330
+ * An answer marks nothing once a later save of the document has marked it:
331
+ * a server that coalesces saves answers the earlier one after the later
332
+ * one it wrote for, and marking it would leave the saved buffer dirty.
333
+ */
334
+ save(uri: string): Promise<EditorDocument | undefined>;
335
+ /**
336
+ * {@link save} every dirty document, all at once, each marked saved on its
337
+ * own answer. Rejects with the first failure once every answer is in, so a
338
+ * refusal of one does not leave the others' outcome unknown; the documents
339
+ * that saved stay marked, and a second call retries the rest.
340
+ */
341
+ saveAll(): Promise<EditorDocument[]>;
342
+ protected assertSaveAdvertised(): void;
312
343
  /**
313
344
  * The open documents whose buffer has moved since it was opened or last
314
345
  * saved, with the text to persist.
@@ -1 +1 @@
1
- {"version":3,"file":"monaco-lsp-client.d.ts","sourceRoot":"","sources":["../../src/monaco/monaco-lsp-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monaco-lsp-client.d.ts","sourceRoot":"","sources":["../../src/monaco/monaco-lsp-client.ts"],"names":[],"mappings":"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"}
@@ -564,10 +564,17 @@ class MonacoLspClient {
564
564
  * need not be the connection's.
565
565
  */
566
566
  connection;
567
+ /** Whether the server answers {@link SaveTextDocumentRequest}: only one whose host leaves it the files does. */
568
+ saveAdvertised;
569
+ /** Counts the {@link save} calls that sent a request, so their answers can be ordered. */
570
+ saveCount = 0;
571
+ /** Per URI, the newest {@link save} whose answer marked the document saved. */
572
+ markedSaves = new Map();
567
573
  constructor(connection, capabilities, options) {
568
574
  this.options = options;
569
575
  this.connection = (0, protocol_1.sendByMethodName)(connection);
570
576
  this.markerOwner = options.markerOwner ?? exports.DEFAULT_MARKER_OWNER;
577
+ this.saveAdvertised = capabilities.experimental?.[protocol_1.SaveTextDocumentRequest.method] === true;
571
578
  // First: it is the one registration on the connection, which throws once
572
579
  // closed, and a constructor that throws leaves nothing to dispose.
573
580
  this.registerApplyEdit();
@@ -897,6 +904,7 @@ class MonacoLspClient {
897
904
  }
898
905
  this.models.delete(key);
899
906
  this.savedVersions.delete(key);
907
+ this.markedSaves.delete(key);
900
908
  // Cleared whether or not the host disposed the model already: the marker
901
909
  // service keys by URI and keeps a disposed `file:` model's markers.
902
910
  monaco.editor.setModelMarkers(model, this.markerOwner, []);
@@ -945,6 +953,58 @@ class MonacoLspClient {
945
953
  model
946
954
  });
947
955
  }
956
+ /**
957
+ * Have the server persist the document at `uri`, in any form, if it is
958
+ * dirty, and return it, marked saved at the version its text was read at;
959
+ * nothing for a document that is not dirty. For a host whose files only the
960
+ * server holds; a server that does not advertise
961
+ * {@link SaveTextDocumentRequest} makes this throw, sending nothing.
962
+ *
963
+ * The request carries the buffer's version and no text: every keystroke
964
+ * already reached the server as a `didChange` sent before it on the same
965
+ * connection, so the server persists its own text once it finds the buffer
966
+ * holds it, and refuses otherwise. A refusal leaves the document dirty.
967
+ *
968
+ * An answer marks nothing once a later save of the document has marked it:
969
+ * a server that coalesces saves answers the earlier one after the later
970
+ * one it wrote for, and marking it would leave the saved buffer dirty.
971
+ */
972
+ async save(uri) {
973
+ this.assertSaveAdvertised();
974
+ const document = this.dirtyDocument(uri);
975
+ if (document === undefined) {
976
+ return undefined;
977
+ }
978
+ const ticket = ++this.saveCount;
979
+ await this.connection.sendRequest(protocol_1.SaveTextDocumentRequest.type, {
980
+ textDocument: { uri: document.uri, version: document.model.getVersionId() }
981
+ });
982
+ if (ticket > (this.markedSaves.get(document.uri) ?? 0)) {
983
+ this.markedSaves.set(document.uri, ticket);
984
+ this.markSaved(document);
985
+ }
986
+ return document;
987
+ }
988
+ /**
989
+ * {@link save} every dirty document, all at once, each marked saved on its
990
+ * own answer. Rejects with the first failure once every answer is in, so a
991
+ * refusal of one does not leave the others' outcome unknown; the documents
992
+ * that saved stay marked, and a second call retries the rest.
993
+ */
994
+ async saveAll() {
995
+ this.assertSaveAdvertised();
996
+ const results = await Promise.allSettled(this.dirtyDocuments().map(document => this.save(document.uri)));
997
+ const failure = results.find(result => result.status === 'rejected');
998
+ if (failure !== undefined) {
999
+ throw failure.reason;
1000
+ }
1001
+ return results.flatMap(result => (result.status === 'fulfilled' && result.value !== undefined ? [result.value] : []));
1002
+ }
1003
+ assertSaveAdvertised() {
1004
+ if (!this.saveAdvertised) {
1005
+ throw new Error(`The server does not advertise ${protocol_1.SaveTextDocumentRequest.method}; its host saves the files itself`);
1006
+ }
1007
+ }
948
1008
  /**
949
1009
  * The open documents whose buffer has moved since it was opened or last
950
1010
  * saved, with the text to persist.
@@ -1 +1 @@
1
- {"version":3,"file":"monaco-lsp-client.js","sourceRoot":"","sources":["../../src/monaco/monaco-lsp-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monaco-lsp-client.js","sourceRoot":"","sources":["../../src/monaco/monaco-lsp-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydranium/client-browser",
3
- "version": "1.0.0-next.304",
3
+ "version": "1.0.0-next.306",
4
4
  "description": "The page side of a hydranium host that runs its heads in a web worker: the worker bootstrap that hands each head its own MessagePort, the page's LSP handshake, a Monaco LSP client, the data head's port, and the rejection of what is pending when the worker dies.",
5
5
  "keywords": [
6
6
  "browser",
@@ -55,7 +55,7 @@
55
55
  "watch": "tsc -b -w --preserveWatchOutput"
56
56
  },
57
57
  "devDependencies": {
58
- "@hydranium/protocol": "1.0.0-next.304",
58
+ "@hydranium/protocol": "1.0.0-next.306",
59
59
  "@types/node": "^22.0.0",
60
60
  "monaco-editor-core": "0.56.0",
61
61
  "rimraf": "^5.0.0",
@@ -64,7 +64,7 @@
64
64
  "vscode-languageserver-protocol": "3.18.1"
65
65
  },
66
66
  "peerDependencies": {
67
- "@hydranium/protocol": "1.0.0-next.304",
67
+ "@hydranium/protocol": "1.0.0-next.306",
68
68
  "monaco-editor-core": ">=0.56.0 <1.0.0",
69
69
  "vscode-jsonrpc": "^9.0.0",
70
70
  "vscode-languageserver-protocol": "~3.18.1"
@@ -30,7 +30,14 @@
30
30
  * directly rather than counted here in parallel.
31
31
  */
32
32
 
33
- import { type BaseVersion, isResponseError, sendByMethodName, type TextState, textHash } from '@hydranium/protocol';
33
+ import {
34
+ type BaseVersion,
35
+ isResponseError,
36
+ SaveTextDocumentRequest,
37
+ sendByMethodName,
38
+ type TextState,
39
+ textHash
40
+ } from '@hydranium/protocol';
34
41
  import * as monaco from 'monaco-editor-core';
35
42
  import { ConnectionErrors, type MessageConnection } from 'vscode-jsonrpc/browser';
36
43
  import {
@@ -661,6 +668,12 @@ export class MonacoLspClient {
661
668
  * need not be the connection's.
662
669
  */
663
670
  protected readonly connection: MessageConnection;
671
+ /** Whether the server answers {@link SaveTextDocumentRequest}: only one whose host leaves it the files does. */
672
+ protected readonly saveAdvertised: boolean;
673
+ /** Counts the {@link save} calls that sent a request, so their answers can be ordered. */
674
+ protected saveCount = 0;
675
+ /** Per URI, the newest {@link save} whose answer marked the document saved. */
676
+ protected readonly markedSaves = new Map<string, number>();
664
677
 
665
678
  constructor(
666
679
  connection: MessageConnection,
@@ -669,6 +682,7 @@ export class MonacoLspClient {
669
682
  ) {
670
683
  this.connection = sendByMethodName(connection);
671
684
  this.markerOwner = options.markerOwner ?? DEFAULT_MARKER_OWNER;
685
+ this.saveAdvertised = capabilities.experimental?.[SaveTextDocumentRequest.method] === true;
672
686
  // First: it is the one registration on the connection, which throws once
673
687
  // closed, and a constructor that throws leaves nothing to dispose.
674
688
  this.registerApplyEdit();
@@ -1020,6 +1034,7 @@ export class MonacoLspClient {
1020
1034
  }
1021
1035
  this.models.delete(key);
1022
1036
  this.savedVersions.delete(key);
1037
+ this.markedSaves.delete(key);
1023
1038
  // Cleared whether or not the host disposed the model already: the marker
1024
1039
  // service keys by URI and keeps a disposed `file:` model's markers.
1025
1040
  monaco.editor.setModelMarkers(model, this.markerOwner, []);
@@ -1074,6 +1089,61 @@ export class MonacoLspClient {
1074
1089
  });
1075
1090
  }
1076
1091
 
1092
+ /**
1093
+ * Have the server persist the document at `uri`, in any form, if it is
1094
+ * dirty, and return it, marked saved at the version its text was read at;
1095
+ * nothing for a document that is not dirty. For a host whose files only the
1096
+ * server holds; a server that does not advertise
1097
+ * {@link SaveTextDocumentRequest} makes this throw, sending nothing.
1098
+ *
1099
+ * The request carries the buffer's version and no text: every keystroke
1100
+ * already reached the server as a `didChange` sent before it on the same
1101
+ * connection, so the server persists its own text once it finds the buffer
1102
+ * holds it, and refuses otherwise. A refusal leaves the document dirty.
1103
+ *
1104
+ * An answer marks nothing once a later save of the document has marked it:
1105
+ * a server that coalesces saves answers the earlier one after the later
1106
+ * one it wrote for, and marking it would leave the saved buffer dirty.
1107
+ */
1108
+ async save(uri: string): Promise<EditorDocument | undefined> {
1109
+ this.assertSaveAdvertised();
1110
+ const document = this.dirtyDocument(uri);
1111
+ if (document === undefined) {
1112
+ return undefined;
1113
+ }
1114
+ const ticket = ++this.saveCount;
1115
+ await this.connection.sendRequest(SaveTextDocumentRequest.type, {
1116
+ textDocument: { uri: document.uri, version: document.model.getVersionId() }
1117
+ });
1118
+ if (ticket > (this.markedSaves.get(document.uri) ?? 0)) {
1119
+ this.markedSaves.set(document.uri, ticket);
1120
+ this.markSaved(document);
1121
+ }
1122
+ return document;
1123
+ }
1124
+
1125
+ /**
1126
+ * {@link save} every dirty document, all at once, each marked saved on its
1127
+ * own answer. Rejects with the first failure once every answer is in, so a
1128
+ * refusal of one does not leave the others' outcome unknown; the documents
1129
+ * that saved stay marked, and a second call retries the rest.
1130
+ */
1131
+ async saveAll(): Promise<EditorDocument[]> {
1132
+ this.assertSaveAdvertised();
1133
+ const results = await Promise.allSettled(this.dirtyDocuments().map(document => this.save(document.uri)));
1134
+ const failure = results.find(result => result.status === 'rejected');
1135
+ if (failure !== undefined) {
1136
+ throw failure.reason;
1137
+ }
1138
+ return results.flatMap(result => (result.status === 'fulfilled' && result.value !== undefined ? [result.value] : []));
1139
+ }
1140
+
1141
+ protected assertSaveAdvertised(): void {
1142
+ if (!this.saveAdvertised) {
1143
+ throw new Error(`The server does not advertise ${SaveTextDocumentRequest.method}; its host saves the files itself`);
1144
+ }
1145
+ }
1146
+
1077
1147
  /**
1078
1148
  * The open documents whose buffer has moved since it was opened or last
1079
1149
  * saved, with the text to persist.