@codingame/monaco-vscode-api 1.83.5 → 1.83.6

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 (212) hide show
  1. package/lifecycle.js +3 -1
  2. package/missing-services.js +32 -28
  3. package/monaco-editor-treemending.patch +786 -760
  4. package/monaco.js +1 -0
  5. package/package.json +1 -1
  6. package/service-override/extensions.js +5 -5
  7. package/service-override/files.js +37 -13
  8. package/service-override/keybindings.js +10 -4
  9. package/service-override/layout.js +1 -3
  10. package/services.d.ts +13 -2
  11. package/services.js +35 -5
  12. package/vscode/src/vs/base/browser/broadcast.js +52 -0
  13. package/vscode/src/vs/base/browser/ui/menu/menubar.js +1 -1
  14. package/vscode/src/vs/base/browser/ui/splitview/paneview.js +6 -1
  15. package/vscode/src/vs/base/common/date.js +244 -54
  16. package/vscode/src/vs/base/common/jsonErrorMessages.js +45 -9
  17. package/vscode/src/vs/editor/common/services/textResourceConfiguration.d.ts +65 -0
  18. package/vscode/src/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +33 -5
  19. package/vscode/src/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +165 -32
  20. package/vscode/src/vs/platform/dialogs/common/dialogs.js +30 -9
  21. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +0 -3
  22. package/vscode/src/vs/platform/extensionManagement/common/extensionNls.js +6 -1
  23. package/vscode/src/vs/platform/files/browser/indexedDBFileSystemProvider.js +404 -0
  24. package/vscode/src/vs/platform/files/common/fileService.js +13 -2
  25. package/vscode/src/vs/platform/files/common/files.js +25 -5
  26. package/vscode/src/vs/platform/keyboardLayout/common/keyboardConfig.js +15 -3
  27. package/vscode/src/vs/platform/quickinput/browser/commandsQuickAccess.js +38 -7
  28. package/vscode/src/vs/platform/quickinput/browser/helpQuickAccess.js +7 -1
  29. package/vscode/src/vs/platform/request/common/request.js +1 -1
  30. package/vscode/src/vs/platform/theme/common/tokenClassificationRegistry.js +210 -42
  31. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +73 -13
  32. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +5 -1
  33. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +11 -2
  34. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +5 -3
  35. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +70 -35
  36. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +108 -20
  37. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +17 -4
  38. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +5 -3
  39. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +5 -5
  40. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +5 -3
  41. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +7 -1
  42. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +14 -2
  43. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +12 -14
  44. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +6 -1
  45. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +32 -5
  46. package/vscode/src/vs/workbench/api/browser/statusBarExtensionPoint.js +0 -60
  47. package/vscode/src/vs/workbench/api/common/extHostChat.js +11 -2
  48. package/vscode/src/vs/workbench/api/common/extHostDiagnostics.js +6 -1
  49. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +12 -2
  50. package/vscode/src/vs/workbench/api/common/extHostLogService.js +9 -1
  51. package/vscode/src/vs/workbench/api/common/extHostProgress.js +6 -1
  52. package/vscode/src/vs/workbench/api/common/extHostStatusBar.js +11 -2
  53. package/vscode/src/vs/workbench/api/common/extHostTelemetry.js +6 -1
  54. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +6 -1
  55. package/vscode/src/vs/workbench/api/common/extHostTunnelService.js +10 -2
  56. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +7 -1
  57. package/vscode/src/vs/workbench/api/common/jsonValidationExtensionPoint.js +49 -9
  58. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +397 -274
  59. package/vscode/src/vs/workbench/browser/actions/quickAccessActions.js +30 -6
  60. package/vscode/src/vs/workbench/browser/actions/windowActions.js +85 -31
  61. package/vscode/src/vs/workbench/browser/actions/workspaceActions.js +56 -102
  62. package/vscode/src/vs/workbench/browser/actions/workspaceCommands.js +5 -1
  63. package/vscode/src/vs/workbench/browser/editor.js +2 -2
  64. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.js +55 -11
  65. package/vscode/src/vs/workbench/browser/parts/compositeBarActions.js +63 -11
  66. package/vscode/src/vs/workbench/browser/parts/editor/binaryDiffEditor.js +7 -1
  67. package/vscode/src/vs/workbench/browser/parts/editor/binaryEditor.js +15 -3
  68. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbs.js +205 -41
  69. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +617 -139
  70. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +578 -114
  71. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +96 -20
  72. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.js +30 -6
  73. package/vscode/src/vs/workbench/browser/parts/editor/editorPlaceholder.js +46 -9
  74. package/vscode/src/vs/workbench/browser/parts/editor/editorQuickAccess.js +30 -5
  75. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +309 -59
  76. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +5 -1
  77. package/vscode/src/vs/workbench/browser/parts/editor/textCodeEditor.js +5 -1
  78. package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.js +16 -3
  79. package/vscode/src/vs/workbench/browser/parts/editor/textEditor.js +1 -1
  80. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +35 -7
  81. package/vscode/src/vs/workbench/browser/parts/panel/panelActions.js +185 -33
  82. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +90 -57
  83. package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +5 -1
  84. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +16 -3
  85. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +26 -6
  86. package/vscode/src/vs/workbench/browser/parts/views/viewsService.js +35 -6
  87. package/vscode/src/vs/workbench/browser/quickaccess.js +6 -6
  88. package/vscode/src/vs/workbench/browser/workbench.contribution.js +918 -185
  89. package/vscode/src/vs/workbench/common/configuration.js +25 -11
  90. package/vscode/src/vs/workbench/common/contextkeys.js +244 -228
  91. package/vscode/src/vs/workbench/common/editor/diffEditorInput.js +7 -1
  92. package/vscode/src/vs/workbench/common/editor/resourceEditorInput.d.ts +44 -0
  93. package/vscode/src/vs/workbench/common/editor/sideBySideEditorInput.js +7 -1
  94. package/vscode/src/vs/workbench/common/editor/textEditorModel.js +6 -1
  95. package/vscode/src/vs/workbench/common/editor/textResourceEditorInput.d.ts +23 -0
  96. package/vscode/src/vs/workbench/common/editor.d.ts +26 -1
  97. package/vscode/src/vs/workbench/common/editor.js +26 -5
  98. package/vscode/src/vs/workbench/common/theme.js +676 -136
  99. package/vscode/src/vs/workbench/common/views.js +8 -3
  100. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +71 -14
  101. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.js +21 -2
  102. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleView.js +133 -21
  103. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.js +36 -8
  104. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +96 -17
  105. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +0 -2
  106. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +22 -4
  107. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +22 -4
  108. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +41 -8
  109. package/vscode/src/vs/workbench/contrib/codeActions/common/codeActionsExtensionPoint.js +25 -5
  110. package/vscode/src/vs/workbench/contrib/codeActions/common/documentationExtensionPoint.js +30 -6
  111. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +34 -6
  112. package/vscode/src/vs/workbench/contrib/codeEditor/browser/editorFeatures.js +44 -0
  113. package/vscode/src/vs/workbench/contrib/codeEditor/browser/inspectEditorTokens/inspectEditorTokens.js +10 -2
  114. package/vscode/src/vs/workbench/contrib/codeEditor/browser/languageConfigurationExtensionPoint.js +320 -63
  115. package/vscode/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.js +12 -4
  116. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoLineQuickAccess.js +15 -3
  117. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +30 -6
  118. package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +25 -4
  119. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMinimap.js +10 -2
  120. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +20 -4
  121. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderControlCharacter.js +10 -2
  122. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderWhitespace.js +10 -2
  123. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +25 -9
  124. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +30 -6
  125. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +25 -5
  126. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +16 -3
  127. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +8 -4
  128. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +23 -3
  129. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +15 -9
  130. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +18 -3
  131. package/vscode/src/vs/workbench/contrib/comments/browser/comments.contribution.js +142 -26
  132. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +33 -5
  133. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +45 -7
  134. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +63 -10
  135. package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +45 -9
  136. package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +16 -8
  137. package/vscode/src/vs/workbench/contrib/comments/common/commentContextKeys.js +41 -21
  138. package/vscode/src/vs/workbench/contrib/comments/common/commentModel.js +5 -1
  139. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditor.js +5 -1
  140. package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +60 -12
  141. package/vscode/src/vs/workbench/contrib/debug/browser/debugIcons.js +275 -55
  142. package/vscode/src/vs/workbench/contrib/debug/common/abstractDebugAdapter.js +7 -1
  143. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +255 -94
  144. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsIcons.js +120 -24
  145. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/configuration.js +22 -4
  146. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.js +21 -4
  147. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +39 -51
  148. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +394 -75
  149. package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +17 -6
  150. package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +190 -32
  151. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +5 -1
  152. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerDecorationsProvider.js +21 -4
  153. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +26 -5
  154. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +81 -14
  155. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +26 -5
  156. package/vscode/src/vs/workbench/contrib/files/common/files.js +70 -26
  157. package/vscode/src/vs/workbench/contrib/folding/browser/folding.contribution.js +11 -3
  158. package/vscode/src/vs/workbench/contrib/format/browser/formatModified.js +5 -1
  159. package/vscode/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.js +20 -4
  160. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +75 -111
  161. package/vscode/src/vs/workbench/contrib/keybindings/browser/keybindings.contribution.js +5 -1
  162. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +6 -1
  163. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +151 -29
  164. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +10 -2
  165. package/vscode/src/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +0 -42
  166. package/vscode/src/vs/workbench/contrib/output/browser/output.contribution.js +115 -23
  167. package/vscode/src/vs/workbench/contrib/output/browser/outputView.js +17 -3
  168. package/vscode/src/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +49 -9
  169. package/vscode/src/vs/workbench/contrib/quickaccess/browser/quickAccess.contribution.js +66 -13
  170. package/vscode/src/vs/workbench/contrib/quickaccess/browser/viewQuickAccess.js +52 -10
  171. package/vscode/src/vs/workbench/contrib/scm/browser/dirtyDiffSwitcher.js +10 -2
  172. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +110 -26
  173. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +21 -3
  174. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +15 -3
  175. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.js +56 -9
  176. package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +25 -5
  177. package/vscode/src/vs/workbench/contrib/tasks/common/taskService.js +16 -26
  178. package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +7 -8
  179. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +20 -4
  180. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +35 -7
  181. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +106 -21
  182. package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +81 -21
  183. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +6 -1
  184. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +6 -2
  185. package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +592 -112
  186. package/vscode/src/vs/workbench/services/assignment/common/assignmentService.js +5 -1
  187. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +6 -32
  188. package/vscode/src/vs/workbench/services/configuration/common/jsonEditingService.js +5 -1
  189. package/vscode/src/vs/workbench/services/decorations/browser/decorationsService.js +5 -1
  190. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.js +5 -1
  191. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +15 -3
  192. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +58 -10
  193. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +5 -1
  194. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +392 -80
  195. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +28 -5
  196. package/vscode/src/vs/workbench/services/host/browser/browserHostService.js +10 -2
  197. package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +129 -24
  198. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.js +10 -2
  199. package/vscode/src/vs/workbench/services/keybinding/common/keybindingEditing.js +20 -10
  200. package/vscode/src/vs/workbench/services/language/common/languageService.js +122 -22
  201. package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +28 -9
  202. package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +6 -1
  203. package/vscode/src/vs/workbench/services/textfile/browser/textFileService.js +48 -9
  204. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +5 -1
  205. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModelManager.js +7 -1
  206. package/vscode/src/vs/workbench/services/textfile/common/textFileSaveParticipant.js +6 -1
  207. package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +81 -16
  208. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +1 -50
  209. package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +126 -25
  210. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +6 -5
  211. package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +6 -14
  212. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopySaveParticipant.js +6 -1
