@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.
- package/README.md +2 -1
- package/dist/api.js +6 -6
- package/dist/default-extensions/npm/npmBrowserMain.js.map +1 -1
- package/dist/default-extensions/typescript-language-features/tsserver.web.js.map +1 -1
- package/dist/missing-services.js +4 -1
- package/dist/monaco.js +4 -0
- package/dist/override/vs/platform/dialogs/common/dialogs.js +7 -0
- package/dist/service-override/dialogs.js +2 -1
- package/dist/service-override/extensions.js +2 -1
- package/dist/service-override/keybindings.js +1 -0
- package/dist/service-override/languageDetectionWorker.d.ts +5 -0
- package/dist/service-override/languageDetectionWorker.js +15 -0
- package/dist/service-override/layout.js +12 -1
- package/dist/service-override/snippets.js +1 -0
- package/dist/service-override/views.d.ts +24 -2
- package/dist/service-override/views.js +119 -12
- package/dist/services.js +2 -1
- package/dist/vscode/vs/platform/audioCues/browser/media/all.mp3.js +17 -17
- package/dist/vscode/vs/platform/diagnostics/common/diagnostics.js +27 -0
- package/dist/vscode/vs/platform/dialogs/common/dialogs.js +126 -0
- package/dist/vscode/vs/workbench/api/browser/mainThreadAuthentication.js +2 -1
- package/dist/vscode/vs/workbench/api/browser/mainThreadCustomEditors.js +2 -1
- package/dist/vscode/vs/workbench/api/browser/mainThreadDialogs.js +2 -1
- package/dist/vscode/vs/workbench/api/browser/mainThreadFileSystemEventService.js +2 -1
- package/dist/vscode/vs/workbench/api/browser/mainThreadMessageService.js +2 -1
- package/dist/vscode/vs/workbench/browser/actions/layoutActions.js +1 -0
- package/dist/vscode/vs/workbench/browser/actions/windowActions.js +2 -1
- package/dist/vscode/vs/workbench/browser/actions/workspaceActions.js +2 -1
- package/dist/vscode/vs/workbench/browser/actions/workspaceCommands.js +1 -0
- package/dist/vscode/vs/workbench/browser/parts/dialogs/dialog.web.contribution.js +2 -1
- package/dist/vscode/vs/workbench/browser/parts/dialogs/dialogHandler.js +2 -1
- package/dist/vscode/vs/workbench/browser/parts/editor/editorActions.js +2 -1
- package/dist/vscode/vs/workbench/browser/parts/editor/editorGroupView.js +2 -1
- package/dist/vscode/vs/workbench/browser/parts/editor/editorPanes.js +2 -1
- package/dist/vscode/vs/workbench/browser/parts/editor/editorPlaceholder.js +2 -1
- package/dist/vscode/vs/workbench/common/editor/editorInput.d.ts +1 -1
- package/dist/vscode/vs/workbench/common/theme.js +5 -5
- package/dist/vscode/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +2 -1
- package/dist/vscode/vs/workbench/contrib/codeActions/browser/codeActions.contribution.js +25 -0
- package/dist/vscode/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +138 -0
- package/dist/vscode/vs/workbench/contrib/codeActions/browser/documentationContribution.js +59 -0
- package/dist/vscode/vs/workbench/contrib/codeActions/common/codeActionsExtensionPoint.js +61 -0
- package/dist/vscode/vs/workbench/contrib/codeActions/common/documentationExtensionPoint.js +58 -0
- package/dist/vscode/vs/workbench/contrib/customEditor/browser/customEditorInput.js +2 -1
- package/dist/vscode/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +2 -1
- package/dist/vscode/vs/workbench/contrib/debug/browser/debugAdapterManager.js +2 -1
- package/dist/vscode/vs/workbench/contrib/debug/browser/debugService.js +2 -1
- package/dist/vscode/vs/workbench/contrib/debug/browser/debugTaskRunner.js +2 -1
- package/dist/vscode/vs/workbench/contrib/debug/browser/rawDebugSession.js +2 -1
- package/dist/vscode/vs/workbench/contrib/debug/common/debugLifecycle.js +2 -1
- package/dist/vscode/vs/workbench/contrib/extensions/browser/extensionsActions.js +2 -1
- package/dist/vscode/vs/workbench/contrib/files/browser/fileActions.js +2 -1
- package/dist/vscode/vs/workbench/contrib/files/browser/fileCommands.js +2 -1
- package/dist/vscode/vs/workbench/contrib/files/browser/fileImportExport.js +2 -1
- package/dist/vscode/vs/workbench/contrib/files/browser/views/explorerViewer.js +2 -1
- package/dist/vscode/vs/workbench/contrib/folding/browser/folding.contribution.js +84 -0
- package/dist/vscode/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.js +172 -0
- package/dist/vscode/vs/workbench/contrib/interactive/browser/interactiveEditorInput.js +2 -1
- package/dist/vscode/vs/workbench/contrib/keybindings/browser/keybindings.contribution.js +24 -0
- package/dist/vscode/vs/workbench/contrib/languageDetection/browser/languageDetection.contribution.js +132 -0
- package/dist/vscode/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.js +360 -0
- package/dist/vscode/vs/workbench/contrib/languageStatus/browser/media/languageStatus.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/list/browser/list.contribution.js +15 -0
- package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -1
- package/dist/vscode/vs/workbench/contrib/notebook/common/notebookContextKeys.js +3 -0
- package/dist/vscode/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +2 -1
- package/dist/vscode/vs/workbench/contrib/search/browser/searchView.js +2 -1
- package/dist/vscode/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +2 -1
- package/dist/vscode/vs/workbench/contrib/snippets/browser/commands/abstractSnippetsActions.js +20 -0
- package/dist/vscode/vs/workbench/contrib/snippets/browser/commands/configureSnippets.js +264 -0
- package/dist/vscode/vs/workbench/contrib/snippets/browser/commands/fileTemplateSnippets.js +87 -0
- package/dist/vscode/vs/workbench/contrib/snippets/browser/commands/insertSnippet.js +126 -0
- package/dist/vscode/vs/workbench/contrib/snippets/browser/commands/surroundWithSnippet.js +56 -0
- package/dist/vscode/vs/workbench/contrib/snippets/browser/snippetCodeActionProvider.js +133 -0
- package/dist/vscode/vs/workbench/contrib/snippets/browser/snippetPicker.js +83 -0
- package/dist/vscode/vs/workbench/contrib/snippets/browser/snippets.contribution.js +113 -0
- package/dist/vscode/vs/workbench/contrib/tasks/browser/taskQuickPick.js +2 -1
- package/dist/vscode/vs/workbench/contrib/tasks/browser/tasksQuickAccess.js +2 -1
- package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +2 -1
- package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalInstance.js +2 -1
- package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalService.js +5 -3
- package/dist/vscode/vs/workbench/services/authentication/browser/authenticationService.js +1 -0
- package/dist/vscode/vs/workbench/services/dialogs/browser/abstractFileDialogService.js +2 -1
- package/dist/vscode/vs/workbench/services/dialogs/browser/simpleFileDialog.js +2 -1
- package/dist/vscode/vs/workbench/services/dialogs/common/dialogService.js +1 -0
- package/dist/vscode/vs/workbench/services/extensions/browser/extensionService.js +1 -0
- package/dist/vscode/vs/workbench/services/extensions/browser/extensionUrlHandler.js +1 -0
- package/dist/vscode/vs/workbench/services/extensions/common/abstractExtensionService.js +2 -1
- package/dist/vscode/vs/workbench/services/languageDetection/browser/languageDetectionSimpleWorker.js +173 -0
- package/dist/vscode/vs/workbench/services/languageDetection/browser/languageDetectionWorkerServiceImpl.js +257 -0
- package/dist/vscode/vs/workbench/services/languageDetection/common/languageDetectionWorkerService.js +2 -1
- package/dist/vscode/vs/workbench/services/remote/common/remoteExplorerService.js +2 -1
- package/dist/vscode/vs/workbench/services/textfile/browser/browserTextFileService.js +2 -1
- package/dist/vscode/vs/workbench/services/textfile/browser/textFileService.js +2 -1
- package/dist/vscode/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.js +2 -1
- package/dist/workers/languageDetection.worker.js +8 -0
- package/monaco-editor-treemending.patch +551 -551
- 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 };
|
package/dist/vscode/vs/workbench/services/languageDetection/common/languageDetectionWorkerService.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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
|
|
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
|
|
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();
|
package/dist/vscode/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.js
CHANGED
|
@@ -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
|
|
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
|
+
};
|