monaco-languageclient 10.7.0 → 11.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG.md +13 -4
  2. package/LICENSE +0 -0
  3. package/README.md +63 -63
  4. package/lib/common/commonTypes.d.ts +1 -1
  5. package/lib/common/commonTypes.d.ts.map +1 -1
  6. package/lib/common/utils.d.ts.map +1 -1
  7. package/lib/common/utils.js +2 -2
  8. package/lib/common/utils.js.map +1 -1
  9. package/lib/debugger/index.d.ts +1 -1
  10. package/lib/debugger/index.d.ts.map +1 -1
  11. package/lib/debugger/index.js +2 -4
  12. package/lib/debugger/index.js.map +1 -1
  13. package/lib/editorApp/config.d.ts +11 -11
  14. package/lib/editorApp/config.d.ts.map +1 -1
  15. package/lib/editorApp/config.js +0 -1
  16. package/lib/editorApp/config.js.map +1 -1
  17. package/lib/editorApp/editorApp.d.ts +5 -5
  18. package/lib/editorApp/editorApp.d.ts.map +1 -1
  19. package/lib/editorApp/editorApp.js +21 -23
  20. package/lib/editorApp/editorApp.js.map +1 -1
  21. package/lib/fs/definitions.d.ts.map +1 -1
  22. package/lib/fs/endpoints/defaultEndpoint.d.ts.map +1 -1
  23. package/lib/fs/endpoints/defaultEndpoint.js.map +1 -1
  24. package/lib/index.d.ts +1 -1
  25. package/lib/index.d.ts.map +1 -1
  26. package/lib/index.js +1 -1
  27. package/lib/index.js.map +1 -1
  28. package/lib/vscode/apiWrapper.d.ts +2 -2
  29. package/lib/vscode/apiWrapper.d.ts.map +1 -1
  30. package/lib/vscode/apiWrapper.js +18 -20
  31. package/lib/vscode/apiWrapper.js.map +1 -1
  32. package/lib/vscode/config.d.ts +4 -4
  33. package/lib/vscode/config.d.ts.map +1 -1
  34. package/lib/vscode/config.js +0 -1
  35. package/lib/vscode/config.js.map +1 -1
  36. package/lib/vscode/locales.d.ts +1 -1
  37. package/lib/vscode/locales.d.ts.map +1 -1
  38. package/lib/vscode/locales.js +35 -18
  39. package/lib/vscode/locales.js.map +1 -1
  40. package/lib/vscode/utils.d.ts +3 -3
  41. package/lib/vscode/utils.d.ts.map +1 -1
  42. package/lib/vscode/utils.js +3 -10
  43. package/lib/vscode/utils.js.map +1 -1
  44. package/lib/vscode/viewsService.d.ts.map +1 -1
  45. package/lib/vscode/viewsService.js +13 -7
  46. package/lib/vscode/viewsService.js.map +1 -1
  47. package/lib/worker/index.d.ts +1 -1
  48. package/lib/worker/index.d.ts.map +1 -1
  49. package/lib/worker/index.js.map +1 -1
  50. package/lib/wrapper/lcconfig.d.ts +2 -2
  51. package/lib/wrapper/lcconfig.d.ts.map +1 -1
  52. package/lib/wrapper/lcmanager.d.ts.map +1 -1
  53. package/lib/wrapper/lcmanager.js.map +1 -1
  54. package/lib/wrapper/lcwrapper.d.ts +1 -1
  55. package/lib/wrapper/lcwrapper.d.ts.map +1 -1
  56. package/lib/wrapper/lcwrapper.js +17 -16
  57. package/lib/wrapper/lcwrapper.js.map +1 -1
  58. package/package.json +70 -96
  59. package/src/common/commonTypes.ts +35 -30
  60. package/src/common/index.ts +0 -1
  61. package/src/common/utils.ts +45 -45
  62. package/src/debugger/index.ts +130 -133
  63. package/src/editorApp/config.ts +33 -33
  64. package/src/editorApp/editorApp.ts +382 -370
  65. package/src/fs/definitions.ts +72 -75
  66. package/src/fs/endpoints/defaultEndpoint.ts +50 -41
  67. package/src/index.ts +18 -18
  68. package/src/vscode/apiWrapper.ts +302 -295
  69. package/src/vscode/config.ts +30 -30
  70. package/src/vscode/locales.ts +127 -110
  71. package/src/vscode/utils.ts +20 -26
  72. package/src/vscode/viewsService.ts +44 -37
  73. package/src/worker/index.ts +38 -45
  74. package/src/wrapper/lcconfig.ts +16 -16
  75. package/src/wrapper/lcmanager.ts +68 -69
  76. package/src/wrapper/lcwrapper.ts +256 -249
