@codingame/monaco-vscode-api 1.80.0 → 1.80.1

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 (98) hide show
  1. package/README.md +2 -1
  2. package/dist/api.js +6 -6
  3. package/dist/default-extensions/npm/npmBrowserMain.js.map +1 -1
  4. package/dist/default-extensions/typescript-language-features/tsserver.web.js.map +1 -1
  5. package/dist/missing-services.js +4 -1
  6. package/dist/monaco.js +4 -0
  7. package/dist/override/vs/platform/dialogs/common/dialogs.js +7 -0
  8. package/dist/service-override/dialogs.js +2 -1
  9. package/dist/service-override/extensions.js +2 -1
  10. package/dist/service-override/keybindings.js +1 -0
  11. package/dist/service-override/languageDetectionWorker.d.ts +5 -0
  12. package/dist/service-override/languageDetectionWorker.js +15 -0
  13. package/dist/service-override/layout.js +12 -1
  14. package/dist/service-override/snippets.js +1 -0
  15. package/dist/service-override/views.d.ts +24 -2
  16. package/dist/service-override/views.js +119 -12
  17. package/dist/services.js +2 -1
  18. package/dist/vscode/vs/platform/audioCues/browser/media/all.mp3.js +17 -17
  19. package/dist/vscode/vs/platform/diagnostics/common/diagnostics.js +27 -0
  20. package/dist/vscode/vs/platform/dialogs/common/dialogs.js +126 -0
  21. package/dist/vscode/vs/workbench/api/browser/mainThreadAuthentication.js +2 -1
  22. package/dist/vscode/vs/workbench/api/browser/mainThreadCustomEditors.js +2 -1
  23. package/dist/vscode/vs/workbench/api/browser/mainThreadDialogs.js +2 -1
  24. package/dist/vscode/vs/workbench/api/browser/mainThreadFileSystemEventService.js +2 -1
  25. package/dist/vscode/vs/workbench/api/browser/mainThreadMessageService.js +2 -1
  26. package/dist/vscode/vs/workbench/browser/actions/layoutActions.js +1 -0
  27. package/dist/vscode/vs/workbench/browser/actions/windowActions.js +2 -1
  28. package/dist/vscode/vs/workbench/browser/actions/workspaceActions.js +2 -1
  29. package/dist/vscode/vs/workbench/browser/actions/workspaceCommands.js +1 -0
  30. package/dist/vscode/vs/workbench/browser/parts/dialogs/dialog.web.contribution.js +2 -1
  31. package/dist/vscode/vs/workbench/browser/parts/dialogs/dialogHandler.js +2 -1
  32. package/dist/vscode/vs/workbench/browser/parts/editor/editorActions.js +2 -1
  33. package/dist/vscode/vs/workbench/browser/parts/editor/editorGroupView.js +2 -1
  34. package/dist/vscode/vs/workbench/browser/parts/editor/editorPanes.js +2 -1
  35. package/dist/vscode/vs/workbench/browser/parts/editor/editorPlaceholder.js +2 -1
  36. package/dist/vscode/vs/workbench/common/editor/editorInput.d.ts +1 -1
  37. package/dist/vscode/vs/workbench/common/theme.js +5 -5
  38. package/dist/vscode/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +2 -1
  39. package/dist/vscode/vs/workbench/contrib/codeActions/browser/codeActions.contribution.js +25 -0
  40. package/dist/vscode/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +138 -0
  41. package/dist/vscode/vs/workbench/contrib/codeActions/browser/documentationContribution.js +59 -0
  42. package/dist/vscode/vs/workbench/contrib/codeActions/common/codeActionsExtensionPoint.js +61 -0
  43. package/dist/vscode/vs/workbench/contrib/codeActions/common/documentationExtensionPoint.js +58 -0
  44. package/dist/vscode/vs/workbench/contrib/customEditor/browser/customEditorInput.js +2 -1
  45. package/dist/vscode/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +2 -1
  46. package/dist/vscode/vs/workbench/contrib/debug/browser/debugAdapterManager.js +2 -1
  47. package/dist/vscode/vs/workbench/contrib/debug/browser/debugService.js +2 -1
  48. package/dist/vscode/vs/workbench/contrib/debug/browser/debugTaskRunner.js +2 -1
  49. package/dist/vscode/vs/workbench/contrib/debug/browser/rawDebugSession.js +2 -1
  50. package/dist/vscode/vs/workbench/contrib/debug/common/debugLifecycle.js +2 -1
  51. package/dist/vscode/vs/workbench/contrib/extensions/browser/extensionsActions.js +2 -1
  52. package/dist/vscode/vs/workbench/contrib/files/browser/fileActions.js +2 -1
  53. package/dist/vscode/vs/workbench/contrib/files/browser/fileCommands.js +2 -1
  54. package/dist/vscode/vs/workbench/contrib/files/browser/fileImportExport.js +2 -1
  55. package/dist/vscode/vs/workbench/contrib/files/browser/views/explorerViewer.js +2 -1
  56. package/dist/vscode/vs/workbench/contrib/folding/browser/folding.contribution.js +84 -0
  57. package/dist/vscode/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.js +172 -0
  58. package/dist/vscode/vs/workbench/contrib/interactive/browser/interactiveEditorInput.js +2 -1
  59. package/dist/vscode/vs/workbench/contrib/keybindings/browser/keybindings.contribution.js +24 -0
  60. package/dist/vscode/vs/workbench/contrib/languageDetection/browser/languageDetection.contribution.js +132 -0
  61. package/dist/vscode/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.js +360 -0
  62. package/dist/vscode/vs/workbench/contrib/languageStatus/browser/media/languageStatus.css.js +4 -0
  63. package/dist/vscode/vs/workbench/contrib/list/browser/list.contribution.js +15 -0
  64. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -1
  65. package/dist/vscode/vs/workbench/contrib/notebook/common/notebookContextKeys.js +3 -0
  66. package/dist/vscode/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +2 -1
  67. package/dist/vscode/vs/workbench/contrib/search/browser/searchView.js +2 -1
  68. package/dist/vscode/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +2 -1
  69. package/dist/vscode/vs/workbench/contrib/snippets/browser/commands/abstractSnippetsActions.js +20 -0
  70. package/dist/vscode/vs/workbench/contrib/snippets/browser/commands/configureSnippets.js +264 -0
  71. package/dist/vscode/vs/workbench/contrib/snippets/browser/commands/fileTemplateSnippets.js +87 -0
  72. package/dist/vscode/vs/workbench/contrib/snippets/browser/commands/insertSnippet.js +126 -0
  73. package/dist/vscode/vs/workbench/contrib/snippets/browser/commands/surroundWithSnippet.js +56 -0
  74. package/dist/vscode/vs/workbench/contrib/snippets/browser/snippetCodeActionProvider.js +133 -0
  75. package/dist/vscode/vs/workbench/contrib/snippets/browser/snippetPicker.js +83 -0
  76. package/dist/vscode/vs/workbench/contrib/snippets/browser/snippets.contribution.js +113 -0
  77. package/dist/vscode/vs/workbench/contrib/tasks/browser/taskQuickPick.js +2 -1
  78. package/dist/vscode/vs/workbench/contrib/tasks/browser/tasksQuickAccess.js +2 -1
  79. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +2 -1
  80. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalInstance.js +2 -1
  81. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalService.js +5 -3
  82. package/dist/vscode/vs/workbench/services/authentication/browser/authenticationService.js +1 -0
  83. package/dist/vscode/vs/workbench/services/dialogs/browser/abstractFileDialogService.js +2 -1
  84. package/dist/vscode/vs/workbench/services/dialogs/browser/simpleFileDialog.js +2 -1
  85. package/dist/vscode/vs/workbench/services/dialogs/common/dialogService.js +1 -0
  86. package/dist/vscode/vs/workbench/services/extensions/browser/extensionService.js +1 -0
  87. package/dist/vscode/vs/workbench/services/extensions/browser/extensionUrlHandler.js +1 -0
  88. package/dist/vscode/vs/workbench/services/extensions/common/abstractExtensionService.js +2 -1
  89. package/dist/vscode/vs/workbench/services/languageDetection/browser/languageDetectionSimpleWorker.js +173 -0
  90. package/dist/vscode/vs/workbench/services/languageDetection/browser/languageDetectionWorkerServiceImpl.js +257 -0
  91. package/dist/vscode/vs/workbench/services/languageDetection/common/languageDetectionWorkerService.js +2 -1
  92. package/dist/vscode/vs/workbench/services/remote/common/remoteExplorerService.js +2 -1
  93. package/dist/vscode/vs/workbench/services/textfile/browser/browserTextFileService.js +2 -1
  94. package/dist/vscode/vs/workbench/services/textfile/browser/textFileService.js +2 -1
  95. package/dist/vscode/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.js +2 -1
  96. package/dist/workers/languageDetection.worker.js +8 -0
  97. package/monaco-editor-treemending.patch +551 -551
  98. package/package.json +3 -2