@@ -51,18 +51,26 @@ import { KeyChord } from 'monaco-editor/esm/vs/base/common/keyCodes.js';
51
51
  import { Categories } from 'monaco-editor/esm/vs/platform/action/common/actionCommonCategories.js';
52
52
  import { IDialogService, getFileNamesMessage } from '../../../../platform/dialogs/common/dialogs.js';
53
53
  const NEW_FILE_COMMAND_ID = 'explorer.newFile';
54
- const NEW_FILE_LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'newFile', "New File...");
54
+ const NEW_FILE_LABEL = ( nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'newFile', "New File..."));
55
55
  const NEW_FOLDER_COMMAND_ID = 'explorer.newFolder';
56
- const NEW_FOLDER_LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'newFolder', "New Folder...");
57
- const TRIGGER_RENAME_LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'rename', "Rename...");
58
- const MOVE_FILE_TO_TRASH_LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'delete', "Delete");
59
- const COPY_FILE_LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'copyFile', "Copy");
60
- const PASTE_FILE_LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'pasteFile', "Paste");
56
+ const NEW_FOLDER_LABEL = ( nls.localizeWithPath(
57
+ 'vs/workbench/contrib/files/browser/fileActions',
58
+ 'newFolder',
59
+ "New Folder..."
60
+ ));
61
+ const TRIGGER_RENAME_LABEL = ( nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'rename', "Rename..."));
62
+ const MOVE_FILE_TO_TRASH_LABEL = ( nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'delete', "Delete"));
63
+ const COPY_FILE_LABEL = ( nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'copyFile', "Copy"));
64
+ const PASTE_FILE_LABEL = ( nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'pasteFile', "Paste"));
61
65
  const FileCopiedContext = ( new RawContextKey('fileCopied', false));
62
66
  const DOWNLOAD_COMMAND_ID = 'explorer.download';
63
- const DOWNLOAD_LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'download', "Download...");
67
+ const DOWNLOAD_LABEL = ( nls.localizeWithPath(
68
+ 'vs/workbench/contrib/files/browser/fileActions',
69
+ 'download',
70
+ "Download..."
71
+ ));
64
72
  const UPLOAD_COMMAND_ID = 'explorer.upload';
65
- const UPLOAD_LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'upload', "Upload...");
73
+ const UPLOAD_LABEL = ( nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'upload', "Upload..."));
66
74
  const CONFIRM_DELETE_SETTING_KEY = 'explorer.confirmDelete';
67
75
  const MAX_UNDO_FILE_SIZE = 5000000;