@@ -7,7 +7,7 @@ import type { IWorkbenchConstructionOptions } from '@codingame/monaco-vscode-api
7
7
  import { LogLevel } from '@codingame/monaco-vscode-api';
8
8
  import type { IExtensionManifest } from '@codingame/monaco-vscode-api/extensions';
9
9
  import type { EnvironmentOverride } from '@codingame/monaco-vscode-api/workbench';
10
- import * as monaco from '@codingame/monaco-vscode-editor-api';
10
+ import type { editor, Environment } from '@codingame/monaco-vscode-editor-api';
11
11
  import type { OpenEditor } from '@codingame/monaco-vscode-editor-service-override';
12
12
  import type { ILogger } from '@codingame/monaco-vscode-log-service-override';
13
13
 
@@ -17,45 +17,45 @@ export type ViewsConfigTypes = 'EditorService' | 'ViewsService' | 'WorkbenchServ
17
17
 
18
18
  // export type HtmlContainerConfig = HTMLElement;
19
19
 
20
- export interface MonacoEnvironmentEnhanced extends monaco.Environment {
21
- vscodeApiInitialising?: boolean;
22
- vscodeApiInitialised?: boolean;
23
- vscodeApiGlobalInitAwait?: Promise<void>;
24
- vscodeApiGlobalInitResolve?: ((value: void | PromiseLike<void>) => void);
25
- viewServiceType?: ViewsConfigTypes;
20
+ export interface MonacoEnvironmentEnhanced extends Environment {
21
+ vscodeApiInitialising?: boolean;
22
+ vscodeApiInitialised?: boolean;
23
+ vscodeApiGlobalInitAwait?: Promise<void>;
24
+ vscodeApiGlobalInitResolve?: (value: void | PromiseLike<void>) => void;
25
+ viewServiceType?: ViewsConfigTypes;
26
26
  }
27
27
 
28
28
  export interface UserConfiguration {
29
- json?: string;
29
+ json?: string;
30
30
  }
31
31
 
32
32
  export interface ViewsConfig {
33
- $type: ViewsConfigTypes;
34
- htmlContainer?: HTMLElement;
35
- openEditorFunc?: OpenEditor;
36
- htmlAugmentationInstructions?: (htmlContainer: HTMLElement | null | undefined) => void;
37
- viewsInitFunc?: () => Promise<void>;
33
+ $type: ViewsConfigTypes;
34
+ htmlContainer?: HTMLElement;
35
+ openEditorFunc?: OpenEditor;
36
+ htmlAugmentationInstructions?: (htmlContainer: HTMLElement | null | undefined) => void;
37
+ viewsInitFunc?: () => Promise<void>;
38
38
  }
39
39
 
40
40
  export interface ExtensionConfig {
41
- config: IExtensionManifest;
42
- filesOrContents?: Map<string, string | URL>;
41
+ config: IExtensionManifest;
42
+ filesOrContents?: Map<string, string | URL>;
43
43
  }
44
44
 
45
45
  export interface MonacoVscodeApiConfig {
46
- $type: OverallConfigType;
47
- viewsConfig: ViewsConfig,
48
- serviceOverrides?: monaco.editor.IEditorOverrideServices;
49
- logLevel?: LogLevel | number;
50
- workspaceConfig?: IWorkbenchConstructionOptions;
51
- userConfiguration?: UserConfiguration;
52
- envOptions?: EnvironmentOverride;
53
- extensions?: ExtensionConfig[];
54
- monacoWorkerFactory?: (logger?: ILogger) => void;
55
- advanced?: {
56
- loadExtensionServices?: boolean;
57
- enableExtHostWorker?: boolean;
58
- loadThemes?: boolean;
59
- enforceSemanticHighlighting?: boolean;
60
- };
46
+ $type: OverallConfigType;
47
+ viewsConfig: ViewsConfig;
48
+ serviceOverrides?: editor.IEditorOverrideServices;
49
+ logLevel?: LogLevel | number;
50
+ workspaceConfig?: IWorkbenchConstructionOptions;
51
+ userConfiguration?: UserConfiguration;
52
+ envOptions?: EnvironmentOverride;
53
+ extensions?: ExtensionConfig[];
54
+ monacoWorkerFactory?: (logger?: ILogger) => void;
55
+ advanced?: {
56
+ loadExtensionServices?: boolean;
57
+ enableExtHostWorker?: boolean;
58
+ loadThemes?: boolean;
59
+ enforceSemanticHighlighting?: boolean;
60
+ };
61
61
  }
@@ -7,123 +7,140 @@ import type { LocalizationOptions } from '@codingame/monaco-vscode-localization-
7
7
  import type { ILogger } from '@codingame/monaco-vscode-log-service-override';
8
8
 
9
9
  export const createDefaultLocaleConfiguration = (): LocalizationOptions => {
10
- return {
11
- async clearLocale() {
12
- const url = new URL(window.location.href);
13
- url.searchParams.delete('locale');
14
- window.history.pushState(null, '', url.toString());
15
- },
16
- async setLocale(id: string) {
17
- const url = new URL(window.location.href);
18
- url.searchParams.set('locale', id);
19
- window.history.pushState(null, '', url.toString());
20
- },
21
- availableLanguages: [{
22
- locale: 'en',
23
- languageName: 'English'
24
- }, {
25
- locale: 'cs',
26
- languageName: 'Czech'
27
- }, {
28
- locale: 'de',
29
- languageName: 'German'
30
- }, {
31
- locale: 'es',
32
- languageName: 'Spanish'
33
- }, {
34
- locale: 'fr',
35
- languageName: 'French'
36
- }, {
37
- locale: 'it',
38
- languageName: 'Italian'
39
- }, {
40
- locale: 'ja',
41
- languageName: 'Japanese'
42
- }, {
43
- locale: 'ko',
44
- languageName: 'Korean'
45
- }, {
46
- locale: 'pl',
47
- languageName: 'Polish'
48
- }, {
49
- locale: 'pt-br',
50
- languageName: 'Portuguese (Brazil)'
51
- }, {
52
- locale: 'qps-ploc',
53
- languageName: 'Pseudo Language'
54
- }, {
55
- locale: 'ru',
56
- languageName: 'Russian'
57
- }, {
58
- locale: 'tr',
59
- languageName: 'Turkish'
60
- }, {
61
- locale: 'zh-hans',
62
- languageName: 'Chinese (Simplified)'
63
- }, {
64
- locale: 'zh-hant',
65
- languageName: 'Chinese (Traditional)'
66
- }, {
67
- locale: 'en',
68
- languageName: 'English'
69
- }]
70
- };
10
+ return {
11
+ async clearLocale() {
12
+ const url = new URL(window.location.href);
13
+ url.searchParams.delete('locale');
14
+ window.history.pushState(null, '', url.toString());
15
+ },
16
+ async setLocale(id: string) {
17
+ const url = new URL(window.location.href);
18
+ url.searchParams.set('locale', id);
19
+ window.history.pushState(null, '', url.toString());
20
+ },
21
+ availableLanguages: [
22
+ {
23
+ locale: 'en',
24
+ languageName: 'English'
25
+ },
26
+ {
27
+ locale: 'cs',
28
+ languageName: 'Czech'
29
+ },
30
+ {
31
+ locale: 'de',
32
+ languageName: 'German'
33
+ },
34
+ {
35
+ locale: 'es',
36
+ languageName: 'Spanish'
37
+ },
38
+ {
39
+ locale: 'fr',
40
+ languageName: 'French'
41
+ },
42
+ {
43
+ locale: 'it',
44
+ languageName: 'Italian'
45
+ },
46
+ {
47
+ locale: 'ja',
48
+ languageName: 'Japanese'
49
+ },
50
+ {
51
+ locale: 'ko',
52
+ languageName: 'Korean'
53
+ },
54
+ {
55
+ locale: 'pl',
56
+ languageName: 'Polish'
57
+ },
58
+ {
59
+ locale: 'pt-br',
60
+ languageName: 'Portuguese (Brazil)'
61
+ },
62
+ {
63
+ locale: 'qps-ploc',
64
+ languageName: 'Pseudo Language'
65
+ },
66
+ {
67
+ locale: 'ru',
68
+ languageName: 'Russian'
69
+ },
70
+ {
71
+ locale: 'tr',
72
+ languageName: 'Turkish'
73
+ },
74
+ {
75
+ locale: 'zh-hans',
76
+ languageName: 'Chinese (Simplified)'
77
+ },
78
+ {
79
+ locale: 'zh-hant',
80
+ languageName: 'Chinese (Traditional)'
81
+ },
82
+ {
83
+ locale: 'en',
84
+ languageName: 'English'
85
+ }
86
+ ]
87
+ };
71
88
  };
72
89
 
73
90
  const localeLoader: Partial<Record<string, () => Promise<void>>> = {
74
- cs: async () => {
75
- await import('@codingame/monaco-vscode-language-pack-cs');
76
- },
77
- de: async () => {
78
- await import('@codingame/monaco-vscode-language-pack-de');
79
- },
80
- es: async () => {
81
- await import('@codingame/monaco-vscode-language-pack-es');
82
- },
83
- fr: async () => {
84
- await import('@codingame/monaco-vscode-language-pack-fr');
85
- },
86
- it: async () => {
87
- await import('@codingame/monaco-vscode-language-pack-it');
88
- },
89
- ja: async () => {
90
- await import('@codingame/monaco-vscode-language-pack-ja');
91
- },
92
- ko: async () => {
93
- await import('@codingame/monaco-vscode-language-pack-ko');
94
- },
95
- pl: async () => {
96
- await import('@codingame/monaco-vscode-language-pack-pl');
97
- },
98
- 'pt-br': async () => {
99
- await import('@codingame/monaco-vscode-language-pack-pt-br');
100
- },
101
- 'qps-ploc': async () => {
102
- await import('@codingame/monaco-vscode-language-pack-qps-ploc');
103
- },
104
- ru: async () => {
105
- await import('@codingame/monaco-vscode-language-pack-ru');
106
- },
107
- tr: async () => {
108
- await import('@codingame/monaco-vscode-language-pack-tr');
109
- },
110
- 'zh-hans': async () => {
111
- await import('@codingame/monaco-vscode-language-pack-zh-hans');
112
- },
113
- 'zh-hant': async () => {
114
- await import('@codingame/monaco-vscode-language-pack-zh-hant');
115
- }
91
+ cs: async () => {
92
+ await import('@codingame/monaco-vscode-language-pack-cs');
93
+ },
94
+ de: async () => {
95
+ await import('@codingame/monaco-vscode-language-pack-de');
96
+ },
97
+ es: async () => {
98
+ await import('@codingame/monaco-vscode-language-pack-es');
99
+ },
100
+ fr: async () => {
101
+ await import('@codingame/monaco-vscode-language-pack-fr');
102
+ },
103
+ it: async () => {
104
+ await import('@codingame/monaco-vscode-language-pack-it');
105
+ },
106
+ ja: async () => {
107
+ await import('@codingame/monaco-vscode-language-pack-ja');
108
+ },
109
+ ko: async () => {
110
+ await import('@codingame/monaco-vscode-language-pack-ko');
111
+ },
112
+ pl: async () => {
113
+ await import('@codingame/monaco-vscode-language-pack-pl');
114
+ },
115
+ 'pt-br': async () => {
116
+ await import('@codingame/monaco-vscode-language-pack-pt-br');
117
+ },
118
+ 'qps-ploc': async () => {
119
+ await import('@codingame/monaco-vscode-language-pack-qps-ploc');
120
+ },
121
+ ru: async () => {
122
+ await import('@codingame/monaco-vscode-language-pack-ru');
123
+ },
124
+ tr: async () => {
125
+ await import('@codingame/monaco-vscode-language-pack-tr');
126
+ },
127
+ 'zh-hans': async () => {
128
+ await import('@codingame/monaco-vscode-language-pack-zh-hans');
129
+ },
130
+ 'zh-hant': async () => {
131
+ await import('@codingame/monaco-vscode-language-pack-zh-hant');
132
+ }
116
133
  };
117
134
 
118
135
  export const locales = Object.keys(localeLoader);
119
136
 
120
137
  export const initLocaleLoader = async (locale = new URLSearchParams(window.location.search).get('locale'), logger?: ILogger) => {
121
- if (locale !== null) {
122
- const loader = localeLoader[locale];
123
- if (loader) {
124
- await loader();
125
- } else {
126
- logger?.error(`Unknown locale ${locale}`);
127
- }
138
+ if (locale !== null) {
139
+ const loader = localeLoader[locale];
140
+ if (loader !== undefined) {
141
+ await loader();
142
+ } else {
143
+ logger?.error(`Unknown locale ${locale}`);
128
144
  }
145
+ }
129
146
  };
@@ -3,44 +3,38 @@
3
3
  * Licensed under the MIT License. See LICENSE in the package root for license information.
4
4
  * ------------------------------------------------------------------------------------------ */
5
5
 
6
- import * as monaco from '@codingame/monaco-vscode-editor-api';
6
+ import type { editor } from '@codingame/monaco-vscode-editor-api';
7
7
  import type { OpenEditor } from '@codingame/monaco-vscode-editor-service-override';
8
8
  import type { ILogger } from '@codingame/monaco-vscode-log-service-override';
9
9
  import type { MonacoEnvironmentEnhanced } from './config.js';
10
10
 
11
11
  export const getEnhancedMonacoEnvironment = (): MonacoEnvironmentEnhanced => {
12
- if (typeof MonacoEnvironment === 'undefined') {
13
- globalThis.MonacoEnvironment = {};
14
- }
15
- const envEnhanced = MonacoEnvironment as MonacoEnvironmentEnhanced;
16
- if (envEnhanced.vscodeApiInitialising === undefined) {
17
- envEnhanced.vscodeApiInitialising = false;
18
- }
19
- if (envEnhanced.vscodeApiInitialised === undefined) {
20
- envEnhanced.vscodeApiInitialised = false;
21
- }
22
- if (envEnhanced.viewServiceType === undefined) {
23
- envEnhanced.viewServiceType = 'EditorService';
24
- }
12
+ if (typeof MonacoEnvironment === 'undefined') {
13
+ globalThis.MonacoEnvironment = {};
14
+ }
15
+ const envEnhanced = MonacoEnvironment as MonacoEnvironmentEnhanced;
16
+ envEnhanced.vscodeApiInitialising ??= false;
17
+ envEnhanced.vscodeApiInitialised ??= false;
18
+ envEnhanced.viewServiceType ??= 'EditorService';
25
19
 
26
- return envEnhanced;
20
+ return envEnhanced;
27
21
  };
28
22
 
29
- export const reportServiceLoading = (services: monaco.editor.IEditorOverrideServices, logger?: ILogger) => {
30
- for (const serviceName of Object.keys(services)) {
31
- logger?.debug(`Loading service: ${serviceName}`);
32
- }
23
+ export const reportServiceLoading = (services: editor.IEditorOverrideServices, logger?: ILogger) => {
24
+ for (const serviceName of Object.keys(services)) {
25
+ logger?.debug(`Loading service: ${serviceName}`);
26
+ }
33
27
  };
34
28
 
35
- export const mergeServices = (overrideServices: monaco.editor.IEditorOverrideServices, services?: monaco.editor.IEditorOverrideServices) => {
36
- if (services !== undefined) {
37
- for (const [name, service] of Object.entries(services)) {
38
- overrideServices[name] = service;
39
- }
29
+ export const mergeServices = (overrideServices: editor.IEditorOverrideServices, services?: editor.IEditorOverrideServices) => {
30
+ if (services !== undefined) {
31
+ for (const [name, service] of Object.entries(services)) {
32
+ overrideServices[name] = service;
40
33
  }
34
+ }
41
35
  };
42
36
 
43
37
  export const useOpenEditorStub: OpenEditor = async (modelRef, options, sideBySide, logger?: ILogger) => {
44
- logger?.info('Received open editor call with parameters: ', modelRef, options, sideBySide);
45
- return undefined;
38
+ logger?.info('Received open editor call with parameters: ', modelRef, options, sideBySide);
39
+ return undefined;
46
40
  };
@@ -4,44 +4,51 @@
4
4
  * ------------------------------------------------------------------------------------------ */
5
5
 
6
6
  export const defaultViewsInit = async () => {
7
- const { Parts, Position, onPartVisibilityChange, isPartVisibile, attachPart, getSideBarPosition, onDidChangeSideBarPosition } = await import('@codingame/monaco-vscode-views-service-override');
7
+ const { Parts, Position, onPartVisibilityChange, isPartVisibile, attachPart, getSideBarPosition, onDidChangeSideBarPosition } =
8
+ await import('@codingame/monaco-vscode-views-service-override');
8
9
 
9
- for (const config of [
10
- { part: Parts.TITLEBAR_PART, element: '#titleBar' },
11
- { part: Parts.BANNER_PART, element: '#banner' },
12
- {
13
- part: Parts.SIDEBAR_PART, get element() {
14
- return getSideBarPosition() === Position.LEFT ? '#sidebar' : '#sidebar-right';
15
- }, onDidElementChange: onDidChangeSideBarPosition
16
- },
17
- {
18
- part: Parts.ACTIVITYBAR_PART, get element() {
19
- return getSideBarPosition() === Position.LEFT ? '#activityBar' : '#activityBar-right';
20
- }, onDidElementChange: onDidChangeSideBarPosition
21
- },
22
- {
23
- part: Parts.AUXILIARYBAR_PART, get element() {
24
- return getSideBarPosition() === Position.LEFT ? '#auxiliaryBar' : '#auxiliaryBar-left';
25
- }, onDidElementChange: onDidChangeSideBarPosition
26
- },
27
- { part: Parts.EDITOR_PART, element: '#editors' },
28
- { part: Parts.PANEL_PART, element: '#panel' },
29
- { part: Parts.STATUSBAR_PART, element: '#statusBar' }
30
- ]) {
31
- attachPart(config.part, document.querySelector<HTMLDivElement>(config.element)!);
10
+ for (const config of [
11
+ { part: Parts.TITLEBAR_PART, element: '#titleBar' },
12
+ { part: Parts.BANNER_PART, element: '#banner' },
13
+ {
14
+ part: Parts.SIDEBAR_PART,
15
+ get element() {
16
+ return getSideBarPosition() === Position.LEFT ? '#sidebar' : '#sidebar-right';
17
+ },
18
+ onDidElementChange: onDidChangeSideBarPosition
19
+ },
20
+ {
21
+ part: Parts.ACTIVITYBAR_PART,
22
+ get element() {
23
+ return getSideBarPosition() === Position.LEFT ? '#activityBar' : '#activityBar-right';
24
+ },
25
+ onDidElementChange: onDidChangeSideBarPosition
26
+ },
27
+ {
28
+ part: Parts.AUXILIARYBAR_PART,
29
+ get element() {
30
+ return getSideBarPosition() === Position.LEFT ? '#auxiliaryBar' : '#auxiliaryBar-left';
31
+ },
32
+ onDidElementChange: onDidChangeSideBarPosition
33
+ },
34
+ { part: Parts.EDITOR_PART, element: '#editors' },
35
+ { part: Parts.PANEL_PART, element: '#panel' },
36
+ { part: Parts.STATUSBAR_PART, element: '#statusBar' }
37
+ ]) {
38
+ attachPart(config.part, document.querySelector<HTMLDivElement>(config.element)!);
32
39
 
33
- config.onDidElementChange?.(() => {
34
- attachPart(config.part, document.querySelector<HTMLDivElement>(config.element)!);
35
- });
40
+ config.onDidElementChange?.(() => {
41
+ attachPart(config.part, document.querySelector<HTMLDivElement>(config.element)!);
42
+ });
36
43
 
37
- if (!isPartVisibile(config.part)) {
38
- document.querySelector<HTMLDivElement>(config.element)!.style.display = 'none';
39
- }
40
-
41
- onPartVisibilityChange(config.part, visible => {
42
- document.querySelector<HTMLDivElement>(config.element)!.style.display = visible ? 'block' : 'none';
43
- });
44
+ if (!isPartVisibile(config.part)) {
45
+ document.querySelector<HTMLDivElement>(config.element)!.style.display = 'none';
44
46
  }
47
+
48
+ onPartVisibilityChange(config.part, (visible) => {
49
+ document.querySelector<HTMLDivElement>(config.element)!.style.display = visible ? 'block' : 'none';
50
+ });
51
+ }
45
52
  };
46
53
 
47
54
  export const defaultViewsHtml = `<div id="workbench-container">
@@ -67,7 +74,7 @@ export const defaultViewsHtml = `<div id="workbench-container">
67
74
  </div>`;
68
75
 
69
76
  export const defaultHtmlAugmentationInstructions = (htmlElement: HTMLElement | null | undefined) => {
70
- const htmlContainer = document.createElement('div', { is: 'app' });
71
- htmlContainer.innerHTML = defaultViewsHtml;
72
- htmlElement?.append(htmlContainer);
77
+ const htmlContainer = document.createElement('div', { is: 'app' });
78
+ htmlContainer.innerHTML = defaultViewsHtml;
79
+ htmlElement?.append(htmlContainer);
73
80
  };
@@ -7,67 +7,60 @@ import type { ILogger } from '@codingame/monaco-vscode-log-service-override';
7
7
  import { getEnhancedMonacoEnvironment } from 'monaco-languageclient/vscodeApiWrapper';
8
8
 
9
9
  export class Worker {
10
- url: string | URL;
11
- options?: WorkerOptions;
10
+ url: string | URL;
11
+ options?: WorkerOptions;
12
12
 
13
- constructor(url: string | URL, options?: WorkerOptions) {
14
- this.url = url;
15
- this.options = options;
16
- }
13
+ constructor(url: string | URL, options?: WorkerOptions) {
14
+ this.url = url;
15
+ this.options = options;
16
+ }
17
17
  }
18
18
 
19
19
  export type WorkerLoader = (() => Worker) | undefined;
20
20
 
21
21
  export interface WorkerFactoryConfig {
22
- workerLoaders?: Partial<Record<string, WorkerLoader>>;
23
- logger?: ILogger;
22
+ workerLoaders?: Partial<Record<string, WorkerLoader>>;
23
+ logger?: ILogger;
24
24
  }
25
25
 
26
26
  export const useWorkerFactory = (config: WorkerFactoryConfig) => {
27
- const envEnhanced = getEnhancedMonacoEnvironment();
27
+ const envEnhanced = getEnhancedMonacoEnvironment();
28
28
 
29
- envEnhanced.getWorkerUrl = (workerId: string, label: string) => {
30
- config.logger?.info(`getWorkerUrl: workerId: ${workerId} label: ${label}`);
31
- return config.workerLoaders?.[label]?.().url.toString();
32
- };
29
+ envEnhanced.getWorkerUrl = (workerId: string, label: string) => {
30
+ config.logger?.info(`getWorkerUrl: workerId: ${workerId} label: ${label}`);
31
+ return config.workerLoaders?.[label]?.().url.toString();
32
+ };
33
33
 
34
- envEnhanced.getWorkerOptions = (moduleId: string, label: string) => {
35
- config.logger?.info(`getWorkerOptions: moduleId: ${moduleId} label: ${label}`);
36
- return config.workerLoaders?.[label]?.().options;
37
- };
34
+ envEnhanced.getWorkerOptions = (moduleId: string, label: string) => {
35
+ config.logger?.info(`getWorkerOptions: moduleId: ${moduleId} label: ${label}`);
36
+ return config.workerLoaders?.[label]?.().options;
37
+ };
38
38
  };
39
39
 
40
40
  export const defineDefaultWorkerLoaders: () => Partial<Record<string, WorkerLoader>> = () => {
41
- const defaultEditorWorkerService = () => new Worker(
42
- new URL('@codingame/monaco-vscode-editor-api/esm/vs/editor/editor.worker.js', import.meta.url),
43
- { type: 'module' }
44
- );
45
- const defaultExtensionHostWorkerMain = () => new Worker(
46
- new URL('@codingame/monaco-vscode-api/workers/extensionHost.worker', import.meta.url),
47
- { type: 'module' }
48
- );
49
- const defaultTextMateWorker = () => new Worker(
50
- new URL('@codingame/monaco-vscode-textmate-service-override/worker', import.meta.url),
51
- { type: 'module' }
52
- );
41
+ const defaultEditorWorkerService = () =>
42
+ new Worker(new URL('@codingame/monaco-vscode-editor-api/esm/vs/editor/editor.worker.js', import.meta.url), { type: 'module' });
43
+ const defaultExtensionHostWorkerMain = () =>
44
+ new Worker(new URL('@codingame/monaco-vscode-api/workers/extensionHost.worker', import.meta.url), { type: 'module' });
45
+ const defaultTextMateWorker = () =>
46
+ new Worker(new URL('@codingame/monaco-vscode-textmate-service-override/worker', import.meta.url), { type: 'module' });
53
47
 
54
- return {
55
- // if you import monaco api as 'monaco-editor': monaco-editor/esm/vs/editor/editor.worker.js
56
- editorWorkerService: defaultEditorWorkerService,
57
- extensionHostWorkerMain: defaultExtensionHostWorkerMain,
58
- TextMateWorker: defaultTextMateWorker,
59
- // these are other possible workers not configured by default
60
- OutputLinkDetectionWorker: undefined,
61
- LanguageDetectionWorker: undefined,
62
- NotebookEditorWorker: undefined,
63
- LocalFileSearchWorker: undefined
64
- };
48
+ return {
49
+ // if you import monaco api as 'monaco-editor': monaco-editor/esm/vs/editor/editor.worker.js
50
+ editorWorkerService: defaultEditorWorkerService,
51
+ extensionHostWorkerMain: defaultExtensionHostWorkerMain,
52
+ TextMateWorker: defaultTextMateWorker,
53
+ // these are other possible workers not configured by default
54
+ OutputLinkDetectionWorker: undefined,
55
+ LanguageDetectionWorker: undefined,
56
+ NotebookEditorWorker: undefined,
57
+ LocalFileSearchWorker: undefined
58
+ };
65
59
  };
66
60
 
67
61
  export const configureDefaultWorkerFactory = (logger?: ILogger) => {
68
- useWorkerFactory({
69
- workerLoaders: defineDefaultWorkerLoaders(),
70
- logger
71
- });
62
+ useWorkerFactory({
63
+ workerLoaders: defineDefaultWorkerLoaders(),
64
+ logger
65
+ });
72
66
  };
73
-
@@ -5,31 +5,31 @@
5
5
 
6
6
  import { LogLevel } from '@codingame/monaco-vscode-api';
7
7
  import { type ConnectionConfigOptions } from 'monaco-languageclient/common';
8
- import type { DynamicFeature, LanguageClientOptions, MessageTransports, StaticFeature } from 'vscode-languageclient/browser.js';
8
+ import type { DynamicFeature, LanguageClientOptions, MessageTransports, StaticFeature } from 'vscode-languageclient/browser';
9
9
 
10
10
  export interface ConnectionConfig {
11
- options: ConnectionConfigOptions;
12
- messageTransports?: MessageTransports;
11
+ options: ConnectionConfigOptions;
12
+ messageTransports?: MessageTransports;
13
13
  }
14
14
 
15
15
  export interface LanguageClientConfig {
16
- languageId: string;
17
- connection: ConnectionConfig;
18
- clientOptions: LanguageClientOptions;
19
- restartOptions?: LanguageClientRestartOptions;
20
- useClientWithProposedFeatures?: boolean;
21
- // oxlint-disable-next-line @typescript-eslint/no-explicit-any
22
- registerFeatures?: Array<(StaticFeature | DynamicFeature<any>)>;
23
- disposeWorker?: boolean;
24
- logLevel?: LogLevel | number;
16
+ languageId: string;
17
+ connection: ConnectionConfig;
18
+ clientOptions: LanguageClientOptions;
19
+ restartOptions?: LanguageClientRestartOptions;
20
+ useClientWithProposedFeatures?: boolean;
21
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any
22
+ registerFeatures?: Array<StaticFeature | DynamicFeature<any>>;
23
+ disposeWorker?: boolean;
24
+ logLevel?: LogLevel | number;
25
25
  }
26
26
 
27
27
  export interface LanguageClientRestartOptions {
28
- retries: number;
29
- timeout: number;
30
- keepWorker?: boolean;
28
+ retries: number;
29
+ timeout: number;
30
+ keepWorker?: boolean;
31
31
  }
32
32
 
33
33
  export interface LanguageClientConfigs {
34
- configs: Record<string, LanguageClientConfig>;
34
+ configs: Record<string, LanguageClientConfig>;
35
35
  }