@typefox/monaco-editor-react 7.3.0-next.1 → 7.3.0-next.3

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/CHANGELOG.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  All notable changes to npm module [@typefox/monaco-editor-react](https://www.npmjs.com/package/@typefox/monaco-editor-react) are documented in this file.
4
4
 
5
- ## [7.3.0-next.1] - 2025-11-05
5
+ ## [7.3.0-next.3] - 2025-11-05
6
6
 
7
7
  - Fixed re-rendering issues with React StrictMode [#986](https://github.com/TypeFox/monaco-languageclient/pull/986).
8
- - Updated to `monaco-languageclient@10.3.0-next.1`.
9
- - Updated all `@codingame/monaco-vscode` packages to `22.1.4`.
8
+ - Updated to `monaco-languageclient@10.3.0-next.3`.
9
+ - Updated all `@codingame/monaco-vscode` packages to `22.1.8`.
10
10
 
11
11
  ## [7.2.0] - 2025-10-20
12
12
 
package/lib/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { LogLevel } from '@codingame/monaco-vscode-api';
1
2
  import { EditorApp, type EditorAppConfig, type TextContents } from 'monaco-languageclient/editorApp';
2
3
  import { type LanguageClientConfig, LanguageClientManager } from 'monaco-languageclient/lcwrapper';
3
4
  import { type MonacoVscodeApiConfig, MonacoVscodeApiWrapper } from 'monaco-languageclient/vscodeApiWrapper';
@@ -14,11 +15,13 @@ export type MonacoEditorProps = {
14
15
  onEditorStartDone?: (editorApp?: EditorApp) => void;
15
16
  onLanguageClientsStartDone?: (lcsManager?: LanguageClientManager) => void;
16
17
  onTextChanged?: (textChanges: TextContents) => void;
18
+ onConfigProcessed?: (editorApp?: EditorApp) => void;
17
19
  onError?: (error: Error) => void;
18
20
  onDisposeEditor?: () => void;
19
21
  onDisposeLanguageClient?: () => void;
20
22
  modifiedTextValue?: string;
21
23
  originalTextValue?: string;
24
+ logLevel?: LogLevel | number;
22
25
  };
23
26
  export declare const MonacoEditorReactComp: React.FC<MonacoEditorProps>;
24
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACrG,OAAO,EAAE,KAAK,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACnG,OAAO,EAAgC,KAAK,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAC1I,OAAO,KAAK,EAAE,EAAE,KAAK,aAAa,EAAqB,MAAM,OAAO,CAAC;AAErE,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AAElE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,qBAAqB,CAAC;IACvC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,mBAAmB,CAAC,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC/E,iBAAiB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IACpD,0BAA0B,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC1E,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAA;AAaD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAkQ7D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACrG,OAAO,EAAE,KAAK,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACnG,OAAO,EAAgC,KAAK,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAC1I,OAAO,KAAK,EAAE,EAAE,KAAK,aAAa,EAAqB,MAAM,OAAO,CAAC;AAErE,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AAElE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,qBAAqB,CAAC;IACvC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,mBAAmB,CAAC,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC/E,iBAAiB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IACpD,0BAA0B,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC1E,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD,iBAAiB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAChC,CAAA;AAmED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0P7D,CAAC"}
package/lib/index.js CHANGED
@@ -2,6 +2,9 @@
2
2
  * Copyright (c) 2024 TypeFox and others.
3
3
  * Licensed under the MIT License. See LICENSE in the package root for license information.
4
4
  * ------------------------------------------------------------------------------------------ */
5
+ import { LogLevel } from '@codingame/monaco-vscode-api';
6
+ import * as monaco from '@codingame/monaco-vscode-editor-api';
7
+ import { ConsoleLogger } from 'monaco-languageclient/common';
5
8
  import { EditorApp } from 'monaco-languageclient/editorApp';
6
9
  import { LanguageClientManager } from 'monaco-languageclient/lcwrapper';
7
10
  import { getEnhancedMonacoEnvironment, MonacoVscodeApiWrapper } from 'monaco-languageclient/vscodeApiWrapper';
@@ -10,57 +13,68 @@ import React, { useEffect, useRef } from 'react';
10
13
  let apiWrapper;
11
14
  const lcsManager = new LanguageClientManager();
12
15
  const haveEditorService = () => {
13
- return apiWrapper?.getMonacoVscodeApiConfig().viewsConfig.$type === 'EditorService';
16
+ return getEnhancedMonacoEnvironment().viewServiceType === 'EditorService';
14
17
  };
18
+ const logger = new ConsoleLogger(LogLevel.Debug);
15
19
  const runQueue = [];
16
- let queueAwait = undefined;
17
- let queueResolve = undefined;
20
+ let lock = true;
21
+ let intervalId = undefined;
22
+ const addQueue = (id, func) => {
23
+ debugLogging('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>');
24
+ debugLogging(`Adding to queue: ${id}: QUEUE SIZE before: ${runQueue.length}`);
25
+ runQueue.push({ id, func });
26
+ kickQueue();
27
+ };
28
+ const executeQueue = async () => {
29
+ console.log(`Queue size: ${runQueue.length}`);
30
+ if (runQueue.length > 0) {
31
+ lock = true;
32
+ while (runQueue.length > 0) {
33
+ const lengthBefore = runQueue.length;
34
+ const queueObj = runQueue.shift();
35
+ debugLogging('<<<<<<<<<<<<<<<<<<<<<<<<<<<<<');
36
+ debugLogging(`QUEUE ${queueObj?.id} start: SIZE before: ${lengthBefore}`, true);
37
+ await queueObj?.func();
38
+ debugLogging(`QUEUE ${queueObj?.id} end: SIZE after: ${runQueue.length}`);
39
+ }
40
+ lock = false;
41
+ }
42
+ };
43
+ const kickQueue = () => {
44
+ if (intervalId === undefined && runQueue.length > 0) {
45
+ intervalId = setInterval(async () => {
46
+ debugLogging('Checking queue...');
47
+ if (!lock) {
48
+ executeQueue();
49
+ stopQueue();
50
+ }
51
+ }, 50);
52
+ }
53
+ };
54
+ const stopQueue = () => {
55
+ if (intervalId !== undefined && runQueue.length === 0) {
56
+ debugLogging('Stopping queue...');
57
+ clearInterval(intervalId);
58
+ intervalId = undefined;
59
+ }
60
+ };
61
+ const debugLogging = (id, useTime) => {
62
+ if (useTime === true) {
63
+ logger.debug(`${id}: ${Date.now()}`);
64
+ }
65
+ else {
66
+ logger.debug(id);
67
+ }
68
+ };
18
69
  export const MonacoEditorReactComp = (props) => {
19
- const { style, className, vscodeApiConfig, editorAppConfig, languageClientConfig, enforceDisposeLanguageClient, onVscodeApiInitDone, onEditorStartDone, onLanguageClientsStartDone, onTextChanged, onError, onDisposeEditor, onDisposeLanguageClient, modifiedTextValue, originalTextValue } = props;
20
- const currentEditorConfig = useRef(undefined);
70
+ const { style, className, vscodeApiConfig, editorAppConfig, languageClientConfig, enforceDisposeLanguageClient, onVscodeApiInitDone, onEditorStartDone, onLanguageClientsStartDone, onTextChanged, onConfigProcessed, onError, onDisposeEditor, onDisposeLanguageClient, modifiedTextValue, originalTextValue, logLevel } = props;
21
71
  const editorAppRef = useRef(undefined);
22
72
  const containerRef = useRef(null);
23
73
  const onTextChangedRef = useRef(onTextChanged);
24
74
  const modifiedCode = useRef(modifiedTextValue);
25
75
  const originalCode = useRef(originalTextValue);
26
- const addQueue = (id, func) => {
27
- debugLogging(`Adding to queue: ${id}`);
28
- debugLogging(`QUEUE SIZE before: ${runQueue.length}`);
29
- runQueue.push({ id, func });
30
- };
31
- const triggerQueue = () => {
32
- setInterval(() => {
33
- if (queueAwait === undefined) {
34
- queueAwait = new Promise((resolve) => {
35
- queueResolve = resolve;
36
- });
37
- executeQueue();
38
- }
39
- }, 50);
40
- };
41
- const executeQueue = async () => {
42
- while (runQueue.length > 0) {
43
- const queueObj = runQueue.shift();
44
- if (queueObj !== undefined) {
45
- debugLogging(`QUEUE ${queueObj.id} SIZE before: ${runQueue.length}`);
46
- debugLogging(`QUEUE ${queueObj.id} start`, true);
47
- await queueObj.func();
48
- debugLogging(`QUEUE ${queueObj.id} SIZE after: ${runQueue.length}`);
49
- debugLogging(`QUEUE ${queueObj.id} end`);
50
- }
51
- }
52
- queueResolve?.();
53
- queueAwait = undefined;
54
- queueResolve = undefined;
55
- };
56
- const debugLogging = (id, useTime) => {
57
- if (useTime === true) {
58
- apiWrapper?.getLogger().debug(`${id}: ${Date.now()}`);
59
- }
60
- else {
61
- apiWrapper?.getLogger().debug(id);
62
- }
63
- };
76
+ const launchingRef = useRef(false);
77
+ const editorAppConfigRef = useRef(undefined);
64
78
  const performErrorHandling = (error) => {
65
79
  if (onError) {
66
80
  onError(error);
@@ -96,17 +110,16 @@ export const MonacoEditorReactComp = (props) => {
96
110
  debugLogging('GLOBAL INIT', true);
97
111
  if (apiWrapper === undefined)
98
112
  throw new Error('Unexpected error occurred: apiWrapper is not available! Aborting...');
99
- if (haveEditorService()) {
113
+ if (apiWrapper.getMonacoVscodeApiConfig().viewsConfig.$type === 'EditorService') {
100
114
  apiWrapper.overrideViewsConfig({
101
115
  $type: 'EditorService',
102
116
  htmlContainer: containerRef.current
103
117
  });
104
118
  }
105
119
  await apiWrapper.start();
106
- lcsManager.setLogger(apiWrapper.getLogger());
107
120
  onVscodeApiInitDone?.(apiWrapper);
108
- triggerQueue();
109
121
  debugLogging('GLOBAL INIT DONE', true);
122
+ lock = false;
110
123
  }
111
124
  catch (error) {
112
125
  performErrorHandling(error);
@@ -114,28 +127,16 @@ export const MonacoEditorReactComp = (props) => {
114
127
  };
115
128
  globalInitFunc();
116
129
  }
117
- else if (envEnhanced.vscodeApiInitialised === true) {
118
- triggerQueue();
119
- }
120
130
  };
121
- useEffect(() => {
122
- // fast-fail
123
- if (editorAppConfig === undefined)
124
- return;
125
- // always try to perform global init. Reason: we cannot ensure order
126
- performGlobalInit();
127
- // re-create editor if config changed
128
- const recreateEditor = editorAppRef.current === undefined || currentEditorConfig.current === undefined ||
129
- JSON.stringify(editorAppConfig) !== JSON.stringify(currentEditorConfig.current);
130
- const editorInitFunc = async () => {
131
- try {
132
- debugLogging('INIT', true);
133
- // it is possible to run without an editorApp, for example when using the ViewsService
134
- if (recreateEditor && haveEditorService()) {
131
+ const editorInitFunc = async () => {
132
+ try {
133
+ debugLogging('INIT', true);
134
+ // it is possible to run without an editorApp, for example when using the ViewsService
135
+ if (haveEditorService()) {
136
+ if (editorAppRef.current === undefined && !launchingRef.current) {
137
+ launchingRef.current = true;
135
138
  debugLogging('INIT: Creating editor', true);
136
- editorAppRef.current?.dispose();
137
- currentEditorConfig.current = editorAppConfig;
138
- editorAppRef.current = new EditorApp(editorAppConfig);
139
+ editorAppRef.current = new EditorApp(editorAppConfigRef.current);
139
140
  if (editorAppRef.current.isStarting() === true || editorAppRef.current.isDisposing() === true) {
140
141
  await Promise.all([
141
142
  editorAppRef.current.getStartingAwait(),
@@ -155,14 +156,45 @@ export const MonacoEditorReactComp = (props) => {
155
156
  });
156
157
  await editorAppRef.current.start(containerRef.current);
157
158
  onEditorStartDone?.(editorAppRef.current);
159
+ launchingRef.current = false;
158
160
  }
159
- debugLogging('INIT DONE', true);
160
161
  }
161
- catch (error) {
162
- performErrorHandling(error);
162
+ debugLogging('INIT DONE', true);
163
+ }
164
+ catch (error) {
165
+ performErrorHandling(error);
166
+ }
167
+ };
168
+ const configProcessedFunc = () => {
169
+ if (!launchingRef.current) {
170
+ if (editorAppConfigRef.current?.codeResources !== undefined && editorAppRef.current) {
171
+ editorAppRef.current.updateCodeResources(editorAppConfigRef.current.codeResources);
163
172
  }
164
- };
173
+ if (editorAppConfigRef.current?.editorOptions !== undefined && editorAppRef.current) {
174
+ if (!editorAppRef.current.isDiffEditor()) {
175
+ editorAppRef.current.getEditor()?.updateOptions(editorAppConfigRef.current.editorOptions);
176
+ }
177
+ }
178
+ if (editorAppConfigRef.current?.diffEditorOptions !== undefined && editorAppRef.current) {
179
+ if (editorAppRef.current.isDiffEditor()) {
180
+ editorAppRef.current.getDiffEditor()?.updateOptions(editorAppConfigRef.current.diffEditorOptions);
181
+ }
182
+ }
183
+ }
184
+ onConfigProcessed?.(editorAppRef.current);
185
+ debugLogging('Config processed');
186
+ };
187
+ useEffect(() => {
188
+ // fast-fail
189
+ if (editorAppConfig === undefined)
190
+ return;
191
+ // always try to perform global init. Reason: we cannot ensure order
192
+ performGlobalInit();
193
+ editorAppConfigRef.current = editorAppConfig;
165
194
  addQueue('editorInit', editorInitFunc);
195
+ if (editorAppRef.current !== undefined && !launchingRef.current) {
196
+ configProcessedFunc();
197
+ }
166
198
  }, [editorAppConfig]);
167
199
  useEffect(() => {
168
200
  // fast-fail
@@ -172,7 +204,8 @@ export const MonacoEditorReactComp = (props) => {
172
204
  performGlobalInit();
173
205
  const lcInitFunc = async () => {
174
206
  try {
175
- debugLogging('INIT LC2', true);
207
+ debugLogging('INIT LC', true);
208
+ lcsManager.setLogLevel(languageClientConfig.logLevel);
176
209
  await lcsManager.setConfig(languageClientConfig);
177
210
  await lcsManager.start();
178
211
  onLanguageClientsStartDone?.(lcsManager);
@@ -193,14 +226,21 @@ export const MonacoEditorReactComp = (props) => {
193
226
  const disposeFunc = async () => {
194
227
  // dispose editor if used
195
228
  debugLogging('DISPOSE', true);
196
- await editorAppRef.current?.dispose();
197
- editorAppRef.current = undefined;
198
- onDisposeEditor?.();
229
+ if (editorAppRef.current !== undefined) {
230
+ await editorAppRef.current.dispose();
231
+ editorAppRef.current = undefined;
232
+ onDisposeEditor?.();
233
+ }
199
234
  debugLogging('DISPOSE DONE', true);
200
235
  };
201
236
  addQueue('dispose', disposeFunc);
202
237
  };
203
238
  }, []);
239
+ useEffect(() => {
240
+ if (logLevel !== undefined) {
241
+ logger.setLevel(logLevel);
242
+ }
243
+ }, [logLevel]);
204
244
  useEffect(() => {
205
245
  // always try to perform global init. Reason: we cannot ensure order
206
246
  performGlobalInit();
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typefox/monaco-editor-react",
3
- "version": "7.3.0-next.1",
3
+ "version": "7.3.0-next.3",
4
4
  "license": "MIT",
5
5
  "description": "React component for Monaco-Editor and Monaco Languageclient",
6
6
  "keywords": [
@@ -46,7 +46,7 @@
46
46
  "npm": "10.9.3"
47
47
  },
48
48
  "dependencies": {
49
- "@codingame/monaco-vscode-editor-api": "^22.1.4",
49
+ "@codingame/monaco-vscode-editor-api": "^22.1.8",
50
50
  "react": ">=18.0.0 || <20.0.0"
51
51
  },
52
52
  "repository": {
package/src/index.tsx CHANGED
@@ -3,6 +3,9 @@
3
3
  * Licensed under the MIT License. See LICENSE in the package root for license information.
4
4
  * ------------------------------------------------------------------------------------------ */
5
5
 
6
+ import { LogLevel } from '@codingame/monaco-vscode-api';
7
+ import * as monaco from '@codingame/monaco-vscode-editor-api';
8
+ import { ConsoleLogger } from 'monaco-languageclient/common';
6
9
  import { EditorApp, type EditorAppConfig, type TextContents } from 'monaco-languageclient/editorApp';
7
10
  import { type LanguageClientConfig, LanguageClientManager } from 'monaco-languageclient/lcwrapper';
8
11
  import { getEnhancedMonacoEnvironment, type MonacoVscodeApiConfig, MonacoVscodeApiWrapper } from 'monaco-languageclient/vscodeApiWrapper';
@@ -21,23 +24,79 @@ export type MonacoEditorProps = {
21
24
  onEditorStartDone?: (editorApp?: EditorApp) => void;
22
25
  onLanguageClientsStartDone?: (lcsManager?: LanguageClientManager) => void;
23
26
  onTextChanged?: (textChanges: TextContents) => void;
27
+ onConfigProcessed?: (editorApp?: EditorApp) => void;
24
28
  onError?: (error: Error) => void;
25
29
  onDisposeEditor?: () => void;
26
30
  onDisposeLanguageClient?: () => void;
27
31
  modifiedTextValue?: string;
28
32
  originalTextValue?: string;
33
+ logLevel?: LogLevel | number;
29
34
  }
30
35
 
31
36
  // All must be outside of the component as they ars valid across all instances and should not be re-created
32
37
  let apiWrapper: MonacoVscodeApiWrapper | undefined;
33
38
  const lcsManager = new LanguageClientManager();
34
39
  const haveEditorService = () => {
35
- return apiWrapper?.getMonacoVscodeApiConfig().viewsConfig.$type === 'EditorService';
40
+ return getEnhancedMonacoEnvironment().viewServiceType === 'EditorService';
36
41
  };
42
+ const logger = new ConsoleLogger(LogLevel.Debug);
37
43
 
38
44
  const runQueue: Array<{id: string, func: () => Promise<void>}> = [];
39
- let queueAwait: Promise<void> | undefined = undefined;
40
- let queueResolve: ((value: void | PromiseLike<void>) => void) | undefined = undefined;
45
+ let lock = true;
46
+ let intervalId: number | unknown | undefined = undefined;
47
+
48
+ const addQueue = (id: string, func: () => Promise<void>) => {
49
+ debugLogging('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>');
50
+ debugLogging(`Adding to queue: ${id}: QUEUE SIZE before: ${runQueue.length}`);
51
+ runQueue.push({id, func});
52
+
53
+ kickQueue();
54
+ };
55
+
56
+ const executeQueue = async () => {
57
+ console.log(`Queue size: ${runQueue.length}`);
58
+
59
+ if (runQueue.length > 0) {
60
+ lock = true;
61
+ while (runQueue.length > 0) {
62
+ const lengthBefore = runQueue.length;
63
+ const queueObj = runQueue.shift();
64
+ debugLogging('<<<<<<<<<<<<<<<<<<<<<<<<<<<<<');
65
+ debugLogging(`QUEUE ${queueObj?.id} start: SIZE before: ${lengthBefore}`, true);
66
+ await queueObj?.func();
67
+ debugLogging(`QUEUE ${queueObj?.id} end: SIZE after: ${runQueue.length}`);
68
+ }
69
+ lock = false;
70
+ }
71
+ };
72
+
73
+ const kickQueue = () => {
74
+ if (intervalId === undefined && runQueue.length > 0) {
75
+ intervalId = setInterval(async () => {
76
+ debugLogging('Checking queue...');
77
+ if (!lock) {
78
+ executeQueue();
79
+ stopQueue();
80
+ }
81
+ }, 50);
82
+ }
83
+ };
84
+
85
+ const stopQueue = () => {
86
+ if (intervalId !== undefined && runQueue.length === 0) {
87
+ debugLogging('Stopping queue...');
88
+ clearInterval(intervalId as number);
89
+ intervalId = undefined;
90
+ }
91
+ };
92
+
93
+ const debugLogging = (id: string, useTime?: boolean) => {
94
+ if (useTime === true) {
95
+ logger.debug(`${id}: ${Date.now()}`);
96
+ } else {
97
+ logger.debug(id);
98
+ }
99
+ };
41
100
 
42
101
  export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
43
102
  const {
@@ -51,60 +110,22 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
51
110
  onEditorStartDone,
52
111
  onLanguageClientsStartDone,
53
112
  onTextChanged,
113
+ onConfigProcessed,
54
114
  onError,
55
115
  onDisposeEditor,
56
116
  onDisposeLanguageClient,
57
117
  modifiedTextValue,
58
- originalTextValue
118
+ originalTextValue,
119
+ logLevel
59
120
  } = props;
60
121
 
61
- const currentEditorConfig = useRef<EditorAppConfig | undefined>(undefined);
62
122
  const editorAppRef = useRef<EditorApp>(undefined);
63
123
  const containerRef = useRef<HTMLDivElement>(null);
64
124
  const onTextChangedRef = useRef(onTextChanged);
65
125
  const modifiedCode = useRef<string>(modifiedTextValue);
66
126
  const originalCode = useRef<string>(originalTextValue);
67
-
68
- const addQueue = (id: string, func: () => Promise<void>) => {
69
- debugLogging(`Adding to queue: ${id}`);
70
- debugLogging(`QUEUE SIZE before: ${runQueue.length}`);
71
- runQueue.push({id, func});
72
- };
73
-
74
- const triggerQueue = () => {
75
- setInterval(() => {
76
- if (queueAwait === undefined) {
77
- queueAwait = new Promise<void>((resolve) => {
78
- queueResolve = resolve;
79
- });
80
- executeQueue();
81
- }
82
- }, 50);
83
- };
84
-
85
- const executeQueue = async () => {
86
- while (runQueue.length > 0) {
87
- const queueObj = runQueue.shift();
88
- if (queueObj !== undefined) {
89
- debugLogging(`QUEUE ${queueObj.id} SIZE before: ${runQueue.length}`);
90
- debugLogging(`QUEUE ${queueObj.id} start`, true);
91
- await queueObj.func();
92
- debugLogging(`QUEUE ${queueObj.id} SIZE after: ${runQueue.length}`);
93
- debugLogging(`QUEUE ${queueObj.id} end`);
94
- }
95
- }
96
- queueResolve?.();
97
- queueAwait = undefined;
98
- queueResolve = undefined;
99
- };
100
-
101
- const debugLogging = (id: string, useTime?: boolean) => {
102
- if (useTime === true) {
103
- apiWrapper?.getLogger().debug(`${id}: ${Date.now()}`);
104
- } else {
105
- apiWrapper?.getLogger().debug(id);
106
- }
107
- };
127
+ const launchingRef = useRef<boolean>(false);
128
+ const editorAppConfigRef = useRef<EditorAppConfig>(undefined);
108
129
 
109
130
  const performErrorHandling = (error: Error) => {
110
131
  if (onError) {
@@ -145,7 +166,7 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
145
166
  debugLogging('GLOBAL INIT', true);
146
167
  if (apiWrapper === undefined) throw new Error('Unexpected error occurred: apiWrapper is not available! Aborting...');
147
168
 
148
- if (haveEditorService()) {
169
+ if (apiWrapper.getMonacoVscodeApiConfig().viewsConfig.$type === 'EditorService') {
149
170
  apiWrapper.overrideViewsConfig({
150
171
  $type: 'EditorService',
151
172
  htmlContainer: containerRef.current!
@@ -153,43 +174,29 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
153
174
  }
154
175
  await apiWrapper.start();
155
176
 
156
- lcsManager.setLogger(apiWrapper.getLogger());
157
-
158
177
  onVscodeApiInitDone?.(apiWrapper);
159
- triggerQueue();
160
178
  debugLogging('GLOBAL INIT DONE', true);
179
+
180
+ lock = false;
161
181
  } catch (error) {
162
182
  performErrorHandling(error as Error);
163
183
  }
164
184
  };
165
185
  globalInitFunc();
166
- } else if (envEnhanced.vscodeApiInitialised === true) {
167
- triggerQueue();
168
186
  }
169
187
  };
170
188
 
171
- useEffect(() => {
172
- // fast-fail
173
- if (editorAppConfig === undefined) return;
189
+ const editorInitFunc = async () => {
190
+ try {
191
+ debugLogging('INIT', true);
174
192
 
175
- // always try to perform global init. Reason: we cannot ensure order
176
- performGlobalInit();
177
-
178
- // re-create editor if config changed
179
- const recreateEditor = editorAppRef.current === undefined || currentEditorConfig.current === undefined ||
180
- JSON.stringify(editorAppConfig) !== JSON.stringify(currentEditorConfig.current);
181
- const editorInitFunc = async () => {
182
- try {
183
- debugLogging('INIT', true);
184
-
185
- // it is possible to run without an editorApp, for example when using the ViewsService
186
- if (recreateEditor && haveEditorService()) {
193
+ // it is possible to run without an editorApp, for example when using the ViewsService
194
+ if (haveEditorService()) {
195
+ if (editorAppRef.current === undefined && !launchingRef.current) {
196
+ launchingRef.current = true;
187
197
  debugLogging('INIT: Creating editor', true);
188
198
 
189
- editorAppRef.current?.dispose();
190
-
191
- currentEditorConfig.current = editorAppConfig;
192
- editorAppRef.current = new EditorApp(editorAppConfig);
199
+ editorAppRef.current = new EditorApp(editorAppConfigRef.current);
193
200
  if (editorAppRef.current.isStarting() === true || editorAppRef.current.isDisposing() === true) {
194
201
  await Promise.all([
195
202
  editorAppRef.current.getStartingAwait(),
@@ -211,14 +218,49 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
211
218
  await editorAppRef.current.start(containerRef.current!);
212
219
 
213
220
  onEditorStartDone?.(editorAppRef.current);
221
+ launchingRef.current = false;
214
222
  }
223
+ }
215
224
 
216
- debugLogging('INIT DONE', true);
217
- } catch (error) {
218
- performErrorHandling(error as Error);
225
+ debugLogging('INIT DONE', true);
226
+ } catch (error) {
227
+ performErrorHandling(error as Error);
228
+ }
229
+ };
230
+
231
+ const configProcessedFunc = () => {
232
+ if (!launchingRef.current) {
233
+ if (editorAppConfigRef.current?.codeResources !== undefined && editorAppRef.current) {
234
+ editorAppRef.current.updateCodeResources(editorAppConfigRef.current.codeResources);
219
235
  }
220
- };
236
+ if (editorAppConfigRef.current?.editorOptions !== undefined && editorAppRef.current) {
237
+ if (!editorAppRef.current.isDiffEditor()) {
238
+ editorAppRef.current.getEditor()?.updateOptions(editorAppConfigRef.current.editorOptions as monaco.editor.IEditorOptions);
239
+ }
240
+ }
241
+ if (editorAppConfigRef.current?.diffEditorOptions !== undefined && editorAppRef.current) {
242
+ if (editorAppRef.current.isDiffEditor()) {
243
+ editorAppRef.current.getDiffEditor()?.updateOptions(editorAppConfigRef.current.diffEditorOptions as monaco.editor.IDiffEditorOptions);
244
+ }
245
+ }
246
+ }
247
+ onConfigProcessed?.(editorAppRef.current);
248
+ debugLogging('Config processed');
249
+ };
250
+
251
+ useEffect(() => {
252
+ // fast-fail
253
+ if (editorAppConfig === undefined) return;
254
+
255
+ // always try to perform global init. Reason: we cannot ensure order
256
+ performGlobalInit();
257
+
258
+ editorAppConfigRef.current = editorAppConfig;
259
+
221
260
  addQueue('editorInit', editorInitFunc);
261
+ if (editorAppRef.current !== undefined && !launchingRef.current) {
262
+ configProcessedFunc();
263
+ }
222
264
  }, [editorAppConfig]);
223
265
 
224
266
  useEffect(() => {
@@ -230,8 +272,9 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
230
272
 
231
273
  const lcInitFunc = async () => {
232
274
  try {
233
- debugLogging('INIT LC2', true);
275
+ debugLogging('INIT LC', true);
234
276
 
277
+ lcsManager.setLogLevel(languageClientConfig.logLevel);
235
278
  await lcsManager.setConfig(languageClientConfig);
236
279
  await lcsManager.start();
237
280
 
@@ -257,9 +300,11 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
257
300
  // dispose editor if used
258
301
  debugLogging('DISPOSE', true);
259
302
 
260
- await editorAppRef.current?.dispose();
261
- editorAppRef.current = undefined;
262
- onDisposeEditor?.();
303
+ if (editorAppRef.current !== undefined) {
304
+ await editorAppRef.current.dispose();
305
+ editorAppRef.current = undefined;
306
+ onDisposeEditor?.();
307
+ }
263
308
 
264
309
  debugLogging('DISPOSE DONE', true);
265
310
  };
@@ -267,6 +312,12 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
267
312
  };
268
313
  }, []);
269
314
 
315
+ useEffect(() => {
316
+ if (logLevel !== undefined) {
317
+ logger.setLevel(logLevel);
318
+ }
319
+ }, [logLevel]);
320
+
270
321
  useEffect(() => {
271
322
  // always try to perform global init. Reason: we cannot ensure order
272
323
  performGlobalInit();