@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,83 @@
1
+ import * as nls from 'monaco-editor/esm/vs/nls.js';
2
+ import { ISnippetsService } from './snippets.js';
3
+ import { IQuickInputService } from 'monaco-editor/esm/vs/platform/quickinput/common/quickInput.js';
4
+ import { Codicon } from 'monaco-editor/esm/vs/base/common/codicons.js';
5
+ import { ThemeIcon } from 'monaco-editor/esm/vs/base/common/themables.js';
6
+ import { Event } from 'monaco-editor/esm/vs/base/common/event.js';
7
+ async function pickSnippet(accessor, languageIdOrSnippets) {
8
+ const snippetService = accessor.get(ISnippetsService);
9
+ const quickInputService = accessor.get(IQuickInputService);
10
+ let snippets;
11
+ if (Array.isArray(languageIdOrSnippets)) {
12
+ snippets = languageIdOrSnippets;
13
+ }
14
+ else {
15
+ snippets = (await snippetService.getSnippets(languageIdOrSnippets, { includeDisabledSnippets: true, includeNoPrefixSnippets: true }));
16
+ }
17
+ snippets.sort((a, b) => a.snippetSource - b.snippetSource);
18
+ const makeSnippetPicks = () => {
19
+ const result = [];
20
+ let prevSnippet;
21
+ for (const snippet of snippets) {
22
+ const pick = {
23
+ label: snippet.prefix || snippet.name,
24
+ detail: snippet.description || snippet.body,
25
+ snippet
26
+ };
27
+ if (!prevSnippet || prevSnippet.snippetSource !== snippet.snippetSource || prevSnippet.source !== snippet.source) {
28
+ let label = '';
29
+ switch (snippet.snippetSource) {
30
+ case 1 :
31
+ label = ( nls.localize('sep.userSnippet', "User Snippets"));
32
+ break;
33
+ case 3 :
34
+ label = snippet.source;
35
+ break;
36
+ case 2 :
37
+ label = ( nls.localize('sep.workspaceSnippet', "Workspace Snippets"));
38
+ break;
39
+ }
40
+ result.push({ type: 'separator', label });
41
+ }
42
+ if (snippet.snippetSource === 3 ) {
43
+ const isEnabled = snippetService.isEnabled(snippet);
44
+ if (isEnabled) {
45
+ pick.buttons = [{
46
+ iconClass: ThemeIcon.asClassName(Codicon.eyeClosed),
47
+ tooltip: ( nls.localize('disableSnippet', 'Hide from IntelliSense'))
48
+ }];
49
+ }
50
+ else {
51
+ pick.description = ( nls.localize('isDisabled', "(hidden from IntelliSense)"));
52
+ pick.buttons = [{
53
+ iconClass: ThemeIcon.asClassName(Codicon.eye),
54
+ tooltip: ( nls.localize('enable.snippet', 'Show in IntelliSense'))
55
+ }];
56
+ }
57
+ }
58
+ result.push(pick);
59
+ prevSnippet = snippet;
60
+ }
61
+ return result;
62
+ };
63
+ const picker = quickInputService.createQuickPick();
64
+ picker.placeholder = ( nls.localize('pick.placeholder', "Select a snippet"));
65
+ picker.matchOnDetail = true;
66
+ picker.ignoreFocusOut = false;
67
+ picker.keepScrollPosition = true;
68
+ picker.onDidTriggerItemButton(ctx => {
69
+ const isEnabled = snippetService.isEnabled(ctx.item.snippet);
70
+ snippetService.updateEnablement(ctx.item.snippet, !isEnabled);
71
+ picker.items = makeSnippetPicks();
72
+ });
73
+ picker.items = makeSnippetPicks();
74
+ if (!picker.items.length) {
75
+ picker.validationMessage = ( nls.localize('pick.noSnippetAvailable', "No snippet available"));
76
+ }
77
+ picker.show();
78
+ await Promise.race([Event.toPromise(picker.onDidAccept), Event.toPromise(picker.onDidHide)]);
79
+ const result = picker.selectedItems[0]?.snippet;
80
+ picker.dispose();
81
+ return result;
82
+ }
83
+ export { pickSnippet };
@@ -0,0 +1,113 @@
1
+ import * as nls from 'monaco-editor/esm/vs/nls.js';
2
+ import { registerAction2 } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
3
+ import { CommandsRegistry } from 'monaco-editor/esm/vs/platform/commands/common/commands.js';
4
+ import * as JSONContributionRegistry from 'monaco-editor/esm/vs/platform/jsonschemas/common/jsonContributionRegistry.js';
5
+ import { Registry } from 'monaco-editor/esm/vs/platform/registry/common/platform.js';
6
+ import { Extensions } from '../../../common/contributions.js';
7
+ import { ConfigureSnippets } from './commands/configureSnippets.js';
8
+ import { ApplyFileSnippetAction } from './commands/fileTemplateSnippets.js';
9
+ import { InsertSnippetAction } from './commands/insertSnippet.js';
10
+ import { SurroundWithSnippetEditorAction } from './commands/surroundWithSnippet.js';
11
+ import { SnippetCodeActions } from './snippetCodeActionProvider.js';
12
+ import { Extensions as Extensions$1 } from 'monaco-editor/esm/vs/platform/configuration/common/configurationRegistry.js';
13
+ import { editorConfigurationBaseNode } from 'monaco-editor/esm/vs/editor/common/config/editorConfigurationSchema.js';
14
+ registerAction2(InsertSnippetAction);
15
+ CommandsRegistry.registerCommandAlias('editor.action.showSnippets', 'editor.action.insertSnippet');
16
+ registerAction2(SurroundWithSnippetEditorAction);
17
+ registerAction2(ConfigureSnippets);
18
+ registerAction2(ApplyFileSnippetAction);
19
+ ( Registry.as(Extensions.Workbench))
20
+ .registerWorkbenchContribution(SnippetCodeActions, 3 );
21
+ ( Registry
22
+ .as(Extensions$1.Configuration))
23
+ .registerConfiguration({
24
+ ...editorConfigurationBaseNode,
25
+ 'properties': {
26
+ 'editor.snippets.codeActions.enabled': {
27
+ 'description': ( nls.localize(
28
+ 'editor.snippets.codeActions.enabled',
29
+ 'Controls if surround-with-snippets or file template snippets show as Code Actions.'
30
+ )),
31
+ 'type': 'boolean',
32
+ 'default': true
33
+ }
34
+ }
35
+ });
36
+ const languageScopeSchemaId = 'vscode://schemas/snippets';
37
+ const snippetSchemaProperties = {
38
+ prefix: {
39
+ description: ( nls.localize(
40
+ 'snippetSchema.json.prefix',
41
+ 'The prefix to use when selecting the snippet in intellisense'
42
+ )),
43
+ type: ['string', 'array']
44
+ },
45
+ isFileTemplate: {
46
+ description: ( nls.localize(
47
+ 'snippetSchema.json.isFileTemplate',
48
+ 'The snippet is meant to populate or replace a whole file'
49
+ )),
50
+ type: 'boolean'
51
+ },
52
+ body: {
53
+ markdownDescription: ( nls.localize(
54
+ 'snippetSchema.json.body',
55
+ 'The snippet content. Use `$1`, `${1:defaultText}` to define cursor positions, use `$0` for the final cursor position. Insert variable values with `${varName}` and `${varName:defaultText}`, e.g. `This is file: $TM_FILENAME`.'
56
+ )),
57
+ type: ['string', 'array'],
58
+ items: {
59
+ type: 'string'
60
+ }
61
+ },
62
+ description: {
63
+ description: ( nls.localize('snippetSchema.json.description', 'The snippet description.')),
64
+ type: ['string', 'array']
65
+ }
66
+ };
67
+ const languageScopeSchema = {
68
+ id: languageScopeSchemaId,
69
+ allowComments: true,
70
+ allowTrailingCommas: true,
71
+ defaultSnippets: [{
72
+ label: ( nls.localize('snippetSchema.json.default', "Empty snippet")),
73
+ body: { '${1:snippetName}': { 'prefix': '${2:prefix}', 'body': '${3:snippet}', 'description': '${4:description}' } }
74
+ }],
75
+ type: 'object',
76
+ description: ( nls.localize('snippetSchema.json', 'User snippet configuration')),
77
+ additionalProperties: {
78
+ type: 'object',
79
+ required: ['body'],
80
+ properties: snippetSchemaProperties,
81
+ additionalProperties: false
82
+ }
83
+ };
84
+ const globalSchemaId = 'vscode://schemas/global-snippets';
85
+ const globalSchema = {
86
+ id: globalSchemaId,
87
+ allowComments: true,
88
+ allowTrailingCommas: true,
89
+ defaultSnippets: [{
90
+ label: ( nls.localize('snippetSchema.json.default', "Empty snippet")),
91
+ body: { '${1:snippetName}': { 'scope': '${2:scope}', 'prefix': '${3:prefix}', 'body': '${4:snippet}', 'description': '${5:description}' } }
92
+ }],
93
+ type: 'object',
94
+ description: ( nls.localize('snippetSchema.json', 'User snippet configuration')),
95
+ additionalProperties: {
96
+ type: 'object',
97
+ required: ['body'],
98
+ properties: {
99
+ ...snippetSchemaProperties,
100
+ scope: {
101
+ description: ( nls.localize(
102
+ 'snippetSchema.json.scope',
103
+ "A list of language names to which this snippet applies, e.g. 'typescript,javascript'."
104
+ )),
105
+ type: 'string'
106
+ }
107
+ },
108
+ additionalProperties: false
109
+ }
110
+ };
111
+ const reg = ( Registry.as(JSONContributionRegistry.Extensions.JSONContribution));
112
+ reg.registerSchema(languageScopeSchemaId, languageScopeSchema);
113
+ reg.registerSchema(globalSchemaId, globalSchema);
@@ -13,10 +13,11 @@ import { Codicon } from 'monaco-editor/esm/vs/base/common/codicons.js';
13
13
  import { IThemeService } from 'monaco-editor/esm/vs/platform/theme/common/themeService.js';