@@ -0,0 +1,257 @@
1
+ import { __decorate, __param } from '../../../../../../node_modules/tslib/tslib.es6.js';
2
+ import { Disposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
3
+ import { LanguageDetectionStatsId } from '../common/languageDetectionWorkerService.js';
4
+ import { FileAccess, Schemas, nodeModulesPath, nodeModulesAsarPath } from 'monaco-editor/esm/vs/base/common/network.js';
5
+ import { IWorkbenchEnvironmentService } from '../../environment/common/environmentService.js';
6
+ import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
7
+ import { ILanguageService } from 'monaco-editor/esm/vs/editor/common/languages/language.js';
8
+ import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
9
+ import { isWeb } from 'monaco-editor/esm/vs/base/common/platform.js';
10
+ import { IModelService } from 'monaco-editor/esm/vs/editor/common/services/model.js';
11
+ import { SimpleWorkerClient } from 'monaco-editor/esm/vs/base/common/worker/simpleWorker.js';
12
+ import { ITelemetryService } from 'monaco-editor/esm/vs/platform/telemetry/common/telemetry.js';
13
+ import { EditorWorkerClient, EditorWorkerHost } from 'monaco-editor/esm/vs/editor/browser/services/editorWorkerService.js';
14
+ import { ILanguageConfigurationService } from 'monaco-editor/esm/vs/editor/common/languages/languageConfigurationRegistry.js';
15
+ import { IDiagnosticsService } from '../../../../platform/diagnostics/common/diagnostics.js';
16
+ import { IWorkspaceContextService } from 'monaco-editor/esm/vs/platform/workspace/common/workspace.js';
17
+ import { IEditorService } from '../../editor/common/editorService.js';
18
+ import { IStorageService } from 'monaco-editor/esm/vs/platform/storage/common/storage.js';
19
+ import { LRUCache } from 'monaco-editor/esm/vs/base/common/map.js';
20
+ import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
21
+ const TOP_LANG_COUNTS = 12;
22
+ const regexpModuleLocation = `${nodeModulesPath}/vscode-regexp-languagedetection`;
23
+ const regexpModuleLocationAsar = `${nodeModulesAsarPath}/vscode-regexp-languagedetection`;
24
+ const moduleLocation = `${nodeModulesPath}/@vscode/vscode-languagedetection`;
25
+ const moduleLocationAsar = `${nodeModulesAsarPath}/@vscode/vscode-languagedetection`;
26
+ let LanguageDetectionService = class LanguageDetectionService extends Disposable {
27
+ constructor(_environmentService, languageService, _configurationService, _diagnosticsService, _workspaceContextService, modelService, _editorService, telemetryService, storageService, _logService, languageConfigurationService) {
28
+ super();
29
+ this._environmentService = _environmentService;
30
+ this._configurationService = _configurationService;
31
+ this._diagnosticsService = _diagnosticsService;
32
+ this._workspaceContextService = _workspaceContextService;
33
+ this._editorService = _editorService;
34
+ this._logService = _logService;
35
+ this.hasResolvedWorkspaceLanguageIds = false;
36
+ this.workspaceLanguageIds = ( new Set());
37
+ this.sessionOpenedLanguageIds = ( new Set());
38
+ this.historicalGlobalOpenedLanguageIds = ( new LRUCache(TOP_LANG_COUNTS));
39
+ this.historicalWorkspaceOpenedLanguageIds = ( new LRUCache(TOP_LANG_COUNTS));
40
+ this.dirtyBiases = true;
41
+ this.langBiases = {};
42
+ this._languageDetectionWorkerClient = ( new LanguageDetectionWorkerClient(
43
+ modelService,
44
+ languageService,
45
+ telemetryService,
46
+ this._environmentService.isBuilt && !isWeb
47
+ ? ( ( FileAccess.asBrowserUri(`${moduleLocationAsar}/dist/lib/index.js`)).toString(true))
48
+ : ( ( FileAccess.asBrowserUri(`${moduleLocation}/dist/lib/index.js`)).toString(true)),
49
+ this._environmentService.isBuilt && !isWeb
50
+ ? ( ( FileAccess.asBrowserUri(`${moduleLocationAsar}/model/model.json`)).toString(true))
51
+ : ( ( FileAccess.asBrowserUri(`${moduleLocation}/model/model.json`)).toString(true)),
52
+ this._environmentService.isBuilt && !isWeb
53
+ ? ( ( FileAccess.asBrowserUri(`${moduleLocationAsar}/model/group1-shard1of1.bin`)).toString(true))
54
+ : ( ( FileAccess.asBrowserUri(`${moduleLocation}/model/group1-shard1of1.bin`)).toString(true)),
55
+ this._environmentService.isBuilt && !isWeb
56
+ ? ( ( FileAccess.asBrowserUri(`${regexpModuleLocationAsar}/dist/index.js`)).toString(true))
57
+ : ( ( FileAccess.asBrowserUri(`${regexpModuleLocation}/dist/index.js`)).toString(true)),
58
+ languageConfigurationService
59
+ ));
60
+ this.initEditorOpenedListeners(storageService);
61
+ }
62
+ async resolveWorkspaceLanguageIds() {
63
+ if (this.hasResolvedWorkspaceLanguageIds) {
64
+ return;
65
+ }
66
+ this.hasResolvedWorkspaceLanguageIds = true;
67
+ const fileExtensions = await this._diagnosticsService.getWorkspaceFileExtensions(this._workspaceContextService.getWorkspace());
68
+ let count = 0;
69
+ for (const ext of fileExtensions.extensions) {
70
+ const langId = this._languageDetectionWorkerClient.getLanguageId(ext);
71
+ if (langId && count < TOP_LANG_COUNTS) {
72
+ this.workspaceLanguageIds.add(langId);
73
+ count++;
74
+ if (count > TOP_LANG_COUNTS) {
75
+ break;
76
+ }
77
+ }
78
+ }
79
+ this.dirtyBiases = true;
80
+ }
81
+ isEnabledForLanguage(languageId) {
82
+ return !!languageId && this._configurationService.getValue(LanguageDetectionService.enablementSettingKey, { overrideIdentifier: languageId });
83
+ }
84
+ getLanguageBiases() {
85
+ if (!this.dirtyBiases) {
86
+ return this.langBiases;
87
+ }
88
+ const biases = {};
89
+ this.sessionOpenedLanguageIds.forEach(lang => biases[lang] = (biases[lang] ?? 0) + 7);
90
+ this.workspaceLanguageIds.forEach(lang => biases[lang] = (biases[lang] ?? 0) + 5);
91
+ [...( this.historicalWorkspaceOpenedLanguageIds.keys())].forEach(lang => biases[lang] = (biases[lang] ?? 0) + 3);
92
+ [...( this.historicalGlobalOpenedLanguageIds.keys())].forEach(lang => biases[lang] = (biases[lang] ?? 0) + 1);
93
+ this._logService.trace('Session Languages:', JSON.stringify([...this.sessionOpenedLanguageIds]));
94
+ this._logService.trace('Workspace Languages:', JSON.stringify([...this.workspaceLanguageIds]));
95
+ this._logService.trace('Historical Workspace Opened Languages:', JSON.stringify([...( this.historicalWorkspaceOpenedLanguageIds.keys())]));
96
+ this._logService.trace('Historical Globally Opened Languages:', JSON.stringify([...( this.historicalGlobalOpenedLanguageIds.keys())]));
97
+ this._logService.trace('Computed Language Detection Biases:', JSON.stringify(biases));
98
+ this.dirtyBiases = false;
99
+ this.langBiases = biases;
100
+ return biases;
101
+ }
102
+ async detectLanguage(resource, supportedLangs) {
103
+ const useHistory = this._configurationService.getValue(LanguageDetectionService.historyBasedEnablementConfig);
104
+ const preferHistory = this._configurationService.getValue(LanguageDetectionService.preferHistoryConfig);
105
+ if (useHistory) {
106
+ await this.resolveWorkspaceLanguageIds();
107
+ }
108
+ const biases = useHistory ? this.getLanguageBiases() : undefined;
109
+ return this._languageDetectionWorkerClient.detectLanguage(resource, biases, preferHistory, supportedLangs);
110
+ }
111
+ initEditorOpenedListeners(storageService) {
112
+ try {
113
+ const globalLangHistoryData = JSON.parse(storageService.get(LanguageDetectionService.globalOpenedLanguagesStorageKey, 0 , '[]'));
114
+ this.historicalGlobalOpenedLanguageIds.fromJSON(globalLangHistoryData);
115
+ }
116
+ catch (e) {
117
+ console.error(e);
118
+ }
119
+ try {
120
+ const workspaceLangHistoryData = JSON.parse(storageService.get(LanguageDetectionService.workspaceOpenedLanguagesStorageKey, 1 , '[]'));
121
+ this.historicalWorkspaceOpenedLanguageIds.fromJSON(workspaceLangHistoryData);
122
+ }
123
+ catch (e) {
124
+ console.error(e);
125
+ }
126
+ this._register(this._editorService.onDidActiveEditorChange(() => {
127
+ const activeLanguage = this._editorService.activeTextEditorLanguageId;
128
+ if (activeLanguage && this._editorService.activeEditor?.resource?.scheme !== Schemas.untitled) {
129
+ this.sessionOpenedLanguageIds.add(activeLanguage);
130
+ this.historicalGlobalOpenedLanguageIds.set(activeLanguage, true);
131
+ this.historicalWorkspaceOpenedLanguageIds.set(activeLanguage, true);
132
+ storageService.store(LanguageDetectionService.globalOpenedLanguagesStorageKey, JSON.stringify(this.historicalGlobalOpenedLanguageIds.toJSON()), 0 , 1 );
133
+ storageService.store(LanguageDetectionService.workspaceOpenedLanguagesStorageKey, JSON.stringify(this.historicalWorkspaceOpenedLanguageIds.toJSON()), 1 , 1 );
134
+ this.dirtyBiases = true;
135
+ }
136
+ }));
137
+ }
138
+ };
139
+ LanguageDetectionService.enablementSettingKey = 'workbench.editor.languageDetection';
140
+ LanguageDetectionService.historyBasedEnablementConfig = 'workbench.editor.historyBasedLanguageDetection';
141
+ LanguageDetectionService.preferHistoryConfig = 'workbench.editor.preferHistoryBasedLanguageDetection';
142
+ LanguageDetectionService.workspaceOpenedLanguagesStorageKey = 'workbench.editor.languageDetectionOpenedLanguages.workspace';
143
+ LanguageDetectionService.globalOpenedLanguagesStorageKey = 'workbench.editor.languageDetectionOpenedLanguages.global';
144
+ LanguageDetectionService = ( __decorate([
145
+ ( __param(0, IWorkbenchEnvironmentService)),
146
+ ( __param(1, ILanguageService)),
147
+ ( __param(2, IConfigurationService)),
148
+ ( __param(3, IDiagnosticsService)),
149
+ ( __param(4, IWorkspaceContextService)),
150
+ ( __param(5, IModelService)),
151
+ ( __param(6, IEditorService)),
152
+ ( __param(7, ITelemetryService)),
153
+ ( __param(8, IStorageService)),
154
+ ( __param(9, ILogService)),
155
+ ( __param(10, ILanguageConfigurationService))
156
+ ], LanguageDetectionService));
157
+ class LanguageDetectionWorkerClient extends EditorWorkerClient {
158
+ constructor(modelService, _languageService, _telemetryService, _indexJsUri, _modelJsonUri, _weightsUri, _regexpModelUri, languageConfigurationService) {
159
+ super(modelService, true, 'languageDetectionWorkerService', languageConfigurationService);
160
+ this._languageService = _languageService;
161
+ this._telemetryService = _telemetryService;
162
+ this._indexJsUri = _indexJsUri;
163
+ this._modelJsonUri = _modelJsonUri;
164
+ this._weightsUri = _weightsUri;
165
+ this._regexpModelUri = _regexpModelUri;
166
+ }
167
+ _getOrCreateLanguageDetectionWorker() {
168
+ if (this.workerPromise) {
169
+ return this.workerPromise;
170
+ }
171
+ this.workerPromise = ( new Promise((resolve, reject) => {
172
+ resolve(this._register(( new SimpleWorkerClient(
173
+ this._workerFactory,
174
+ 'vs/workbench/services/languageDetection/browser/languageDetectionSimpleWorker',
175
+ ( new EditorWorkerHost(this))
176
+ ))));
177
+ }));
178
+ return this.workerPromise;
179
+ }
180
+ _guessLanguageIdByUri(uri) {
181
+ const guess = this._languageService.guessLanguageIdByFilepathOrFirstLine(uri);
182
+ if (guess && guess !== 'unknown') {
183
+ return guess;
184
+ }
185
+ return undefined;
186
+ }
187
+ async _getProxy() {
188
+ return (await this._getOrCreateLanguageDetectionWorker()).getProxyObject();
189
+ }
190
+ async fhr(method, args) {
191
+ switch (method) {
192
+ case 'getIndexJsUri':
193
+ return this.getIndexJsUri();
194
+ case 'getModelJsonUri':
195
+ return this.getModelJsonUri();
196
+ case 'getWeightsUri':
197
+ return this.getWeightsUri();
198
+ case 'getRegexpModelUri':
199
+ return this.getRegexpModelUri();
200
+ case 'getLanguageId':
201
+ return this.getLanguageId(args[0]);
202
+ case 'sendTelemetryEvent':
203
+ return this.sendTelemetryEvent(args[0], args[1], args[2]);
204
+ default:
205
+ return super.fhr(method, args);
206
+ }
207
+ }
208
+ async getIndexJsUri() {
209
+ return this._indexJsUri;
210
+ }
211
+ getLanguageId(languageIdOrExt) {
212
+ if (!languageIdOrExt) {
213
+ return undefined;
214
+ }
215
+ if (this._languageService.isRegisteredLanguageId(languageIdOrExt)) {
216
+ return languageIdOrExt;
217
+ }
218
+ const guessed = this._guessLanguageIdByUri(URI.file(`file.${languageIdOrExt}`));
219
+ if (!guessed || guessed === 'unknown') {
220
+ return undefined;
221
+ }
222
+ return guessed;
223
+ }
224
+ async getModelJsonUri() {
225
+ return this._modelJsonUri;
226
+ }
227
+ async getWeightsUri() {
228
+ return this._weightsUri;
229
+ }
230
+ async getRegexpModelUri() {
231
+ return this._regexpModelUri;
232
+ }
233
+ async sendTelemetryEvent(languages, confidences, timeSpent) {
234
+ this._telemetryService.publicLog2(LanguageDetectionStatsId, {
235
+ languages: languages.join(','),
236
+ confidences: confidences.join(','),
237
+ timeSpent
238
+ });
239
+ }
240
+ async detectLanguage(resource, langBiases, preferHistory, supportedLangs) {
241
+ const startTime = Date.now();
242
+ const quickGuess = this._guessLanguageIdByUri(resource);
243
+ if (quickGuess) {
244
+ return quickGuess;
245
+ }
246
+ await this._withSyncedResources([resource]);
247
+ const modelId = await (await this._getProxy()).detectLanguage(( resource.toString()), langBiases, preferHistory, supportedLangs);
248
+ const languageId = this.getLanguageId(modelId);
249
+ const LanguageDetectionStatsId = 'automaticlanguagedetection.perf';
250
+ this._telemetryService.publicLog2(LanguageDetectionStatsId, {
251
+ timeSpent: Date.now() - startTime,
252
+ detection: languageId || 'unknown',
253
+ });
254
+ return languageId;
255
+ }
256
+ }
257
+ export { LanguageDetectionService, LanguageDetectionWorkerClient };
@@ -2,4 +2,5 @@ import { createDecorator } from 'monaco-editor/esm/vs/platform/instantiation/com
2
2
  const ILanguageDetectionService = ( createDecorator('ILanguageDetectionService'));
3
3
  const LanguageDetectionLanguageEventSource = 'languageDetection';
4
4
  const AutomaticLanguageDetectionLikelyWrongId = 'automaticlanguagedetection.likelywrong';
5
- export { AutomaticLanguageDetectionLikelyWrongId, ILanguageDetectionService, LanguageDetectionLanguageEventSource };
5
+ const LanguageDetectionStatsId = 'automaticlanguagedetection.stats';
6
+ export { AutomaticLanguageDetectionLikelyWrongId, ILanguageDetectionService, LanguageDetectionLanguageEventSource, LanguageDetectionStatsId };
@@ -14,10 +14,11 @@ import { hash } from 'monaco-editor/esm/vs/base/common/hash.js';
14
14
  import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
15
15
  import { CancellationTokenSource } from 'monaco-editor/esm/vs/base/common/cancellation.js';
16
16
  import { flatten } from 'monaco-editor/esm/vs/base/common/arrays.js';
17
- import { IDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
17
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
18
18
  import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
19
19
  import { deepClone } from 'monaco-editor/esm/vs/base/common/objects.js';
20
20
  import { debounce } from 'monaco-editor/esm/vs/base/common/decorators.js';
21
+ import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
21
22
  const IRemoteExplorerService = ( (createDecorator('remoteExplorerService')));
22
23
  const TUNNELS_TO_RESTORE = 'remote.tunnels.toRestore';
23
24
  const PORT_AUTO_FORWARD_SETTING = 'remote.autoForwardPorts';
@@ -5,7 +5,7 @@ import { ICodeEditorService } from 'monaco-editor/esm/vs/editor/browser/services
5
5
  import { IModelService } from 'monaco-editor/esm/vs/editor/common/services/model.js';
6
6
  import { ILanguageService } from 'monaco-editor/esm/vs/editor/common/languages/language.js';
7
7
  import { ITextResourceConfigurationService } from 'monaco-editor/esm/vs/editor/common/services/textResourceConfiguration.js';
8
- import { IDialogService, IFileDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
8
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
9
9
  import { IFileService } from 'monaco-editor/esm/vs/platform/files/common/files.js';
10
10
  import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
11
11
  import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
@@ -17,6 +17,7 @@ import { IUntitledTextEditorService } from '../../untitled/common/untitledTextEd
17
17
  import { IUriIdentityService } from 'monaco-editor/esm/vs/platform/uriIdentity/common/uriIdentity.js';
18
18
  import { IWorkingCopyFileService } from '../../workingCopy/common/workingCopyFileService.js';
19
19
  import { IDecorationsService } from '../../decorations/common/decorations.js';
20
+ import { IDialogService, IFileDialogService } from '../../../../platform/dialogs/common/dialogs.js';
20
21
  let BrowserTextFileService = class BrowserTextFileService extends AbstractTextFileService {
21
22
  constructor(fileService, untitledTextEditorService, lifecycleService, instantiationService, modelService, environmentService, dialogService, fileDialogService, textResourceConfigurationService, filesConfigurationService, codeEditorService, pathService, workingCopyFileService, uriIdentityService, languageService, elevatedFileService, logService, decorationsService) {
22
23
  super(fileService, untitledTextEditorService, lifecycleService, instantiationService, modelService, environmentService, dialogService, fileDialogService, textResourceConfigurationService, filesConfigurationService, codeEditorService, pathService, workingCopyFileService, uriIdentityService, languageService, logService, elevatedFileService, decorationsService);
@@ -15,7 +15,7 @@ import { Schemas } from 'monaco-editor/esm/vs/base/common/network.js';
15
15
  import { createTextBufferFactoryFromStream, createTextBufferFactoryFromSnapshot } from 'monaco-editor/esm/vs/editor/common/model/textModel.js';
16
16
  import { IModelService } from 'monaco-editor/esm/vs/editor/common/services/model.js';
17
17
  import { isEqual, toLocalResource, basename, dirname, joinPath, extname as extname$1 } from 'monaco-editor/esm/vs/base/common/resources.js';
18
- import { IDialogService, IFileDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
18
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
19
19
  import { bufferToStream } from 'monaco-editor/esm/vs/base/common/buffer.js';
20
20
  import { ITextResourceConfigurationService } from 'monaco-editor/esm/vs/editor/common/services/textResourceConfiguration.js';
21
21
  import { PLAINTEXT_LANGUAGE_ID } from 'monaco-editor/esm/vs/editor/common/languages/modesRegistry.js';
@@ -38,6 +38,7 @@ import { Codicon } from 'monaco-editor/esm/vs/base/common/codicons.js';
38
38
  import { listErrorForeground } from 'monaco-editor/esm/vs/platform/theme/common/colorRegistry.js';
39
39
  import { withNullAsUndefined } from 'monaco-editor/esm/vs/base/common/types.js';
40
40
  import { firstOrDefault } from 'monaco-editor/esm/vs/base/common/arrays.js';
41
+ import { IDialogService, IFileDialogService } from '../../../../platform/dialogs/common/dialogs.js';
41
42
  let AbstractTextFileService = class AbstractTextFileService extends Disposable {
42
43
  constructor(fileService, untitledTextEditorService, lifecycleService, instantiationService, modelService, environmentService, dialogService, fileDialogService, textResourceConfigurationService, filesConfigurationService, codeEditorService, pathService, workingCopyFileService, uriIdentityService, languageService, logService, elevatedFileService, decorationsService) {
43
44
  super();
@@ -11,7 +11,7 @@ import { joinPath, basename, isEqualAuthority, isEqual, removeTrailingPathSepara
11
11
  import { Severity, INotificationService } from 'monaco-editor/esm/vs/platform/notification/common/notification.js';
12
12
  import { IFileService } from 'monaco-editor/esm/vs/platform/files/common/files.js';
13
13
  import { IWorkbenchEnvironmentService } from '../../environment/common/environmentService.js';
14
- import { IFileDialogService, IDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
14
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
15
15
  import { mnemonicButtonLabel } from 'monaco-editor/esm/vs/base/common/labels.js';
16
16
  import { ITextFileService } from '../../textfile/common/textfiles.js';
17
17
  import { IHostService } from '../../host/browser/host.js';
@@ -21,6 +21,7 @@ import { IWorkspaceTrustManagementService } from 'monaco-editor/esm/vs/platform/
21
21
  import { IWorkbenchConfigurationService } from '../../configuration/common/configuration.js';
22
22
  import { IUserDataProfilesService } from 'monaco-editor/esm/vs/platform/userDataProfile/common/userDataProfile.js';
23
23
  import { IUserDataProfileService } from '../../userDataProfile/common/userDataProfile.js';
24
+ import { IFileDialogService, IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
24
25
  let AbstractWorkspaceEditingService = class AbstractWorkspaceEditingService {
25
26
  constructor(jsonEditingService, contextService, configurationService, notificationService, commandService, fileService, textFileService, workspacesService, environmentService, fileDialogService, dialogService, hostService, uriIdentityService, workspaceTrustManagementService, userDataProfilesService, userDataProfileService) {
26
27
  this.jsonEditingService = jsonEditingService;
@@ -0,0 +1,8 @@
1
+ import { create } from '../vscode/vs/workbench/services/languageDetection/browser/languageDetectionSimpleWorker.js';
2
+ import { SimpleWorkerServer } from 'monaco-editor/esm/vs/base/common/worker/simpleWorker.js';
3
+ const simpleWorker = new SimpleWorkerServer((msg) => {
4
+ globalThis.postMessage(msg);
5
+ }, create);
6
+ globalThis.onmessage = (e) => {
7
+ simpleWorker.onmessage(e.data);
8
+ };