68
76
  function onError(notificationService, error) {
@@ -79,10 +87,22 @@ async function refreshIfSeparator(value, explorerService) {
79
87
  async function deleteFiles(explorerService, workingCopyFileService, dialogService, configurationService, elements, useTrash, skipConfirm = false, ignoreIfNotExists = false) {
80
88
  let primaryButton;
81
89
  if (useTrash) {
82
- primaryButton = isWindows ? nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'deleteButtonLabelRecycleBin', "&&Move to Recycle Bin") : nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'deleteButtonLabelTrash', comment: ['&& denotes a mnemonic'] }, "&&Move to Trash");
90
+ primaryButton = isWindows ? ( nls.localizeWithPath(
91
+ 'vs/workbench/contrib/files/browser/fileActions',
92
+ 'deleteButtonLabelRecycleBin',
93
+ "&&Move to Recycle Bin"
94
+ )) : ( nls.localizeWithPath(
95
+ 'vs/workbench/contrib/files/browser/fileActions',
96
+ { key: 'deleteButtonLabelTrash', comment: ['&& denotes a mnemonic'] },
97
+ "&&Move to Trash"
98
+ ));
83
99
  }
84
100
  else {
85
- primaryButton = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'deleteButtonLabel', comment: ['&& denotes a mnemonic'] }, "&&Delete");
101
+ primaryButton = ( nls.localizeWithPath(
102
+ 'vs/workbench/contrib/files/browser/fileActions',
103
+ { key: 'deleteButtonLabel', comment: ['&& denotes a mnemonic'] },
104
+ "&&Delete"
105
+ ));
86
106
  }
87
107
  const distinctElements = resources.distinctParents(elements, e => e.resource);
88
108
  const dirtyWorkingCopies = ( new Set());
@@ -95,23 +115,47 @@ async function deleteFiles(explorerService, workingCopyFileService, dialogServic
95
115
  if (dirtyWorkingCopies.size) {
96
116
  let message;
97
117
  if (distinctElements.length > 1) {
98
- message = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'dirtyMessageFilesDelete', "You are deleting files with unsaved changes. Do you want to continue?");
118
+ message = ( nls.localizeWithPath(
119
+ 'vs/workbench/contrib/files/browser/fileActions',
120
+ 'dirtyMessageFilesDelete',
121
+ "You are deleting files with unsaved changes. Do you want to continue?"
122
+ ));
99
123
  }
100
124
  else if (distinctElements[0].isDirectory) {
101
125
  if (dirtyWorkingCopies.size === 1) {
102
- message = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'dirtyMessageFolderOneDelete', "You are deleting a folder {0} with unsaved changes in 1 file. Do you want to continue?", distinctElements[0].name);
126
+ message = ( nls.localizeWithPath(
127
+ 'vs/workbench/contrib/files/browser/fileActions',
128
+ 'dirtyMessageFolderOneDelete',
129
+ "You are deleting a folder {0} with unsaved changes in 1 file. Do you want to continue?",
130
+ distinctElements[0].name
131
+ ));
103
132
  }
104
133
  else {
105
- message = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'dirtyMessageFolderDelete', "You are deleting a folder {0} with unsaved changes in {1} files. Do you want to continue?", distinctElements[0].name, dirtyWorkingCopies.size);
134
+ message = ( nls.localizeWithPath(
135
+ 'vs/workbench/contrib/files/browser/fileActions',
136
+ 'dirtyMessageFolderDelete',
137
+ "You are deleting a folder {0} with unsaved changes in {1} files. Do you want to continue?",
138
+ distinctElements[0].name,
139
+ dirtyWorkingCopies.size
140
+ ));
106
141
  }
107
142
  }
108
143
  else {
109
- message = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'dirtyMessageFileDelete', "You are deleting {0} with unsaved changes. Do you want to continue?", distinctElements[0].name);
144
+ message = ( nls.localizeWithPath(
145
+ 'vs/workbench/contrib/files/browser/fileActions',
146
+ 'dirtyMessageFileDelete',
147
+ "You are deleting {0} with unsaved changes. Do you want to continue?",
148
+ distinctElements[0].name
149
+ ));
110
150
  }
111
151
  const response = await dialogService.confirm({
112
152
  type: 'warning',
113
153
  message,
114
- detail: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'dirtyWarning', "Your changes will be lost if you don't save them."),
154
+ detail: ( nls.localizeWithPath(
155
+ 'vs/workbench/contrib/files/browser/fileActions',
156
+ 'dirtyWarning',
157
+ "Your changes will be lost if you don't save them."
158
+ )),
115
159
  primaryButton
116
160
  });
117
161
  if (!response.confirmed) {
@@ -125,8 +169,20 @@ async function deleteFiles(explorerService, workingCopyFileService, dialogServic
125
169
  return;
126
170
  }
127
171
  let confirmation;
128
- const deleteDetail = ( distinctElements.some(e => e.isDirectory)) ? nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'irreversible', "This action is irreversible!") :
129
- distinctElements.length > 1 ? nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'restorePlural', "You can restore these files using the Undo command") : nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'restore', "You can restore this file using the Undo command");
172
+ const deleteDetail = ( distinctElements.some(e => e.isDirectory)) ? ( nls.localizeWithPath(
173
+ 'vs/workbench/contrib/files/browser/fileActions',
174
+ 'irreversible',
175
+ "This action is irreversible!"
176
+ )) :
177
+ distinctElements.length > 1 ? ( nls.localizeWithPath(
178
+ 'vs/workbench/contrib/files/browser/fileActions',
179
+ 'restorePlural',
180
+ "You can restore these files using the Undo command"
181
+ )) : ( nls.localizeWithPath(
182
+ 'vs/workbench/contrib/files/browser/fileActions',
183
+ 'restore',
184
+ "You can restore this file using the Undo command"
185
+ ));
130
186
  if (skipConfirm || (useTrash && configurationService.getValue(CONFIRM_DELETE_SETTING_KEY) === false)) {
131
187
  confirmation = { confirmed: true };
132
188
  }
@@ -134,17 +190,37 @@ async function deleteFiles(explorerService, workingCopyFileService, dialogServic
134
190
  let { message, detail } = getMoveToTrashMessage(distinctElements);
135
191
  detail += detail ? '\n' : '';
136
192
  if (isWindows) {
137
- detail += distinctElements.length > 1 ? nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'undoBinFiles', "You can restore these files from the Recycle Bin.") : nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'undoBin', "You can restore this file from the Recycle Bin.");
193
+ detail += distinctElements.length > 1 ? ( nls.localizeWithPath(
194
+ 'vs/workbench/contrib/files/browser/fileActions',
195
+ 'undoBinFiles',
196
+ "You can restore these files from the Recycle Bin."
197
+ )) : ( nls.localizeWithPath(
198
+ 'vs/workbench/contrib/files/browser/fileActions',
199
+ 'undoBin',
200
+ "You can restore this file from the Recycle Bin."
201
+ ));
138
202
  }
139
203
  else {
140
- detail += distinctElements.length > 1 ? nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'undoTrashFiles', "You can restore these files from the Trash.") : nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'undoTrash', "You can restore this file from the Trash.");
204
+ detail += distinctElements.length > 1 ? ( nls.localizeWithPath(
205
+ 'vs/workbench/contrib/files/browser/fileActions',
206
+ 'undoTrashFiles',
207
+ "You can restore these files from the Trash."
208
+ )) : ( nls.localizeWithPath(
209
+ 'vs/workbench/contrib/files/browser/fileActions',
210
+ 'undoTrash',
211
+ "You can restore this file from the Trash."
212
+ ));
141
213
  }