14
14
  import { ThemeIcon } from 'monaco-editor/esm/vs/base/common/themables.js';
15
15
  import { registerIcon } from 'monaco-editor/esm/vs/platform/theme/common/iconRegistry.js';
16
- import { IDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
16
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
17
17
  import { getColorStyleElement, getColorClass } from '../../terminal/browser/terminalIcon.js';
18
18
  import { showWithPinnedItems } from '../../../../platform/quickinput/browser/quickPickPin.js';
19
19
  import { IStorageService } from 'monaco-editor/esm/vs/platform/storage/common/storage.js';
20
+ import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
20
21
  const QUICKOPEN_DETAIL_CONFIG = 'task.quickOpen.detail';
21
22
  const QUICKOPEN_SKIP_CONFIG = 'task.quickOpen.skip';
22
23
  const SHOW_ALL = ( nls.localize('taskQuickPick.showAll', "Show All Tasks..."));
@@ -10,9 +10,10 @@ import { TaskQuickPick } from './taskQuickPick.js';
10
10
  import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
11
11
  import { isString } from 'monaco-editor/esm/vs/base/common/types.js';
12
12
  import { INotificationService } from 'monaco-editor/esm/vs/platform/notification/common/notification.js';
13
- import { IDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
13
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
14
14
  import { IThemeService } from 'monaco-editor/esm/vs/platform/theme/common/themeService.js';
15
15
  import { IStorageService } from 'monaco-editor/esm/vs/platform/storage/common/storage.js';
16
+ import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
16
17
  let TasksQuickAccessProvider = class TasksQuickAccessProvider extends PickerQuickAccessProvider {
17
18
  constructor(extensionService, _taskService, _configurationService, _quickInputService, _notificationService, _dialogService, _themeService, _storageService) {
18
19
  super(TasksQuickAccessProvider.PREFIX, {
@@ -13,8 +13,9 @@ import { ILifecycleService } from '../../../services/lifecycle/common/lifecycle.
13
13
  import { IContextKeyService } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
14
14
  import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
15
15
  import { TerminalContextKeys } from '../common/terminalContextKey.js';
16
- import { IDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
16
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
17
17
  import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
18
+ import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
18
19
  let TerminalEditorInput = class TerminalEditorInput extends EditorInput {
19
20
  setGroup(group) {
20
21
  this._group = group;
@@ -25,7 +25,7 @@ import { IClipboardService } from 'monaco-editor/esm/vs/platform/clipboard/commo
25
25
  import { ICommandService } from 'monaco-editor/esm/vs/platform/commands/common/commands.js';
26
26
  import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
27
27
  import { IContextKeyService } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
28
- import { IDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
28
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
29
29
  import { containsDragType, CodeDataTransfers } from 'monaco-editor/esm/vs/platform/dnd/browser/dnd.js';
30
30
  import { IFileService } from 'monaco-editor/esm/vs/platform/files/common/files.js';
31
31
  import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
@@ -70,6 +70,7 @@ import { IHistoryService } from '../../../services/history/common/history.js';
70
70
  import { IWorkbenchLayoutService } from '../../../services/layout/browser/layoutService.js';
71
71
  import { IPathService } from '../../../services/path/common/pathService.js';
72
72
  import { IPreferencesService } from '../../../services/preferences/common/preferences.js';
73
+ import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
73
74
  let xtermConstructor;
74
75
  const shellIntegrationSupportedShellTypes = [
75
76
  "bash" ,
@@ -11,10 +11,10 @@ import * as nls from 'monaco-editor/esm/vs/nls.js';
11
11
  import { ICommandService } from 'monaco-editor/esm/vs/platform/commands/common/commands.js';
12
12
  import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
13
13
  import { IContextKeyService } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
14
- import { IDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
14
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
15
15
  import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
16
16
  import { INotificationService } from 'monaco-editor/esm/vs/platform/notification/common/notification.js';
17
- import { TerminalLocation, TerminalExitReason, TitleEventSource, ITerminalLogService } from '../../../../platform/terminal/common/terminal.js';
17
+ import { TerminalLocation, TerminalExtensions, TerminalExitReason, TitleEventSource, ITerminalLogService } from '../../../../platform/terminal/common/terminal.js';
18
18
  import { formatMessageForTerminal } from '../../../../platform/terminal/common/terminalStrings.js';
19
19
  import { iconForeground } from 'monaco-editor/esm/vs/platform/theme/common/colorRegistry.js';
20
20
  import { getIconRegistry } from 'monaco-editor/esm/vs/platform/theme/common/iconRegistry.js';
@@ -46,6 +46,8 @@ import { IKeybindingService } from 'monaco-editor/esm/vs/platform/keybinding/com
46
46
  import { TerminalCapabilityStore } from '../../../../platform/terminal/common/capabilities/terminalCapabilityStore.js';
47
47
  import { ITimerService } from '../../../services/timer/browser/timerService.js';
48
48
  import { mark } from 'monaco-editor/esm/vs/base/common/performance.js';
49
+ import { Registry } from 'monaco-editor/esm/vs/platform/registry/common/platform.js';
50
+ import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
49
51
  let TerminalService = class TerminalService {
50
52
  get isProcessSupportRegistered() { return !!this._processSupportContextKey.get(); }
51
53
  get connectionState() { return this._connectionState; }
@@ -163,7 +165,7 @@ let TerminalService = class TerminalService {
163
165
  this._handleInstanceContextKeys();
164
166
  this._terminalShellTypeContextKey = TerminalContextKeys.shellType.bindTo(this._contextKeyService);
165
167
  this._processSupportContextKey = TerminalContextKeys.processSupported.bindTo(this._contextKeyService);
166
- this._processSupportContextKey.set(!isWeb || this._remoteAgentService.getConnection() !== null);
168
+ this._processSupportContextKey.set(!isWeb || this._remoteAgentService.getConnection() !== null || ( Registry.as(TerminalExtensions.Backend)).getTerminalBackend() !== undefined);
167
169
  this._terminalHasBeenCreated = TerminalContextKeys.terminalHasBeenCreated.bindTo(this._contextKeyService);
168
170
  this._terminalCountContextKey = TerminalContextKeys.count.bindTo(this._contextKeyService);
169
171
  this._terminalEditorActive = TerminalContextKeys.terminalEditorActive.bindTo(this._contextKeyService);
@@ -3,6 +3,7 @@ import * as nls from 'monaco-editor/esm/vs/nls.js';
3
3
  import { MenuRegistry, MenuId } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
4
4
  import { CommandsRegistry } from 'monaco-editor/esm/vs/platform/commands/common/commands.js';
5
5
  import { ContextKeyExpr } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
6
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
6
7
  import { IBrowserWorkbenchEnvironmentService } from '../../environment/browser/environmentService.js';
7
8
  function getAuthenticationProviderActivationEvent(id) { return `onAuthenticationRequest:${id}`; }
8
9
  function readAccountUsages(storageService, providerId, accountName) {
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __param } from '../../../../../../node_modules/tslib/tslib.es6.js';
2
2
  import * as nls from 'monaco-editor/esm/vs/nls.js';
3
3
  import { isWorkspaceToOpen, isFileToOpen } from '../../../../platform/window/common/window.js';
4
- import { getFileNamesMessage, IDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
4
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
5
5
  import { isSavedWorkspace, isTemporaryWorkspace, IWorkspaceContextService, WORKSPACE_EXTENSION } from 'monaco-editor/esm/vs/platform/workspace/common/workspace.js';
6
6
  import { IHistoryService } from '../../history/common/history.js';
7
7
  import { IWorkbenchEnvironmentService } from '../../environment/common/environmentService.js';
@@ -27,6 +27,7 @@ import { ICodeEditorService } from 'monaco-editor/esm/vs/editor/browser/services
27
27
  import { IEditorService } from '../../editor/common/editorService.js';
28
28
  import { EditorOpenSource } from 'monaco-editor/esm/vs/platform/editor/common/editor.js';
29
29
  import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
30
+ import { getFileNamesMessage, IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
30
31
  let AbstractFileDialogService = class AbstractFileDialogService {
31
32
  constructor(hostService, contextService, historyService, environmentService, instantiationService, configurationService, fileService, openerService, dialogService, languageService, workspacesService, labelService, pathService, commandService, editorService, codeEditorService, logService) {
32
33
  this.hostService = hostService;
@@ -6,7 +6,7 @@ import { FileKind, IFileService } from 'monaco-editor/esm/vs/platform/files/comm
6
6
  import { IQuickInputService } from 'monaco-editor/esm/vs/platform/quickinput/common/quickInput.js';
7
7
  import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
8
8
  import { isWindows } from 'monaco-editor/esm/vs/base/common/platform.js';
9
- import { IFileDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
9
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
10
10
  import { ILabelService } from 'monaco-editor/esm/vs/platform/label/common/label.js';
11
11
  import { IWorkspaceContextService } from 'monaco-editor/esm/vs/platform/workspace/common/workspace.js';
12
12
  import { INotificationService } from 'monaco-editor/esm/vs/platform/notification/common/notification.js';
@@ -27,6 +27,7 @@ import { IEditorService } from '../../editor/common/editorService.js';
27
27
  import { normalizeDriveLetter } from 'monaco-editor/esm/vs/base/common/labels.js';
28
28
  import { IPathService } from '../../path/common/pathService.js';
29
29
  import { IAccessibilityService } from 'monaco-editor/esm/vs/platform/accessibility/common/accessibility.js';
30
+ import { IFileDialogService } from '../../../../platform/dialogs/common/dialogs.js';
30
31
  var OpenLocalFileCommand;
31
32
  ( (function(OpenLocalFileCommand) {
32
33
  OpenLocalFileCommand.ID = 'workbench.action.files.openLocalFile';
@@ -1,6 +1,7 @@
1
1
  import { __decorate, __param } from '../../../../../../node_modules/tslib/tslib.es6.js';
2
2
  import Severity from 'monaco-editor/esm/vs/base/common/severity.js';
3
3
  import { Disposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
4
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
4
5
  import { DialogsModel } from '../../../common/dialogs.js';
5
6
  import { IWorkbenchEnvironmentService } from '../../environment/common/environmentService.js';
6
7
  import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
@@ -1,4 +1,5 @@
1
1
  import { __decorate, __param } from '../../../../../../node_modules/tslib/tslib.es6.js';
2
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
2
3
  import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
3
4
  import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
4
5
  import { IRemoteAuthorityResolverService } from '../../../../platform/remote/common/remoteAuthorityResolver.js';
@@ -1,5 +1,6 @@
1
1
  import { __decorate, __param } from '../../../../../../node_modules/tslib/tslib.es6.js';
2
2
  import { localize } from 'monaco-editor/esm/vs/nls.js';
3
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
3
4
  import { createDecorator } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
4
5
  import { IStorageService } from 'monaco-editor/esm/vs/platform/storage/common/storage.js';
5
6
  import { IURLService } from '../../../../platform/url/common/url.js';
@@ -9,7 +9,7 @@ import { isEqualOrParent } from 'monaco-editor/esm/vs/base/common/resources.js';
9
9
  import { StopWatch } from 'monaco-editor/esm/vs/base/common/stopwatch.js';
10
10
  import * as nls from 'monaco-editor/esm/vs/nls.js';
11
11
  import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
12
- import { IDialogService } from 'monaco-editor/esm/vs/platform/dialogs/common/dialogs.js';
12
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
13
13
  import { ImplicitActivationEvents } from '../../../../platform/extensionManagement/common/implicitActivationEvents.js';
14
14
  import { ExtensionIdentifierMap, ExtensionIdentifier } from 'monaco-editor/esm/vs/platform/extensions/common/extensions.js';
15
15
  import { IFileService } from 'monaco-editor/esm/vs/platform/files/common/files.js';
@@ -36,6 +36,7 @@ import { ExtensionsRegistry, ExtensionMessageCollector } from './extensionsRegis
36
36
  import { checkActivateWorkspaceContainsExtension, checkGlobFileExists } from './workspaceContains.js';
37
37
  import { ILifecycleService } from '../../lifecycle/common/lifecycle.js';
38
38
  import { IRemoteAgentService } from '../../remote/common/remoteAgentService.js';
39
+ import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
39
40
  const hasOwnProperty = Object.hasOwnProperty;
40
41
  const NO_OP_VOID_PROMISE = Promise.resolve(undefined);
41
42
  let AbstractExtensionService = class AbstractExtensionService extends Disposable {
@@ -0,0 +1,173 @@
1
+ import { ModelOperations } from '@vscode/vscode-languagedetection';
2
+ import { StopWatch } from 'monaco-editor/esm/vs/base/common/stopwatch.js';
3
+ import { EditorSimpleWorker } from 'monaco-editor/esm/vs/editor/common/services/editorSimpleWorker.js';
4
+ function create(host) {
5
+ return ( new LanguageDetectionSimpleWorker(host, null));
6
+ }
7
+ class LanguageDetectionSimpleWorker extends EditorSimpleWorker {
8
+ constructor() {
9
+ super(...arguments);
10
+ this._loadFailed = false;
11
+ this.modelIdToCoreId = ( new Map());
12
+ }
13
+ async detectLanguage(uri, langBiases, preferHistory, supportedLangs) {
14
+ const languages = [];
15
+ const confidences = [];
16
+ const stopWatch = ( new StopWatch());
17
+ const documentTextSample = this.getTextForDetection(uri);
18
+ if (!documentTextSample) {
19
+ return;
20
+ }
21
+ const neuralResolver = async () => {
22
+ for await (const language of this.detectLanguagesImpl(documentTextSample)) {
23
+ if (!( this.modelIdToCoreId.has(language.languageId))) {
24
+ this.modelIdToCoreId.set(language.languageId, await this._host.fhr('getLanguageId', [language.languageId]));
25
+ }
26
+ const coreId = this.modelIdToCoreId.get(language.languageId);
27
+ if (coreId && (!supportedLangs?.length || supportedLangs.includes(coreId))) {
28
+ languages.push(coreId);
29
+ confidences.push(language.confidence);
30
+ }
31
+ }
32
+ stopWatch.stop();
33
+ if (languages.length) {
34
+ this._host.fhr('sendTelemetryEvent', [languages, confidences, stopWatch.elapsed()]);
35
+ return languages[0];
36
+ }
37
+ return undefined;
38
+ };
39
+ const neural = await neuralResolver();
40
+ if (neural) {
41
+ return neural;
42
+ }
43
+ return undefined;
44
+ }
45
+ getTextForDetection(uri) {
46
+ const editorModel = this._getModel(uri);
47
+ if (!editorModel) {
48
+ return;
49
+ }
50
+ const end = editorModel.positionAt(10000);
51
+ const content = editorModel.getValueInRange({
52
+ startColumn: 1,
53
+ startLineNumber: 1,
54
+ endColumn: end.column,
55
+ endLineNumber: end.lineNumber
56
+ });
57
+ return content;
58
+ }
59
+ async getModelOperations() {
60
+ if (this._modelOperations) {
61
+ return this._modelOperations;
62
+ }
63
+ this._modelOperations = ( new ModelOperations({
64
+ modelJsonLoaderFunc: async () => {
65
+ const response = await fetch(await this._host.fhr('getModelJsonUri', []));
66
+ try {
67
+ const modelJSON = await response.json();
68
+ return modelJSON;
69
+ }
70
+ catch (e) {
71
+ const message = `Failed to parse model JSON.`;
72
+ throw new Error(message);
73
+ }
74
+ },
75
+ weightsLoaderFunc: async () => {
76
+ const response = await fetch(await this._host.fhr('getWeightsUri', []));
77
+ const buffer = await response.arrayBuffer();
78
+ return buffer;
79
+ }
80
+ }));
81
+ return this._modelOperations;
82
+ }
83
+ adjustLanguageConfidence(modelResult) {
84
+ switch (modelResult.languageId) {
85
+ case 'js':
86
+ case 'html':
87
+ case 'json':
88
+ case 'ts':
89
+ case 'css':
90
+ case 'py':
91
+ case 'xml':
92
+ case 'php':
93
+ modelResult.confidence += LanguageDetectionSimpleWorker.positiveConfidenceCorrectionBucket1;
94
+ break;
95
+ case 'cpp':
96
+ case 'sh':
97
+ case 'java':
98
+ case 'cs':
99
+ case 'c':
100
+ modelResult.confidence += LanguageDetectionSimpleWorker.positiveConfidenceCorrectionBucket2;
101
+ break;
102
+ case 'bat':
103
+ case 'ini':
104
+ case 'makefile':
105
+ case 'sql':
106
+ case 'csv':
107
+ case 'toml':
108
+ modelResult.confidence -= LanguageDetectionSimpleWorker.negativeConfidenceCorrection;
109
+ break;
110
+ }
111
+ return modelResult;
112
+ }
113
+ async *detectLanguagesImpl(content) {
114
+ if (this._loadFailed) {
115
+ return;
116
+ }
117
+ let modelOperations;
118
+ try {
119
+ modelOperations = await this.getModelOperations();
120
+ }
121
+ catch (e) {
122
+ console.log(e);
123
+ this._loadFailed = true;
124
+ return;
125
+ }
126
+ let modelResults;
127
+ try {
128
+ modelResults = await modelOperations.runModel(content);
129
+ }
130
+ catch (e) {
131
+ console.warn(e);
132
+ }
133
+ if (!modelResults
134
+ || modelResults.length === 0
135
+ || modelResults[0].confidence < LanguageDetectionSimpleWorker.expectedRelativeConfidence) {
136
+ return;
137
+ }
138
+ const firstModelResult = this.adjustLanguageConfidence(modelResults[0]);
139
+ if (firstModelResult.confidence < LanguageDetectionSimpleWorker.expectedRelativeConfidence) {
140
+ return;
141
+ }
142
+ const possibleLanguages = [firstModelResult];
143
+ for (let current of modelResults) {
144
+ if (current === firstModelResult) {
145
+ continue;
146
+ }
147
+ current = this.adjustLanguageConfidence(current);
148
+ const currentHighest = possibleLanguages[possibleLanguages.length - 1];
149
+ if (currentHighest.confidence - current.confidence >= LanguageDetectionSimpleWorker.expectedRelativeConfidence) {
150
+ while (possibleLanguages.length) {
151
+ yield possibleLanguages.shift();
152
+ }
153
+ if (current.confidence > LanguageDetectionSimpleWorker.expectedRelativeConfidence) {
154
+ possibleLanguages.push(current);
155
+ continue;
156
+ }
157
+ return;
158
+ }
159
+ else {
160
+ if (current.confidence > LanguageDetectionSimpleWorker.expectedRelativeConfidence) {
161
+ possibleLanguages.push(current);
162
+ continue;
163
+ }
164
+ return;
165
+ }
166
+ }
167
+ }
168
+ }
169
+ LanguageDetectionSimpleWorker.expectedRelativeConfidence = 0.2;
170
+ LanguageDetectionSimpleWorker.positiveConfidenceCorrectionBucket1 = 0.05;
171
+ LanguageDetectionSimpleWorker.positiveConfidenceCorrectionBucket2 = 0.025;
172
+ LanguageDetectionSimpleWorker.negativeConfidenceCorrection = 0.5;
173
+ export { LanguageDetectionSimpleWorker, create };