@typefox/monaco-editor-react 7.3.0-next.0 → 7.3.0-next.2

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,9 +2,10 @@
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.0] - 2025-11-03
5
+ ## [7.3.0-next.2] - 2025-11-05
6
6
 
7
- - Updated to `monaco-languageclient@10.3.0-next.0`.
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.2`.
8
9
  - Updated all `@codingame/monaco-vscode` packages to `22.1.4`.
9
10
 
10
11
  ## [7.2.0] - 2025-10-20
@@ -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;AAKD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAmQ7D,CAAC"}
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,CAsQ7D,CAAC"}
package/lib/index.js CHANGED
@@ -6,25 +6,27 @@ import { EditorApp } from 'monaco-languageclient/editorApp';
6
6
  import { LanguageClientManager } from 'monaco-languageclient/lcwrapper';
7
7
  import { getEnhancedMonacoEnvironment, MonacoVscodeApiWrapper } from 'monaco-languageclient/vscodeApiWrapper';
8
8
  import React, { useEffect, useRef } from 'react';
9
- // this must be outside of the component as this is valid across multiple instances
9
+ // All must be outside of the component as they ars valid across all instances and should not be re-created
10
+ let apiWrapper;
10
11
  const lcsManager = new LanguageClientManager();
12
+ const haveEditorService = () => {
13
+ return getEnhancedMonacoEnvironment().viewServiceType === 'EditorService';
14
+ };
15
+ const runQueue = [];
16
+ let queueAwait = undefined;
17
+ let queueResolve = undefined;
11
18
  export const MonacoEditorReactComp = (props) => {
12
19
  const { style, className, vscodeApiConfig, editorAppConfig, languageClientConfig, enforceDisposeLanguageClient, onVscodeApiInitDone, onEditorStartDone, onLanguageClientsStartDone, onTextChanged, onError, onDisposeEditor, onDisposeLanguageClient, modifiedTextValue, originalTextValue } = props;
13
- const apiWrapperRef = useRef(new MonacoVscodeApiWrapper(vscodeApiConfig));
14
- const haveEditorService = useRef(true);
15
20
  const currentEditorConfig = useRef(undefined);
16
- const editorAppRef = useRef(null);
21
+ const editorAppRef = useRef(undefined);
17
22
  const containerRef = useRef(null);
18
23
  const onTextChangedRef = useRef(onTextChanged);
19
24
  const modifiedCode = useRef(modifiedTextValue);
20
25
  const originalCode = useRef(originalTextValue);
21
- const runQueue = useRef([]);
22
- let queueAwait = undefined;
23
- let queueResolve = undefined;
24
26
  const addQueue = (id, func) => {
25
27
  debugLogging(`Adding to queue: ${id}`);
26
- debugLogging(`QUEUE SIZE before: ${runQueue.current.length}`);
27
- runQueue.current.push({ id, func });
28
+ debugLogging(`QUEUE SIZE before: ${runQueue.length}`);
29
+ runQueue.push({ id, func });
28
30
  };
29
31
  const triggerQueue = () => {
30
32
  setInterval(() => {
@@ -37,12 +39,13 @@ export const MonacoEditorReactComp = (props) => {
37
39
  }, 50);
38
40
  };
39
41
  const executeQueue = async () => {
40
- while (runQueue.current.length > 0) {
41
- const queueObj = runQueue.current.shift();
42
+ while (runQueue.length > 0) {
43
+ const queueObj = runQueue.shift();
42
44
  if (queueObj !== undefined) {
45
+ debugLogging(`QUEUE ${queueObj.id} SIZE before: ${runQueue.length}`);
43
46
  debugLogging(`QUEUE ${queueObj.id} start`, true);
44
47
  await queueObj.func();
45
- debugLogging(`QUEUE ${queueObj.id} SIZE after: ${runQueue.current.length}`);
48
+ debugLogging(`QUEUE ${queueObj.id} SIZE after: ${runQueue.length}`);
46
49
  debugLogging(`QUEUE ${queueObj.id} end`);
47
50
  }
48
51
  }
@@ -52,10 +55,10 @@ export const MonacoEditorReactComp = (props) => {
52
55
  };
53
56
  const debugLogging = (id, useTime) => {
54
57
  if (useTime === true) {
55
- apiWrapperRef.current.getLogger().debug(`${id}: ${Date.now()}`);
58
+ apiWrapper?.getLogger().debug(`${id}: ${Date.now()}`);
56
59
  }
57
60
  else {
58
- apiWrapperRef.current.getLogger().debug(id);
61
+ apiWrapper?.getLogger().debug(id);
59
62
  }
60
63
  };
61
64
  const performErrorHandling = (error) => {
@@ -68,14 +71,14 @@ export const MonacoEditorReactComp = (props) => {
68
71
  };
69
72
  useEffect(() => {
70
73
  // this is only available if EditorService is configured
71
- if (modifiedTextValue !== undefined && haveEditorService.current) {
74
+ if (haveEditorService() && modifiedTextValue !== undefined) {
72
75
  modifiedCode.current = modifiedTextValue;
73
76
  editorAppRef.current?.updateCode({ modified: modifiedTextValue });
74
77
  }
75
78
  }, [modifiedTextValue]);
76
79
  useEffect(() => {
77
80
  // this is only available if EditorService is configured
78
- if (originalTextValue !== undefined && haveEditorService.current) {
81
+ if (haveEditorService() && originalTextValue !== undefined) {
79
82
  originalCode.current = originalTextValue;
80
83
  editorAppRef.current?.updateCode({ original: originalTextValue });
81
84
  }
@@ -87,19 +90,27 @@ export const MonacoEditorReactComp = (props) => {
87
90
  const envEnhanced = getEnhancedMonacoEnvironment();
88
91
  // init will only performed once
89
92
  if (envEnhanced.vscodeApiInitialising !== true) {
93
+ apiWrapper = new MonacoVscodeApiWrapper(vscodeApiConfig);
90
94
  const globalInitFunc = async () => {
91
- debugLogging('GLOBAL INIT', true);
92
- apiWrapperRef.current.overrideViewsConfig({
93
- $type: apiWrapperRef.current.getMonacoVscodeApiConfig().viewsConfig.$type,
94
- htmlContainer: containerRef.current
95
- });
96
- await apiWrapperRef.current.start();
97
- // set if editor mode is available, otherwise text bindings will not work
98
- haveEditorService.current = envEnhanced.viewServiceType === 'EditorService';
99
- lcsManager.setLogger(apiWrapperRef.current.getLogger());
100
- onVscodeApiInitDone?.(apiWrapperRef.current);
101
- triggerQueue();
102
- debugLogging('GLOBAL INIT DONE', true);
95
+ try {
96
+ debugLogging('GLOBAL INIT', true);
97
+ if (apiWrapper === undefined)
98
+ throw new Error('Unexpected error occurred: apiWrapper is not available! Aborting...');
99
+ if (apiWrapper.getMonacoVscodeApiConfig().viewsConfig.$type === 'EditorService') {
100
+ apiWrapper.overrideViewsConfig({
101
+ $type: 'EditorService',
102
+ htmlContainer: containerRef.current
103
+ });
104
+ }
105
+ await apiWrapper.start();
106
+ lcsManager.setLogger(apiWrapper.getLogger());
107
+ onVscodeApiInitDone?.(apiWrapper);
108
+ triggerQueue();
109
+ debugLogging('GLOBAL INIT DONE', true);
110
+ }
111
+ catch (error) {
112
+ performErrorHandling(error);
113
+ }
103
114
  };
104
115
  globalInitFunc();
105
116
  }
@@ -113,17 +124,16 @@ export const MonacoEditorReactComp = (props) => {
113
124
  return;
114
125
  // always try to perform global init. Reason: we cannot ensure order
115
126
  performGlobalInit();
116
- let createEditor = false;
117
- // it is possible to run without an editorApp, for example when using the ViewsService
118
- if (haveEditorService.current) {
119
- createEditor = currentEditorConfig.current === undefined || JSON.stringify(editorAppConfig) !== JSON.stringify(currentEditorConfig.current);
120
- }
127
+ // re-create editor if config changed
128
+ const recreateEditor = editorAppRef.current === undefined || currentEditorConfig.current === undefined ||
129
+ JSON.stringify(editorAppConfig) !== JSON.stringify(currentEditorConfig.current);
121
130
  const editorInitFunc = async () => {
122
131
  try {
123
132
  debugLogging('INIT', true);
124
- if (createEditor) {
133
+ // it is possible to run without an editorApp, for example when using the ViewsService
134
+ if (recreateEditor && haveEditorService()) {
125
135
  debugLogging('INIT: Creating editor', true);
126
- editorAppRef.current?.dispose();
136
+ await handleEditorDispose();
127
137
  currentEditorConfig.current = editorAppConfig;
128
138
  editorAppRef.current = new EditorApp(editorAppConfig);
129
139
  if (editorAppRef.current.isStarting() === true || editorAppRef.current.isDisposing() === true) {
@@ -154,6 +164,11 @@ export const MonacoEditorReactComp = (props) => {
154
164
  };
155
165
  addQueue('editorInit', editorInitFunc);
156
166
  }, [editorAppConfig]);
167
+ const handleEditorDispose = async () => {
168
+ await editorAppRef.current?.dispose();
169
+ editorAppRef.current = undefined;
170
+ onDisposeEditor?.();
171
+ };
157
172
  useEffect(() => {
158
173
  // fast-fail
159
174
  if (languageClientConfig === undefined)
@@ -183,9 +198,7 @@ export const MonacoEditorReactComp = (props) => {
183
198
  const disposeFunc = async () => {
184
199
  // dispose editor if used
185
200
  debugLogging('DISPOSE', true);
186
- await editorAppRef.current?.dispose();
187
- onDisposeEditor?.();
188
- editorAppRef.current = null;
201
+ await handleEditorDispose();
189
202
  debugLogging('DISPOSE DONE', true);
190
203
  };
191
204
  addQueue('dispose', disposeFunc);
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.0",
3
+ "version": "7.3.0-next.2",
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.3",
49
+ "@codingame/monaco-vscode-editor-api": "^22.1.4",
50
50
  "react": ">=18.0.0 || <20.0.0"
51
51
  },
52
52
  "repository": {
package/src/index.tsx CHANGED
@@ -28,8 +28,16 @@ export type MonacoEditorProps = {
28
28
  originalTextValue?: string;
29
29
  }
30
30
 
31
- // this must be outside of the component as this is valid across multiple instances
31
+ // All must be outside of the component as they ars valid across all instances and should not be re-created
32
+ let apiWrapper: MonacoVscodeApiWrapper | undefined;
32
33
  const lcsManager = new LanguageClientManager();
34
+ const haveEditorService = () => {
35
+ return getEnhancedMonacoEnvironment().viewServiceType === 'EditorService';
36
+ };
37
+
38
+ 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;
33
41
 
34
42
  export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
35
43
  const {
@@ -50,23 +58,17 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
50
58
  originalTextValue
51
59
  } = props;
52
60
 
53
- const apiWrapperRef = useRef<MonacoVscodeApiWrapper>(new MonacoVscodeApiWrapper(vscodeApiConfig));
54
- const haveEditorService = useRef(true);
55
61
  const currentEditorConfig = useRef<EditorAppConfig | undefined>(undefined);
56
- const editorAppRef = useRef<EditorApp>(null);
62
+ const editorAppRef = useRef<EditorApp>(undefined);
57
63
  const containerRef = useRef<HTMLDivElement>(null);
58
64
  const onTextChangedRef = useRef(onTextChanged);
59
65
  const modifiedCode = useRef<string>(modifiedTextValue);
60
66
  const originalCode = useRef<string>(originalTextValue);
61
67
 
62
- const runQueue = useRef<Array<{id: string, func: () => Promise<void>}>>([]);
63
- let queueAwait: Promise<void> | undefined = undefined;
64
- let queueResolve: ((value: void | PromiseLike<void>) => void) | undefined = undefined;
65
-
66
68
  const addQueue = (id: string, func: () => Promise<void>) => {
67
69
  debugLogging(`Adding to queue: ${id}`);
68
- debugLogging(`QUEUE SIZE before: ${runQueue.current.length}`);
69
- runQueue.current.push({id, func});
70
+ debugLogging(`QUEUE SIZE before: ${runQueue.length}`);
71
+ runQueue.push({id, func});
70
72
  };
71
73
 
72
74
  const triggerQueue = () => {
@@ -81,12 +83,13 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
81
83
  };
82
84
 
83
85
  const executeQueue = async () => {
84
- while (runQueue.current.length > 0) {
85
- const queueObj = runQueue.current.shift();
86
+ while (runQueue.length > 0) {
87
+ const queueObj = runQueue.shift();
86
88
  if (queueObj !== undefined) {
89
+ debugLogging(`QUEUE ${queueObj.id} SIZE before: ${runQueue.length}`);
87
90
  debugLogging(`QUEUE ${queueObj.id} start`, true);
88
91
  await queueObj.func();
89
- debugLogging(`QUEUE ${queueObj.id} SIZE after: ${runQueue.current.length}`);
92
+ debugLogging(`QUEUE ${queueObj.id} SIZE after: ${runQueue.length}`);
90
93
  debugLogging(`QUEUE ${queueObj.id} end`);
91
94
  }
92
95
  }
@@ -97,9 +100,9 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
97
100
 
98
101
  const debugLogging = (id: string, useTime?: boolean) => {
99
102
  if (useTime === true) {
100
- apiWrapperRef.current.getLogger().debug(`${id}: ${Date.now()}`);
103
+ apiWrapper?.getLogger().debug(`${id}: ${Date.now()}`);
101
104
  } else {
102
- apiWrapperRef.current.getLogger().debug(id);
105
+ apiWrapper?.getLogger().debug(id);
103
106
  }
104
107
  };
105
108
 
@@ -113,7 +116,7 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
113
116
 
114
117
  useEffect(() => {
115
118
  // this is only available if EditorService is configured
116
- if (modifiedTextValue !== undefined && haveEditorService.current) {
119
+ if (haveEditorService() && modifiedTextValue !== undefined) {
117
120
  modifiedCode.current = modifiedTextValue;
118
121
  editorAppRef.current?.updateCode({modified: modifiedTextValue});
119
122
  }
@@ -121,7 +124,7 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
121
124
 
122
125
  useEffect(() => {
123
126
  // this is only available if EditorService is configured
124
- if (originalTextValue !== undefined && haveEditorService.current) {
127
+ if (haveEditorService() && originalTextValue !== undefined) {
125
128
  originalCode.current = originalTextValue;
126
129
  editorAppRef.current?.updateCode({original: originalTextValue});
127
130
  }
@@ -136,22 +139,28 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
136
139
  // init will only performed once
137
140
  if (envEnhanced.vscodeApiInitialising !== true) {
138
141
 
142
+ apiWrapper = new MonacoVscodeApiWrapper(vscodeApiConfig);
139
143
  const globalInitFunc = async () => {
140
- debugLogging('GLOBAL INIT', true);
141
-
142
- apiWrapperRef.current.overrideViewsConfig({
143
- $type: apiWrapperRef.current.getMonacoVscodeApiConfig().viewsConfig.$type,
144
- htmlContainer: containerRef.current!
145
- });
146
- await apiWrapperRef.current.start();
144
+ try {
145
+ debugLogging('GLOBAL INIT', true);
146
+ if (apiWrapper === undefined) throw new Error('Unexpected error occurred: apiWrapper is not available! Aborting...');
147
+
148
+ if (apiWrapper.getMonacoVscodeApiConfig().viewsConfig.$type === 'EditorService') {
149
+ apiWrapper.overrideViewsConfig({
150
+ $type: 'EditorService',
151
+ htmlContainer: containerRef.current!
152
+ });
153
+ }
154
+ await apiWrapper.start();
147
155
 
148
- // set if editor mode is available, otherwise text bindings will not work
149
- haveEditorService.current = envEnhanced.viewServiceType === 'EditorService';
150
- lcsManager.setLogger(apiWrapperRef.current.getLogger());
156
+ lcsManager.setLogger(apiWrapper.getLogger());
151
157
 
152
- onVscodeApiInitDone?.(apiWrapperRef.current);
153
- triggerQueue();
154
- debugLogging('GLOBAL INIT DONE', true);
158
+ onVscodeApiInitDone?.(apiWrapper);
159
+ triggerQueue();
160
+ debugLogging('GLOBAL INIT DONE', true);
161
+ } catch (error) {
162
+ performErrorHandling(error as Error);
163
+ }
155
164
  };
156
165
  globalInitFunc();
157
166
  } else if (envEnhanced.vscodeApiInitialised === true) {
@@ -166,20 +175,18 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
166
175
  // always try to perform global init. Reason: we cannot ensure order
167
176
  performGlobalInit();
168
177
 
169
- let createEditor = false;
170
- // it is possible to run without an editorApp, for example when using the ViewsService
171
- if (haveEditorService.current) {
172
- createEditor = currentEditorConfig.current === undefined || JSON.stringify(editorAppConfig) !== JSON.stringify(currentEditorConfig.current);
173
- }
174
-
178
+ // re-create editor if config changed
179
+ const recreateEditor = editorAppRef.current === undefined || currentEditorConfig.current === undefined ||
180
+ JSON.stringify(editorAppConfig) !== JSON.stringify(currentEditorConfig.current);
175
181
  const editorInitFunc = async () => {
176
182
  try {
177
183
  debugLogging('INIT', true);
178
184
 
179
- if (createEditor) {
185
+ // it is possible to run without an editorApp, for example when using the ViewsService
186
+ if (recreateEditor && haveEditorService()) {
180
187
  debugLogging('INIT: Creating editor', true);
181
188
 
182
- editorAppRef.current?.dispose();
189
+ await handleEditorDispose();
183
190
 
184
191
  currentEditorConfig.current = editorAppConfig;
185
192
  editorAppRef.current = new EditorApp(editorAppConfig);
@@ -214,6 +221,12 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
214
221
  addQueue('editorInit', editorInitFunc);
215
222
  }, [editorAppConfig]);
216
223
 
224
+ const handleEditorDispose = async () => {
225
+ await editorAppRef.current?.dispose();
226
+ editorAppRef.current = undefined;
227
+ onDisposeEditor?.();
228
+ };
229
+
217
230
  useEffect(() => {
218
231
  // fast-fail
219
232
  if (languageClientConfig === undefined) return;
@@ -250,9 +263,7 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
250
263
  // dispose editor if used
251
264
  debugLogging('DISPOSE', true);
252
265
 
253
- await editorAppRef.current?.dispose();
254
- onDisposeEditor?.();
255
- editorAppRef.current = null;
266
+ await handleEditorDispose();
256
267
 
257
268
  debugLogging('DISPOSE DONE', true);
258
269
  };