142
214
  confirmation = await dialogService.confirm({
143
215
  message,
144
216
  detail,
145
217
  primaryButton,
146
218
  checkbox: {
147
- label: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'doNotAskAgain', "Do not ask me again")
219
+ label: ( nls.localizeWithPath(
220
+ 'vs/workbench/contrib/files/browser/fileActions',
221
+ 'doNotAskAgain',
222
+ "Do not ask me again"
223
+ ))
148
224
  }
149
225
  });
150
226
  }
@@ -172,8 +248,28 @@ async function deleteFiles(explorerService, workingCopyFileService, dialogServic
172
248
  { recursive: true, folder: e.isDirectory, ignoreIfNotExists, skipTrashBin: !useTrash, maxSize: MAX_UNDO_FILE_SIZE }
173
249
  ))));
174
250
  const options = {
175
- undoLabel: distinctElements.length > 1 ? nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'deleteBulkEdit', comment: ['Placeholder will be replaced by the number of files deleted'] }, "Delete {0} files", distinctElements.length) : nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'deleteFileBulkEdit', comment: ['Placeholder will be replaced by the name of the file deleted'] }, "Delete {0}", distinctElements[0].name),
176
- progressLabel: distinctElements.length > 1 ? nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'deletingBulkEdit', comment: ['Placeholder will be replaced by the number of files deleted'] }, "Deleting {0} files", distinctElements.length) : nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'deletingFileBulkEdit', comment: ['Placeholder will be replaced by the name of the file deleted'] }, "Deleting {0}", distinctElements[0].name),
251
+ undoLabel: distinctElements.length > 1 ? ( nls.localizeWithPath(
252
+ 'vs/workbench/contrib/files/browser/fileActions',
253
+ { key: 'deleteBulkEdit', comment: ['Placeholder will be replaced by the number of files deleted'] },
254
+ "Delete {0} files",
255
+ distinctElements.length
256
+ )) : ( nls.localizeWithPath(
257
+ 'vs/workbench/contrib/files/browser/fileActions',
258
+ { key: 'deleteFileBulkEdit', comment: ['Placeholder will be replaced by the name of the file deleted'] },
259
+ "Delete {0}",
260
+ distinctElements[0].name
261
+ )),
262
+ progressLabel: distinctElements.length > 1 ? ( nls.localizeWithPath(
263
+ 'vs/workbench/contrib/files/browser/fileActions',
264
+ { key: 'deletingBulkEdit', comment: ['Placeholder will be replaced by the number of files deleted'] },
265
+ "Deleting {0} files",
266
+ distinctElements.length
267
+ )) : ( nls.localizeWithPath(
268
+ 'vs/workbench/contrib/files/browser/fileActions',
269
+ { key: 'deletingFileBulkEdit', comment: ['Placeholder will be replaced by the name of the file deleted'] },
270
+ "Deleting {0}",
271
+ distinctElements[0].name
272
+ )),
177
273
  };
178
274
  await explorerService.applyBulkEdit(resourceFileEdits, options);
179
275
  }
@@ -182,13 +278,29 @@ async function deleteFiles(explorerService, workingCopyFileService, dialogServic
182
278
  let detailMessage;
183
279
  let primaryButton;
184
280
  if (useTrash) {
185
- errorMessage = isWindows ? nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'binFailed', "Failed to delete using the Recycle Bin. Do you want to permanently delete instead?") : nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'trashFailed', "Failed to delete using the Trash. Do you want to permanently delete instead?");
281
+ errorMessage = isWindows ? ( nls.localizeWithPath(
282
+ 'vs/workbench/contrib/files/browser/fileActions',
283
+ 'binFailed',
284
+ "Failed to delete using the Recycle Bin. Do you want to permanently delete instead?"
285
+ )) : ( nls.localizeWithPath(
286
+ 'vs/workbench/contrib/files/browser/fileActions',
287
+ 'trashFailed',
288
+ "Failed to delete using the Trash. Do you want to permanently delete instead?"
289
+ ));
186
290
  detailMessage = deleteDetail;
187
- primaryButton = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'deletePermanentlyButtonLabel', comment: ['&& denotes a mnemonic'] }, "&&Delete Permanently");
291
+ primaryButton = ( nls.localizeWithPath(
292
+ 'vs/workbench/contrib/files/browser/fileActions',
293
+ { key: 'deletePermanentlyButtonLabel', comment: ['&& denotes a mnemonic'] },
294
+ "&&Delete Permanently"
295
+ ));
188
296
  }
189
297
  else {
190
298
  errorMessage = toErrorMessage(error, false);
191
- primaryButton = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'retryButtonLabel', comment: ['&& denotes a mnemonic'] }, "&&Retry");
299
+ primaryButton = ( nls.localizeWithPath(
300
+ 'vs/workbench/contrib/files/browser/fileActions',
301
+ { key: 'retryButtonLabel', comment: ['&& denotes a mnemonic'] },
302
+ "&&Retry"
303
+ ));
192
304
  }
193
305
  const res = await dialogService.confirm({
194
306
  type: 'warning',
@@ -209,50 +321,100 @@ async function deleteFiles(explorerService, workingCopyFileService, dialogServic
209
321
  function getMoveToTrashMessage(distinctElements) {
210
322
  if (containsBothDirectoryAndFile(distinctElements)) {
211
323
  return {
212
- message: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'confirmMoveTrashMessageFilesAndDirectories', "Are you sure you want to delete the following {0} files/directories and their contents?", distinctElements.length),
324
+ message: ( nls.localizeWithPath(
325
+ 'vs/workbench/contrib/files/browser/fileActions',
326
+ 'confirmMoveTrashMessageFilesAndDirectories',
327
+ "Are you sure you want to delete the following {0} files/directories and their contents?",
328
+ distinctElements.length
329
+ )),
213
330
  detail: getFileNamesMessage(( distinctElements.map(e => e.resource)))
214
331
  };
215
332
  }
216
333
  if (distinctElements.length > 1) {
217
334
  if (distinctElements[0].isDirectory) {
218
335
  return {
219
- message: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'confirmMoveTrashMessageMultipleDirectories', "Are you sure you want to delete the following {0} directories and their contents?", distinctElements.length),
336
+ message: ( nls.localizeWithPath(
337
+ 'vs/workbench/contrib/files/browser/fileActions',
338
+ 'confirmMoveTrashMessageMultipleDirectories',
339
+ "Are you sure you want to delete the following {0} directories and their contents?",
340
+ distinctElements.length
341
+ )),
220
342
  detail: getFileNamesMessage(( distinctElements.map(e => e.resource)))
221
343
  };
222
344
  }
223
345
  return {
224
- message: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'confirmMoveTrashMessageMultiple', "Are you sure you want to delete the following {0} files?", distinctElements.length),
346
+ message: ( nls.localizeWithPath(
347
+ 'vs/workbench/contrib/files/browser/fileActions',
348
+ 'confirmMoveTrashMessageMultiple',
349
+ "Are you sure you want to delete the following {0} files?",
350
+ distinctElements.length
351
+ )),
225
352
  detail: getFileNamesMessage(( distinctElements.map(e => e.resource)))
226
353
  };
227
354
  }
228
355
  if (distinctElements[0].isDirectory && !distinctElements[0].isSymbolicLink) {
229
- return { message: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'confirmMoveTrashMessageFolder', "Are you sure you want to delete '{0}' and its contents?", distinctElements[0].name), detail: '' };
230
- }
231
- return { message: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'confirmMoveTrashMessageFile', "Are you sure you want to delete '{0}'?", distinctElements[0].name), detail: '' };
356
+ return { message: ( nls.localizeWithPath(
357
+ 'vs/workbench/contrib/files/browser/fileActions',
358
+ 'confirmMoveTrashMessageFolder',
359
+ "Are you sure you want to delete '{0}' and its contents?",
360
+ distinctElements[0].name
361
+ )), detail: '' };
362
+ }
363
+ return { message: ( nls.localizeWithPath(
364
+ 'vs/workbench/contrib/files/browser/fileActions',
365
+ 'confirmMoveTrashMessageFile',
366
+ "Are you sure you want to delete '{0}'?",
367
+ distinctElements[0].name
368
+ )), detail: '' };
232
369
  }
233
370
  function getDeleteMessage(distinctElements) {
234
371
  if (containsBothDirectoryAndFile(distinctElements)) {
235
372
  return {
236
- message: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'confirmDeleteMessageFilesAndDirectories', "Are you sure you want to permanently delete the following {0} files/directories and their contents?", distinctElements.length),
373
+ message: ( nls.localizeWithPath(
374
+ 'vs/workbench/contrib/files/browser/fileActions',
375
+ 'confirmDeleteMessageFilesAndDirectories',
376
+ "Are you sure you want to permanently delete the following {0} files/directories and their contents?",
377
+ distinctElements.length
378
+ )),
237
379
  detail: getFileNamesMessage(( distinctElements.map(e => e.resource)))
238
380
  };
239
381
  }
240
382
  if (distinctElements.length > 1) {
241
383
  if (distinctElements[0].isDirectory) {
242
384
  return {
243
- message: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'confirmDeleteMessageMultipleDirectories', "Are you sure you want to permanently delete the following {0} directories and their contents?", distinctElements.length),
385
+ message: ( nls.localizeWithPath(
386
+ 'vs/workbench/contrib/files/browser/fileActions',
387
+ 'confirmDeleteMessageMultipleDirectories',
388
+ "Are you sure you want to permanently delete the following {0} directories and their contents?",
389
+ distinctElements.length
390
+ )),
244
391
  detail: getFileNamesMessage(( distinctElements.map(e => e.resource)))
245
392
  };
246
393
  }
247
394
  return {
248
- message: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'confirmDeleteMessageMultiple', "Are you sure you want to permanently delete the following {0} files?", distinctElements.length),
395
+ message: ( nls.localizeWithPath(
396
+ 'vs/workbench/contrib/files/browser/fileActions',
397
+ 'confirmDeleteMessageMultiple',
398
+ "Are you sure you want to permanently delete the following {0} files?",
399
+ distinctElements.length
400
+ )),
249
401
  detail: getFileNamesMessage(( distinctElements.map(e => e.resource)))
250
402
  };
251
403
  }
252
404
  if (distinctElements[0].isDirectory) {
253
- return { message: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'confirmDeleteMessageFolder', "Are you sure you want to permanently delete '{0}' and its contents?", distinctElements[0].name), detail: '' };
254
- }
255
- return { message: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'confirmDeleteMessageFile', "Are you sure you want to permanently delete '{0}'?", distinctElements[0].name), detail: '' };
405
+ return { message: ( nls.localizeWithPath(
406
+ 'vs/workbench/contrib/files/browser/fileActions',
407
+ 'confirmDeleteMessageFolder',
408
+ "Are you sure you want to permanently delete '{0}' and its contents?",
409
+ distinctElements[0].name
410
+ )), detail: '' };
411
+ }
412
+ return { message: ( nls.localizeWithPath(
413
+ 'vs/workbench/contrib/files/browser/fileActions',
414
+ 'confirmDeleteMessageFile',
415
+ "Are you sure you want to permanently delete '{0}'?",
416
+ distinctElements[0].name
417
+ )), detail: '' };
256
418
  }
257
419
  function containsBothDirectoryAndFile(distinctElements) {
258
420
  const directory = distinctElements.find(element => element.isDirectory);
@@ -379,14 +541,27 @@ async function askForOverwrite(fileService, dialogService, targetResource) {
379
541
  }
380
542
  const { confirmed } = await dialogService.confirm({
381
543
  type: Severity.Warning,
382
- message: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'confirmOverwrite', "A file or folder with the name '{0}' already exists in the destination folder. Do you want to replace it?", basename(targetResource.path)),
383
- primaryButton: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'replaceButtonLabel', "&&Replace")
544
+ message: ( nls.localizeWithPath(
545
+ 'vs/workbench/contrib/files/browser/fileActions',
546
+ 'confirmOverwrite',
547
+ "A file or folder with the name '{0}' already exists in the destination folder. Do you want to replace it?",
548
+ basename(targetResource.path)
549
+ )),
550
+ primaryButton: ( nls.localizeWithPath(
551
+ 'vs/workbench/contrib/files/browser/fileActions',
552
+ 'replaceButtonLabel',
553
+ "&&Replace"
554
+ ))
384
555
  });
385
556
  return confirmed;
386
557
  }
387
558
  class GlobalCompareResourcesAction extends Action2 {
388
559
  static { this.ID = 'workbench.files.action.compareFileWith'; }
389
- static { this.LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'globalCompareFile', "Compare Active File With..."); }
560
+ static { this.LABEL = ( nls.localizeWithPath(
561
+ 'vs/workbench/contrib/files/browser/fileActions',
562
+ 'globalCompareFile',
563
+ "Compare Active File With..."
564
+ )); }
390
565
  constructor() {
391
566
  super({
392
567
  id: GlobalCompareResourcesAction.ID,
@@ -419,7 +594,11 @@ class GlobalCompareResourcesAction extends Action2 {
419
594
  }
420
595
  class ToggleAutoSaveAction extends Action2 {
421
596
  static { this.ID = 'workbench.action.toggleAutoSave'; }
422
- static { this.LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'toggleAutoSave', "Toggle Auto Save"); }
597
+ static { this.LABEL = ( nls.localizeWithPath(
598
+ 'vs/workbench/contrib/files/browser/fileActions',
599
+ 'toggleAutoSave',
600
+ "Toggle Auto Save"
601
+ )); }
423
602
  constructor() {
424
603
  super({
425
604
  id: ToggleAutoSaveAction.ID,
@@ -469,7 +648,11 @@ BaseSaveAllAction = ( __decorate([
469
648
  ], BaseSaveAllAction));
470
649
  class SaveAllInGroupAction extends BaseSaveAllAction {
471
650
  static { this.ID = 'workbench.files.action.saveAllInGroup'; }
472
- static { this.LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'saveAllInGroup', "Save All in Group"); }
651
+ static { this.LABEL = ( nls.localizeWithPath(
652
+ 'vs/workbench/contrib/files/browser/fileActions',
653
+ 'saveAllInGroup',
654
+ "Save All in Group"
655
+ )); }
473
656
  get class() {
474
657
  return 'explorer-action ' + ThemeIcon.asClassName(Codicon.saveAll);
475
658
  }
@@ -479,7 +662,11 @@ class SaveAllInGroupAction extends BaseSaveAllAction {
479
662
  }
480
663
  let CloseGroupAction = class CloseGroupAction extends Action {
481
664
  static { this.ID = 'workbench.files.action.closeGroup'; }
482
- static { this.LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'closeGroup', "Close Group"); }
665
+ static { this.LABEL = ( nls.localizeWithPath(
666
+ 'vs/workbench/contrib/files/browser/fileActions',
667
+ 'closeGroup',
668
+ "Close Group"
669
+ )); }
483
670
  constructor(id, label, commandService) {
484
671
  super(id, label, ThemeIcon.asClassName(Codicon.closeAll));
485
672
  this.commandService = commandService;
@@ -493,7 +680,11 @@ CloseGroupAction = ( __decorate([
493
680
  ], CloseGroupAction));
494
681
  class FocusFilesExplorer extends Action2 {
495
682
  static { this.ID = 'workbench.files.action.focusFilesExplorer'; }
496
- static { this.LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'focusFilesExplorer', "Focus on Files Explorer"); }
683
+ static { this.LABEL = ( nls.localizeWithPath(
684
+ 'vs/workbench/contrib/files/browser/fileActions',
685
+ 'focusFilesExplorer',
686
+ "Focus on Files Explorer"
687
+ )); }
497
688
  constructor() {
498
689
  super({
499
690
  id: FocusFilesExplorer.ID,
@@ -509,7 +700,11 @@ class FocusFilesExplorer extends Action2 {
509
700
  }
510
701
  class ShowActiveFileInExplorer extends Action2 {
511
702
  static { this.ID = 'workbench.files.action.showActiveFileInExplorer'; }
512
- static { this.LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'showInExplorer', "Reveal Active File in Explorer View"); }
703
+ static { this.LABEL = ( nls.localizeWithPath(
704
+ 'vs/workbench/contrib/files/browser/fileActions',
705
+ 'showInExplorer',
706
+ "Reveal Active File in Explorer View"
707
+ )); }
513
708
  constructor() {
514
709
  super({
515
710
  id: ShowActiveFileInExplorer.ID,
@@ -529,7 +724,11 @@ class ShowActiveFileInExplorer extends Action2 {
529
724
  }
530
725
  class ShowOpenedFileInNewWindow extends Action2 {
531
726
  static { this.ID = 'workbench.action.files.showOpenedFileInNewWindow'; }
532
- static { this.LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'openFileInNewWindow', "Open Active File in New Window"); }
727
+ static { this.LABEL = ( nls.localizeWithPath(
728
+ 'vs/workbench/contrib/files/browser/fileActions',
729
+ 'openFileInNewWindow',
730
+ "Open Active File in New Window"
731
+ )); }
533
732
  constructor() {
534
733
  super({
535
734
  id: ShowOpenedFileInNewWindow.ID,
@@ -551,7 +750,11 @@ class ShowOpenedFileInNewWindow extends Action2 {
551
750
  hostService.openWindow([{ fileUri: fileResource }], { forceNewWindow: true });
552
751
  }
553
752
  else {
554
- dialogService.error(nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'openFileToShowInNewWindow.unsupportedschema', "The active editor must contain an openable resource."));
753
+ dialogService.error(( nls.localizeWithPath(
754
+ 'vs/workbench/contrib/files/browser/fileActions',
755
+ 'openFileToShowInNewWindow.unsupportedschema',
756
+ "The active editor must contain an openable resource."
757
+ )));
555
758
  }
556
759
  }
557
760
  }
@@ -560,13 +763,21 @@ function validateFileName(pathService, item, name, os) {
560
763
  name = getWellFormedFileName(name);
561
764
  if (!name || name.length === 0 || /^\s+$/.test(name)) {
562
765
  return {
563
- content: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'emptyFileNameError', "A file or folder name must be provided."),
766
+ content: ( nls.localizeWithPath(
767
+ 'vs/workbench/contrib/files/browser/fileActions',
768
+ 'emptyFileNameError',
769
+ "A file or folder name must be provided."
770
+ )),
564
771
  severity: Severity.Error
565
772
  };
566
773
  }
567
774
  if (name[0] === '/' || name[0] === '\\') {
568
775
  return {
569
- content: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'fileNameStartsWithSlashError', "A file or folder name cannot start with a slash."),
776
+ content: ( nls.localizeWithPath(
777
+ 'vs/workbench/contrib/files/browser/fileActions',
778
+ 'fileNameStartsWithSlashError',
779
+ "A file or folder name cannot start with a slash."
780
+ )),
570
781
  severity: Severity.Error
571
782
  };
572
783
  }
@@ -576,7 +787,12 @@ function validateFileName(pathService, item, name, os) {
576
787
  const child = parent?.getChild(name);
577
788
  if (child && child !== item) {
578
789
  return {
579
- content: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'fileNameExistsError', "A file or folder **{0}** already exists at this location. Please choose a different name.", name),
790
+ content: ( nls.localizeWithPath(
791
+ 'vs/workbench/contrib/files/browser/fileActions',
792
+ 'fileNameExistsError',
793
+ "A file or folder **{0}** already exists at this location. Please choose a different name.",
794
+ name
795
+ )),
580
796
  severity: Severity.Error
581
797
  };
582
798
  }
@@ -584,13 +800,22 @@ function validateFileName(pathService, item, name, os) {
584
800
  if (( names.some(folderName => !pathService.hasValidBasename(item.resource, os, folderName)))) {
585
801
  const escapedName = name.replace(/\*/g, '\\*');
586
802
  return {
587
- content: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'invalidFileNameError', "The name **{0}** is not valid as a file or folder name. Please choose a different name.", trimLongName(escapedName)),
803
+ content: ( nls.localizeWithPath(
804
+ 'vs/workbench/contrib/files/browser/fileActions',
805
+ 'invalidFileNameError',
806
+ "The name **{0}** is not valid as a file or folder name. Please choose a different name.",
807
+ trimLongName(escapedName)
808
+ )),
588
809
  severity: Severity.Error
589
810
  };
590
811
  }
591
812
  if (( names.some(name => /^\s|\s$/.test(name)))) {
592
813
  return {
593
- content: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'fileNameWhitespaceWarning', "Leading or trailing whitespace detected in file or folder name."),
814
+ content: ( nls.localizeWithPath(
815
+ 'vs/workbench/contrib/files/browser/fileActions',
816
+ 'fileNameWhitespaceWarning',
817
+ "Leading or trailing whitespace detected in file or folder name."
818
+ )),
594
819
  severity: Severity.Warning
595
820
  };
596
821
  }
@@ -613,7 +838,11 @@ function getWellFormedFileName(filename) {
613
838
  }
614
839
  class CompareNewUntitledTextFilesAction extends Action2 {
615
840
  static { this.ID = 'workbench.files.action.compareNewUntitledTextFiles'; }
616
- static { this.LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'compareNewUntitledTextFiles', "Compare New Untitled Text Files"); }
841
+ static { this.LABEL = ( nls.localizeWithPath(
842
+ 'vs/workbench/contrib/files/browser/fileActions',
843
+ 'compareNewUntitledTextFiles',
844
+ "Compare New Untitled Text Files"
845
+ )); }
617
846
  constructor() {
618
847
  super({
619
848
  id: CompareNewUntitledTextFilesAction.ID,
@@ -633,7 +862,11 @@ class CompareNewUntitledTextFilesAction extends Action2 {
633
862
  }
634
863
  class CompareWithClipboardAction extends Action2 {
635
864
  static { this.ID = 'workbench.files.action.compareWithClipboard'; }
636
- static { this.LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'compareWithClipboard', "Compare Active File with Clipboard"); }
865
+ static { this.LABEL = ( nls.localizeWithPath(
866
+ 'vs/workbench/contrib/files/browser/fileActions',
867
+ 'compareWithClipboard',
868
+ "Compare Active File with Clipboard"
869
+ )); }
637
870
  static { this.SCHEME_COUNTER = 0; }
638
871
  constructor() {
639
872
  super({
@@ -657,7 +890,12 @@ class CompareWithClipboardAction extends Action2 {
657
890
  this.registrationDisposal = textModelService.registerTextModelContentProvider(scheme, provider);
658
891
  }
659
892
  const name = resources.basename(resource);
660
- const editorLabel = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'clipboardComparisonLabel', "Clipboard ↔ {0}", name);
893
+ const editorLabel = ( nls.localizeWithPath(
894
+ 'vs/workbench/contrib/files/browser/fileActions',
895
+ 'clipboardComparisonLabel',
896
+ "Clipboard ↔ {0}",
897
+ name
898
+ ));
661
899
  await editorService.openEditor({
662
900
  original: { resource: resource.with({ scheme }) },
663
901
  modified: { resource: resource },
@@ -693,7 +931,7 @@ ClipboardContentProvider = ( __decorate([
693
931
  ], ClipboardContentProvider));
694
932
  function onErrorWithRetry(notificationService, error, retry) {
695
933
  notificationService.prompt(Severity.Error, toErrorMessage(error, false), [{
696
- label: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'retry', "Retry"),
934
+ label: ( nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'retry', "Retry")),
697
935
  run: () => retry()
698
936
  }]);
699
937
  }
@@ -740,8 +978,18 @@ async function openExplorerAndCreate(accessor, isFolder) {
740
978
  isFolder = true;
741
979
  }
742
980
  await explorerService.applyBulkEdit([( new ResourceFileEdit(undefined, resourceToCreate, { folder: isFolder }))], {
743
- undoLabel: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'createBulkEdit', "Create {0}", value),
744
- progressLabel: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'creatingBulkEdit', "Creating {0}", value),
981
+ undoLabel: ( nls.localizeWithPath(
982
+ 'vs/workbench/contrib/files/browser/fileActions',
983
+ 'createBulkEdit',
984
+ "Create {0}",
985
+ value
986
+ )),
987
+ progressLabel: ( nls.localizeWithPath(
988
+ 'vs/workbench/contrib/files/browser/fileActions',
989
+ 'creatingBulkEdit',
990
+ "Creating {0}",
991
+ value
992
+ )),
745
993
  confirmBeforeUndo: true
746
994
  });
747
995
  await refreshIfSeparator(value, explorerService);
@@ -802,8 +1050,20 @@ const renameHandler = async (accessor) => {
802
1050
  try {
803
1051
  await explorerService.applyBulkEdit([( new ResourceFileEdit(stat.resource, targetResource))], {
804
1052
  confirmBeforeUndo: configurationService.getValue().explorer.confirmUndo === "verbose" ,
805
- undoLabel: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'renameBulkEdit', "Rename {0} to {1}", stat.name, value),
806
- progressLabel: nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'renamingBulkEdit', "Renaming {0} to {1}", stat.name, value),
1053
+ undoLabel: ( nls.localizeWithPath(
1054
+ 'vs/workbench/contrib/files/browser/fileActions',
1055
+ 'renameBulkEdit',
1056
+ "Rename {0} to {1}",
1057
+ stat.name,
1058
+ value
1059
+ )),
1060
+ progressLabel: ( nls.localizeWithPath(
1061
+ 'vs/workbench/contrib/files/browser/fileActions',
1062
+ 'renamingBulkEdit',
1063
+ "Renaming {0} to {1}",
1064
+ stat.name,
1065
+ value
1066
+ )),
807
1067
  });
808
1068
  await refreshIfSeparator(value, explorerService);
809
1069
  }
@@ -925,10 +1185,30 @@ const pasteFileHandler = async (accessor) => {
925
1185
  const resourceFileEdits = ( sourceTargetPairs.map(pair => ( new ResourceFileEdit(pair.source, pair.target, { overwrite: incrementalNaming === 'disabled' }))));
926
1186
  const options = {
927
1187
  confirmBeforeUndo: configurationService.getValue().explorer.confirmUndo === "verbose" ,
928
- progressLabel: sourceTargetPairs.length > 1 ? nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'movingBulkEdit', comment: ['Placeholder will be replaced by the number of files being moved'] }, "Moving {0} files", sourceTargetPairs.length)
929
- : nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'movingFileBulkEdit', comment: ['Placeholder will be replaced by the name of the file moved.'] }, "Moving {0}", resources.basenameOrAuthority(sourceTargetPairs[0].target)),
930
- undoLabel: sourceTargetPairs.length > 1 ? nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'moveBulkEdit', comment: ['Placeholder will be replaced by the number of files being moved'] }, "Move {0} files", sourceTargetPairs.length)
931
- : nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'moveFileBulkEdit', comment: ['Placeholder will be replaced by the name of the file moved.'] }, "Move {0}", resources.basenameOrAuthority(sourceTargetPairs[0].target))
1188
+ progressLabel: sourceTargetPairs.length > 1 ? ( nls.localizeWithPath(
1189
+ 'vs/workbench/contrib/files/browser/fileActions',
1190
+ { key: 'movingBulkEdit', comment: ['Placeholder will be replaced by the number of files being moved'] },
1191
+ "Moving {0} files",
1192
+ sourceTargetPairs.length
1193
+ ))
1194
+ : ( nls.localizeWithPath(
1195
+ 'vs/workbench/contrib/files/browser/fileActions',
1196
+ { key: 'movingFileBulkEdit', comment: ['Placeholder will be replaced by the name of the file moved.'] },
1197
+ "Moving {0}",
1198
+ resources.basenameOrAuthority(sourceTargetPairs[0].target)
1199
+ )),
1200
+ undoLabel: sourceTargetPairs.length > 1 ? ( nls.localizeWithPath(
1201
+ 'vs/workbench/contrib/files/browser/fileActions',
1202
+ { key: 'moveBulkEdit', comment: ['Placeholder will be replaced by the number of files being moved'] },
1203
+ "Move {0} files",
1204
+ sourceTargetPairs.length
1205
+ ))
1206
+ : ( nls.localizeWithPath(
1207
+ 'vs/workbench/contrib/files/browser/fileActions',
1208
+ { key: 'moveFileBulkEdit', comment: ['Placeholder will be replaced by the name of the file moved.'] },
1209
+ "Move {0}",
1210
+ resources.basenameOrAuthority(sourceTargetPairs[0].target)
1211
+ ))
932
1212
  };
933
1213
  await explorerService.applyBulkEdit(resourceFileEdits, options);
934
1214
  }
@@ -941,10 +1221,30 @@ const pasteFileHandler = async (accessor) => {
941
1221
  const undoLevel = configurationService.getValue().explorer.confirmUndo;
942
1222
  const options = {
943
1223
  confirmBeforeUndo: undoLevel === "default" || undoLevel === "verbose" ,
944
- progressLabel: sourceTargetPairs.length > 1 ? nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'copyingBulkEdit', comment: ['Placeholder will be replaced by the number of files being copied'] }, "Copying {0} files", sourceTargetPairs.length)
945
- : nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'copyingFileBulkEdit', comment: ['Placeholder will be replaced by the name of the file copied.'] }, "Copying {0}", resources.basenameOrAuthority(sourceTargetPairs[0].target)),
946
- undoLabel: sourceTargetPairs.length > 1 ? nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'copyBulkEdit', comment: ['Placeholder will be replaced by the number of files being copied'] }, "Paste {0} files", sourceTargetPairs.length)
947
- : nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', { key: 'copyFileBulkEdit', comment: ['Placeholder will be replaced by the name of the file copied.'] }, "Paste {0}", resources.basenameOrAuthority(sourceTargetPairs[0].target))
1224
+ progressLabel: sourceTargetPairs.length > 1 ? ( nls.localizeWithPath(
1225
+ 'vs/workbench/contrib/files/browser/fileActions',
1226
+ { key: 'copyingBulkEdit', comment: ['Placeholder will be replaced by the number of files being copied'] },
1227
+ "Copying {0} files",
1228
+ sourceTargetPairs.length
1229
+ ))
1230
+ : ( nls.localizeWithPath(
1231
+ 'vs/workbench/contrib/files/browser/fileActions',
1232
+ { key: 'copyingFileBulkEdit', comment: ['Placeholder will be replaced by the name of the file copied.'] },
1233
+ "Copying {0}",
1234
+ resources.basenameOrAuthority(sourceTargetPairs[0].target)
1235
+ )),
1236
+ undoLabel: sourceTargetPairs.length > 1 ? ( nls.localizeWithPath(
1237
+ 'vs/workbench/contrib/files/browser/fileActions',
1238
+ { key: 'copyBulkEdit', comment: ['Placeholder will be replaced by the number of files being copied'] },
1239
+ "Paste {0} files",
1240
+ sourceTargetPairs.length
1241
+ ))
1242
+ : ( nls.localizeWithPath(
1243
+ 'vs/workbench/contrib/files/browser/fileActions',
1244
+ { key: 'copyFileBulkEdit', comment: ['Placeholder will be replaced by the name of the file copied.'] },
1245
+ "Paste {0}",
1246
+ resources.basenameOrAuthority(sourceTargetPairs[0].target)
1247
+ ))
948
1248
  };
949
1249
  await explorerService.applyBulkEdit(resourceFileEdits, options);
950
1250
  }
@@ -959,9 +1259,12 @@ const pasteFileHandler = async (accessor) => {
959
1259
  }
960
1260
  }
961
1261
  catch (e) {
962
- onError(notificationService, ( new Error(
963
- nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'fileDeleted', "The file(s) to paste have been deleted or moved since you copied them. {0}", getErrorMessage(e))
964
- )));
1262
+ onError(notificationService, ( new Error(( nls.localizeWithPath(
1263
+ 'vs/workbench/contrib/files/browser/fileActions',
1264
+ 'fileDeleted',
1265
+ "The file(s) to paste have been deleted or moved since you copied them. {0}",
1266
+ getErrorMessage(e)
1267
+ )))));
965
1268
  }
966
1269
  finally {
967
1270
  if (pasteShouldMove) {
@@ -1002,28 +1305,44 @@ class BaseSetActiveEditorReadonlyInSession extends Action2 {
1002
1305
  }
1003
1306
  class SetActiveEditorReadonlyInSession extends BaseSetActiveEditorReadonlyInSession {
1004
1307
  static { this.ID = 'workbench.action.files.setActiveEditorReadonlyInSession'; }
1005
- static { this.LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'setActiveEditorReadonlyInSession', "Set Active Editor Read-only in Session"); }
1308
+ static { this.LABEL = ( nls.localizeWithPath(
1309
+ 'vs/workbench/contrib/files/browser/fileActions',
1310
+ 'setActiveEditorReadonlyInSession',
1311
+ "Set Active Editor Read-only in Session"
1312
+ )); }
1006
1313
  constructor() {
1007
1314
  super(SetActiveEditorReadonlyInSession.ID, { value: SetActiveEditorReadonlyInSession.LABEL, original: 'Set Active Editor Readonly in Session' }, true);
1008
1315
  }
1009
1316
  }
1010
1317
  class SetActiveEditorWriteableInSession extends BaseSetActiveEditorReadonlyInSession {
1011
1318
  static { this.ID = 'workbench.action.files.setActiveEditorWriteableInSession'; }
1012
- static { this.LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'setActiveEditorWriteableInSession', "Set Active Editor Writeable in Session"); }
1319
+ static { this.LABEL = ( nls.localizeWithPath(
1320
+ 'vs/workbench/contrib/files/browser/fileActions',
1321
+ 'setActiveEditorWriteableInSession',
1322
+ "Set Active Editor Writeable in Session"
1323
+ )); }
1013
1324
  constructor() {
1014
1325
  super(SetActiveEditorWriteableInSession.ID, { value: SetActiveEditorWriteableInSession.LABEL, original: 'Set Active Editor Writeable in Session' }, false);
1015
1326
  }
1016
1327
  }
1017
1328
  class ToggleActiveEditorReadonlyInSession extends BaseSetActiveEditorReadonlyInSession {
1018
1329
  static { this.ID = 'workbench.action.files.toggleActiveEditorReadonlyInSession'; }
1019
- static { this.LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'toggleActiveEditorReadonlyInSession', "Toggle Active Editor Read-only in Session"); }
1330
+ static { this.LABEL = ( nls.localizeWithPath(
1331
+ 'vs/workbench/contrib/files/browser/fileActions',
1332
+ 'toggleActiveEditorReadonlyInSession',
1333
+ "Toggle Active Editor Read-only in Session"
1334
+ )); }
1020
1335
  constructor() {
1021
1336
  super(ToggleActiveEditorReadonlyInSession.ID, { value: ToggleActiveEditorReadonlyInSession.LABEL, original: 'Toggle Active Editor Readonly in Session' }, 'toggle');
1022
1337
  }
1023
1338
  }
1024
1339
  class ResetActiveEditorReadonlyInSession extends BaseSetActiveEditorReadonlyInSession {
1025
1340
  static { this.ID = 'workbench.action.files.resetActiveEditorReadonlyInSession'; }
1026
- static { this.LABEL = nls.localizeWithPath('vs/workbench/contrib/files/browser/fileActions', 'resetActiveEditorReadonlyInSession', "Reset Active Editor Read-only in Session"); }
1341
+ static { this.LABEL = ( nls.localizeWithPath(
1342
+ 'vs/workbench/contrib/files/browser/fileActions',
1343
+ 'resetActiveEditorReadonlyInSession',
1344
+ "Reset Active Editor Read-only in Session"
1345
+ )); }
1027
1346
  constructor() {
1028
1347
  super(ResetActiveEditorReadonlyInSession.ID, { value: ResetActiveEditorReadonlyInSession.LABEL, original: 'Reset Active Editor Readonly in Session' }, 'reset');
1029
1348
  }