@codingame/monaco-vscode-views-service-override 1.83.2 → 1.83.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/base/browser/ui/tree/treeDefaults.js +1 -1
- package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js +50 -179
- package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarActions.js +44 -21
- package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +12 -12
- package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.js +3 -3
- package/vscode/src/vs/workbench/browser/parts/compositeBar.js +2 -2
- package/vscode/src/vs/workbench/browser/parts/compositePart.js +4 -4
- package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsControl.js +24 -18
- package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsPicker.js +2 -2
- package/vscode/src/vs/workbench/browser/parts/editor/editorDropTarget.js +2 -6
- package/vscode/src/vs/workbench/browser/parts/editor/editorGroupView.js +5 -5
- package/vscode/src/vs/workbench/browser/parts/editor/editorGroupWatermark.js +12 -18
- package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +3 -3
- package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.js +3 -3
- package/vscode/src/vs/workbench/browser/parts/editor/multiEditorTabsControl.js +5 -2
- package/vscode/src/vs/workbench/browser/parts/panel/panelPart.js +16 -8
- package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +2 -2
- package/vscode/src/vs/workbench/browser/parts/views/treeView.js +20 -28
- package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +20 -24
- package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +6 -6
- package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +4 -4
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +10 -15
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsOutline.js +4 -2
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsTree.js +4 -9
- package/vscode/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.js +1 -1
- package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.js +8 -29
- package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +2 -2
- package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +12 -19
- package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +17 -55
- package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +110 -38
- package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +6 -11
- package/vscode/src/vs/workbench/contrib/files/browser/files.contribution2.js +463 -3
- package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +5 -11
- package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +4 -1
- package/vscode/src/vs/workbench/contrib/languageDetection/browser/languageDetection.contribution.js +6 -6
- package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.js +31 -23
- package/vscode/src/vs/workbench/contrib/outline/browser/outline.contribution.js +37 -76
- package/vscode/src/vs/workbench/contrib/outline/browser/outlinePane.js +4 -4
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +5 -21
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteIcons.js +17 -23
- package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +62 -117
- package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +18 -16
- package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +6 -6
- package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +4 -4
- package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.js +2 -2
- package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.js +5 -5
- package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js +2 -2
- package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.js +10 -25
- package/vscode/src/vs/workbench/services/history/browser/historyService.js +37 -28
- package/vscode/src/vs/workbench/services/hover/browser/hoverWidget.js +2 -2
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +2 -2
- package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.js +3 -3
- package/vscode/src/vs/workbench/services/views/common/viewContainerModel.js +2 -2
|
@@ -23,7 +23,7 @@ import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
|
|
|
23
23
|
import { generateUuid } from 'monaco-editor/esm/vs/base/common/uuid.js';
|
|
24
24
|
import './media/views.css.js';
|
|
25
25
|
import { VSDataTransfer } from 'monaco-editor/esm/vs/base/common/dataTransfer.js';
|
|
26
|
-
import {
|
|
26
|
+
import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
|
|
27
27
|
import { createActionViewItem, createAndFillInContextMenuActions } from 'monaco-editor/esm/vs/platform/actions/browser/menuEntryActionViewItem.js';
|
|
28
28
|
import { MenuRegistry, MenuId, registerAction2, Action2, IMenuService } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
|
|
29
29
|
import { CommandsRegistry, ICommandService } from 'monaco-editor/esm/vs/platform/commands/common/commands.js';
|
|
@@ -158,10 +158,7 @@ function isTreeCommandEnabled(treeCommand, contextKeyService) {
|
|
|
158
158
|
function isRenderedMessageValue(messageValue) {
|
|
159
159
|
return !!messageValue && typeof messageValue !== 'string' && 'element' in messageValue && 'dispose' in messageValue;
|
|
160
160
|
}
|
|
161
|
-
const noDataProviderMessage = (
|
|
162
|
-
'no-dataprovider',
|
|
163
|
-
"There is no data provider registered that can provide view data."
|
|
164
|
-
));
|
|
161
|
+
const noDataProviderMessage = localizeWithPath('vs/workbench/browser/parts/views/treeView', 'no-dataprovider', "There is no data provider registered that can provide view data.");
|
|
165
162
|
const RawCustomTreeViewContextKey = ( new RawContextKey('customTreeView', false));
|
|
166
163
|
class Tree extends WorkbenchAsyncDataTree {
|
|
167
164
|
}
|
|
@@ -390,11 +387,11 @@ let AbstractTreeView = class AbstractTreeView extends Disposable {
|
|
|
390
387
|
}
|
|
391
388
|
initializeShowCollapseAllAction(startingValue = false) {
|
|
392
389
|
if (!this.collapseAllContext) {
|
|
393
|
-
this.collapseAllContextKey = ( new RawContextKey(
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
this.id
|
|
397
|
-
))
|
|
390
|
+
this.collapseAllContextKey = ( new RawContextKey(
|
|
391
|
+
`treeView.${this.id}.enableCollapseAll`,
|
|
392
|
+
startingValue,
|
|
393
|
+
localizeWithPath('vs/workbench/browser/parts/views/treeView', 'treeView.enableCollapseAll', "Whether the the tree view with id {0} enables collapse all.", this.id)
|
|
394
|
+
));
|
|
398
395
|
this.collapseAllContext = this.collapseAllContextKey.bindTo(this.contextKeyService);
|
|
399
396
|
}
|
|
400
397
|
return true;
|
|
@@ -409,11 +406,11 @@ let AbstractTreeView = class AbstractTreeView extends Disposable {
|
|
|
409
406
|
}
|
|
410
407
|
initializeShowRefreshAction(startingValue = false) {
|
|
411
408
|
if (!this.refreshContext) {
|
|
412
|
-
this.refreshContextKey = ( new RawContextKey(
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
this.id
|
|
416
|
-
))
|
|
409
|
+
this.refreshContextKey = ( new RawContextKey(
|
|
410
|
+
`treeView.${this.id}.enableRefresh`,
|
|
411
|
+
startingValue,
|
|
412
|
+
localizeWithPath('vs/workbench/browser/parts/views/treeView', 'treeView.enableRefresh', "Whether the tree view with id {0} enables refresh.", this.id)
|
|
413
|
+
));
|
|
417
414
|
this.refreshContext = this.refreshContextKey.bindTo(this.contextKeyService);
|
|
418
415
|
}
|
|
419
416
|
}
|
|
@@ -431,7 +428,7 @@ let AbstractTreeView = class AbstractTreeView extends Disposable {
|
|
|
431
428
|
constructor() {
|
|
432
429
|
super({
|
|
433
430
|
id: `workbench.actions.treeView.${that.id}.refresh`,
|
|
434
|
-
title: (
|
|
431
|
+
title: localizeWithPath('vs/workbench/browser/parts/views/treeView', 'refresh', "Refresh"),
|
|
435
432
|
menu: {
|
|
436
433
|
id: MenuId.ViewTitle,
|
|
437
434
|
when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', that.id)), that.refreshContextKey)),
|
|
@@ -449,7 +446,7 @@ let AbstractTreeView = class AbstractTreeView extends Disposable {
|
|
|
449
446
|
constructor() {
|
|
450
447
|
super({
|
|
451
448
|
id: `workbench.actions.treeView.${that.id}.collapseAll`,
|
|
452
|
-
title: (
|
|
449
|
+
title: localizeWithPath('vs/workbench/browser/parts/views/treeView', 'collapseAll', "Collapse All"),
|
|
453
450
|
menu: {
|
|
454
451
|
id: MenuId.ViewTitle,
|
|
455
452
|
when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', that.id)), that.collapseAllContextKey)),
|
|
@@ -844,11 +841,11 @@ let AbstractTreeView = class AbstractTreeView extends Disposable {
|
|
|
844
841
|
}
|
|
845
842
|
initializeCollapseAllToggle() {
|
|
846
843
|
if (!this.collapseAllToggleContext) {
|
|
847
|
-
this.collapseAllToggleContextKey = ( new RawContextKey(
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
this.id
|
|
851
|
-
))
|
|
844
|
+
this.collapseAllToggleContextKey = ( new RawContextKey(
|
|
845
|
+
`treeView.${this.id}.toggleCollapseAll`,
|
|
846
|
+
false,
|
|
847
|
+
localizeWithPath('vs/workbench/browser/parts/views/treeView', 'treeView.toggleCollapseAll', "Whether collapse all is toggled for the tree view with id {0}.", this.id)
|
|
848
|
+
));
|
|
852
849
|
this.collapseAllToggleContext = this.collapseAllToggleContextKey.bindTo(this.contextKeyService);
|
|
853
850
|
}
|
|
854
851
|
}
|
|
@@ -1299,12 +1296,7 @@ class MultipleSelectionActionRunner extends ActionRunner {
|
|
|
1299
1296
|
this.getSelectedResources = getSelectedResources;
|
|
1300
1297
|
this._register(this.onDidRun(e => {
|
|
1301
1298
|
if (e.error && !isCancellationError(e.error)) {
|
|
1302
|
-
notificationService.error((
|
|
1303
|
-
'command-error',
|
|
1304
|
-
'Error running command {1}: {0}. This is likely caused by the extension that contributes {1}.',
|
|
1305
|
-
e.error.message,
|
|
1306
|
-
e.action.id
|
|
1307
|
-
)));
|
|
1299
|
+
notificationService.error(localizeWithPath('vs/workbench/browser/parts/views/treeView', 'command-error', 'Error running command {1}: {0}. This is likely caused by the extension that contributes {1}.', e.error.message, e.action.id));
|
|
1308
1300
|
}
|
|
1309
1301
|
}));
|
|
1310
1302
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
|
|
3
3
|
import { CallHierarchyProviderRegistry, CallHierarchyModel } from 'vscode/vscode/vs/workbench/contrib/callHierarchy/common/callHierarchy';
|
|
4
4
|
import { CancellationTokenSource } from 'monaco-editor/esm/vs/base/common/cancellation.js';
|
|
5
5
|
import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
|
|
@@ -19,18 +19,20 @@ import { registerIcon } from 'monaco-editor/esm/vs/platform/theme/common/iconReg
|
|
|
19
19
|
import { isCancellationError } from 'monaco-editor/esm/vs/base/common/errors.js';
|
|
20
20
|
|
|
21
21
|
var CallHierarchyController_1;
|
|
22
|
-
const _ctxHasCallHierarchyProvider = ( new RawContextKey(
|
|
22
|
+
const _ctxHasCallHierarchyProvider = ( new RawContextKey(
|
|
23
23
|
'editorHasCallHierarchyProvider',
|
|
24
|
-
|
|
25
|
-
)
|
|
26
|
-
|
|
24
|
+
false,
|
|
25
|
+
localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution', 'editorHasCallHierarchyProvider', 'Whether a call hierarchy provider is available')
|
|
26
|
+
));
|
|
27
|
+
const _ctxCallHierarchyVisible = ( new RawContextKey(
|
|
28
|
+
'callHierarchyVisible',
|
|
29
|
+
false,
|
|
30
|
+
localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution', 'callHierarchyVisible', 'Whether call hierarchy peek is currently showing')
|
|
31
|
+
));
|
|
27
32
|
const _ctxCallHierarchyDirection = ( new RawContextKey(
|
|
28
33
|
'callHierarchyDirection',
|
|
29
34
|
undefined,
|
|
30
|
-
{ type: 'string', description: (
|
|
31
|
-
'callHierarchyDirection',
|
|
32
|
-
'Whether call hierarchy shows incoming or outgoing calls'
|
|
33
|
-
)) }
|
|
35
|
+
{ type: 'string', description: localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution', 'callHierarchyDirection', 'Whether call hierarchy shows incoming or outgoing calls') }
|
|
34
36
|
));
|
|
35
37
|
function sanitizedDirection(candidate) {
|
|
36
38
|
return candidate === "outgoingCalls" || candidate === "incomingCalls"
|
|
@@ -118,14 +120,14 @@ let CallHierarchyController = class CallHierarchyController {
|
|
|
118
120
|
this._widget.showModel(model);
|
|
119
121
|
}
|
|
120
122
|
else {
|
|
121
|
-
this._widget.showMessage((
|
|
123
|
+
this._widget.showMessage(localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution', 'no.item', "No results"));
|
|
122
124
|
}
|
|
123
125
|
}).catch(err => {
|
|
124
126
|
if (isCancellationError(err)) {
|
|
125
127
|
this.endCallHierarchy();
|
|
126
128
|
return;
|
|
127
129
|
}
|
|
128
|
-
this._widget.showMessage((
|
|
130
|
+
this._widget.showMessage(localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution', 'error', "Failed to show call hierarchy"));
|
|
129
131
|
});
|
|
130
132
|
}
|
|
131
133
|
showOutgoingCalls() {
|
|
@@ -153,7 +155,7 @@ registerAction2(class PeekCallHierarchyAction extends EditorAction2 {
|
|
|
153
155
|
constructor() {
|
|
154
156
|
super({
|
|
155
157
|
id: 'editor.showCallHierarchy',
|
|
156
|
-
title: { value: (
|
|
158
|
+
title: { value: localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution', 'title', "Peek Call Hierarchy"), original: 'Peek Call Hierarchy' },
|
|
157
159
|
menu: {
|
|
158
160
|
id: MenuId.EditorContextPeek,
|
|
159
161
|
group: 'navigation',
|
|
@@ -177,11 +179,8 @@ registerAction2(class extends EditorAction2 {
|
|
|
177
179
|
constructor() {
|
|
178
180
|
super({
|
|
179
181
|
id: 'editor.showIncomingCalls',
|
|
180
|
-
title: { value: (
|
|
181
|
-
icon: registerIcon('callhierarchy-incoming', Codicon.callIncoming, (
|
|
182
|
-
'showIncomingCallsIcons',
|
|
183
|
-
'Icon for incoming calls in the call hierarchy view.'
|
|
184
|
-
))),
|
|
182
|
+
title: { value: localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution', 'title.incoming', "Show Incoming Calls"), original: 'Show Incoming Calls' },
|
|
183
|
+
icon: registerIcon('callhierarchy-incoming', Codicon.callIncoming, localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution', 'showIncomingCallsIcons', 'Icon for incoming calls in the call hierarchy view.')),
|
|
185
184
|
precondition: ( ContextKeyExpr.and(_ctxCallHierarchyVisible, ( _ctxCallHierarchyDirection.isEqualTo("outgoingCalls" )))),
|
|
186
185
|
keybinding: {
|
|
187
186
|
weight: 200 ,
|
|
@@ -202,11 +201,8 @@ registerAction2(class extends EditorAction2 {
|
|
|
202
201
|
constructor() {
|
|
203
202
|
super({
|
|
204
203
|
id: 'editor.showOutgoingCalls',
|
|
205
|
-
title: { value: (
|
|
206
|
-
icon: registerIcon('callhierarchy-outgoing', Codicon.callOutgoing, (
|
|
207
|
-
'showOutgoingCallsIcon',
|
|
208
|
-
'Icon for outgoing calls in the call hierarchy view.'
|
|
209
|
-
))),
|
|
204
|
+
title: { value: localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution', 'title.outgoing', "Show Outgoing Calls"), original: 'Show Outgoing Calls' },
|
|
205
|
+
icon: registerIcon('callhierarchy-outgoing', Codicon.callOutgoing, localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution', 'showOutgoingCallsIcon', 'Icon for outgoing calls in the call hierarchy view.')),
|
|
210
206
|
precondition: ( ContextKeyExpr.and(_ctxCallHierarchyVisible, ( _ctxCallHierarchyDirection.isEqualTo("incomingCalls" )))),
|
|
211
207
|
keybinding: {
|
|
212
208
|
weight: 200 ,
|
|
@@ -227,7 +223,7 @@ registerAction2(class extends EditorAction2 {
|
|
|
227
223
|
constructor() {
|
|
228
224
|
super({
|
|
229
225
|
id: 'editor.refocusCallHierarchy',
|
|
230
|
-
title: { value: (
|
|
226
|
+
title: { value: localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution', 'title.refocus', "Refocus Call Hierarchy"), original: 'Refocus Call Hierarchy' },
|
|
231
227
|
precondition: _ctxCallHierarchyVisible,
|
|
232
228
|
keybinding: {
|
|
233
229
|
weight: 200 ,
|
|
@@ -243,7 +239,7 @@ registerAction2(class extends EditorAction2 {
|
|
|
243
239
|
constructor() {
|
|
244
240
|
super({
|
|
245
241
|
id: 'editor.closeCallHierarchy',
|
|
246
|
-
title: (
|
|
242
|
+
title: localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution', 'close', 'Close'),
|
|
247
243
|
icon: Codicon.close,
|
|
248
244
|
precondition: _ctxCallHierarchyVisible,
|
|
249
245
|
keybinding: {
|
|
@@ -4,7 +4,7 @@ import * as peekView from 'monaco-editor/esm/vs/editor/contrib/peekView/browser/
|
|
|
4
4
|
import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
|
|
5
5
|
import { WorkbenchAsyncDataTree } from 'monaco-editor/esm/vs/platform/list/browser/listService.js';
|
|
6
6
|
import { VirtualDelegate, CallRenderer, DataSource, Sorter, AccessibilityProvider, IdentityProvider } from './callHierarchyTree.js';
|
|
7
|
-
import {
|
|
7
|
+
import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
|
|
8
8
|
import { Range } from 'monaco-editor/esm/vs/editor/common/core/range.js';
|
|
9
9
|
import { SplitView, Sizing } from 'monaco-editor/esm/vs/base/browser/ui/splitview/splitview.js';
|
|
10
10
|
import { Dimension } from 'monaco-editor/esm/vs/base/browser/dom.js';
|
|
@@ -255,13 +255,13 @@ let CallHierarchyTreePeekWidget = class CallHierarchyTreePeekWidget extends peek
|
|
|
255
255
|
}
|
|
256
256
|
this._previewDisposable.add(value);
|
|
257
257
|
const title = this._direction === "outgoingCalls"
|
|
258
|
-
? (
|
|
259
|
-
: (
|
|
258
|
+
? localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek', 'callFrom', "Calls from '{0}'", element.model.root.name)
|
|
259
|
+
: localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek', 'callsTo', "Callers of '{0}'", element.model.root.name);
|
|
260
260
|
this.setTitle(title);
|
|
261
261
|
}
|
|
262
262
|
showLoading() {
|
|
263
263
|
this._parent.dataset['state'] = "loading" ;
|
|
264
|
-
this.setTitle((
|
|
264
|
+
this.setTitle(localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek', 'title.loading', "Loading..."));
|
|
265
265
|
this._show();
|
|
266
266
|
}
|
|
267
267
|
showMessage(message) {
|
|
@@ -280,8 +280,8 @@ let CallHierarchyTreePeekWidget = class CallHierarchyTreePeekWidget extends peek
|
|
|
280
280
|
await this._tree.expand(root.element);
|
|
281
281
|
if (root.children.length === 0) {
|
|
282
282
|
this.showMessage(this._direction === "outgoingCalls"
|
|
283
|
-
? (
|
|
284
|
-
: (
|
|
283
|
+
? localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek', 'empt.callsFrom', "No calls from '{0}'", model.root.name)
|
|
284
|
+
: localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek', 'empt.callsTo', "No callers of '{0}'", model.root.name));
|
|
285
285
|
}
|
|
286
286
|
else {
|
|
287
287
|
this._parent.dataset['state'] = "data" ;
|
|
@@ -5,7 +5,7 @@ import { IconLabel } from 'monaco-editor/esm/vs/base/browser/ui/iconLabel/iconLa
|
|
|
5
5
|
import { SymbolKinds } from 'monaco-editor/esm/vs/editor/common/languages.js';
|
|
6
6
|
import { compare } from 'monaco-editor/esm/vs/base/common/strings.js';
|
|
7
7
|
import { Range } from 'monaco-editor/esm/vs/editor/common/core/range.js';
|
|
8
|
-
import {
|
|
8
|
+
import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
|
|
9
9
|
import { ThemeIcon } from 'monaco-editor/esm/vs/base/common/themables.js';
|
|
10
10
|
|
|
11
11
|
class Call {
|
|
@@ -106,14 +106,14 @@ class AccessibilityProvider {
|
|
|
106
106
|
this.getDirection = getDirection;
|
|
107
107
|
}
|
|
108
108
|
getWidgetAriaLabel() {
|
|
109
|
-
return (
|
|
109
|
+
return localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchyTree', 'tree.aria', "Call Hierarchy");
|
|
110
110
|
}
|
|
111
111
|
getAriaLabel(element) {
|
|
112
112
|
if (this.getDirection() === "outgoingCalls" ) {
|
|
113
|
-
return (
|
|
113
|
+
return localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchyTree', 'from', "calls from {0}", element.item.name);
|
|
114
114
|
}
|
|
115
115
|
else {
|
|
116
|
-
return (
|
|
116
|
+
return localizeWithPath('vs/workbench/contrib/callHierarchy/browser/callHierarchyTree', 'to', "callers of {0}", element.item.name);
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
}
|
|
@@ -15,11 +15,11 @@ import { defaultInputBoxStyles, defaultToggleStyles } from 'monaco-editor/esm/vs
|
|
|
15
15
|
import { Sash } from 'monaco-editor/esm/vs/base/browser/ui/sash/sash.js';
|
|
16
16
|
import { registerColor } from 'monaco-editor/esm/vs/platform/theme/common/colorRegistry.js';
|
|
17
17
|
|
|
18
|
-
const NLS_FIND_INPUT_LABEL =
|
|
19
|
-
const NLS_FIND_INPUT_PLACEHOLDER =
|
|
20
|
-
const NLS_PREVIOUS_MATCH_BTN_LABEL =
|
|
21
|
-
const NLS_NEXT_MATCH_BTN_LABEL =
|
|
22
|
-
const NLS_CLOSE_BTN_LABEL =
|
|
18
|
+
const NLS_FIND_INPUT_LABEL = nls.localizeWithPath('vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget', 'label.find', "Find");
|
|
19
|
+
const NLS_FIND_INPUT_PLACEHOLDER = nls.localizeWithPath('vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget', 'placeholder.find', "Find (\u21C5 for history)");
|
|
20
|
+
const NLS_PREVIOUS_MATCH_BTN_LABEL = nls.localizeWithPath('vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget', 'label.previousMatchButton', "Previous Match");
|
|
21
|
+
const NLS_NEXT_MATCH_BTN_LABEL = nls.localizeWithPath('vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget', 'label.nextMatchButton', "Next Match");
|
|
22
|
+
const NLS_CLOSE_BTN_LABEL = nls.localizeWithPath('vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget', 'label.closeButton', "Close");
|
|
23
23
|
const SIMPLE_FIND_WIDGET_INITIAL_WIDTH = 310;
|
|
24
24
|
const MATCHES_COUNT_WIDTH = 73;
|
|
25
25
|
class SimpleFindWidget extends Widget {
|
|
@@ -323,22 +323,17 @@ class SimpleFindWidget extends Widget {
|
|
|
323
323
|
}
|
|
324
324
|
_announceSearchResults(label, searchString) {
|
|
325
325
|
if (!searchString) {
|
|
326
|
-
return
|
|
326
|
+
return nls.localizeWithPath('vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget', 'ariaSearchNoInput', "Enter search input");
|
|
327
327
|
}
|
|
328
328
|
if (label === NLS_NO_RESULTS) {
|
|
329
329
|
return searchString === ''
|
|
330
|
-
?
|
|
331
|
-
:
|
|
330
|
+
? nls.localizeWithPath('vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget', 'ariaSearchNoResultEmpty', "{0} found", label)
|
|
331
|
+
: nls.localizeWithPath('vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget', 'ariaSearchNoResult', "{0} found for '{1}'", label, searchString);
|
|
332
332
|
}
|
|
333
|
-
return
|
|
334
|
-
'ariaSearchNoResultWithLineNumNoCurrentMatch',
|
|
335
|
-
"{0} found for '{1}'",
|
|
336
|
-
label,
|
|
337
|
-
searchString
|
|
338
|
-
));
|
|
333
|
+
return nls.localizeWithPath('vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget', 'ariaSearchNoResultWithLineNumNoCurrentMatch', "{0} found for '{1}'", label, searchString);
|
|
339
334
|
}
|
|
340
335
|
}
|
|
341
|
-
const simpleFindWidgetSashBorder = registerColor('simpleFindWidget.sashBorder', { dark: '#454545', light: '#C8C8C8', hcDark: '#6FC3DF', hcLight: '#0F4A85' },
|
|
336
|
+
const simpleFindWidgetSashBorder = registerColor('simpleFindWidget.sashBorder', { dark: '#454545', light: '#C8C8C8', hcDark: '#6FC3DF', hcLight: '#0F4A85' }, nls.localizeWithPath('vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget', 'simpleFindWidget.sashBorder', 'Border color of the sash border.'));
|
|
342
337
|
registerThemingParticipant((theme, collector) => {
|
|
343
338
|
const resizeBorderBackground = theme.getColor(simpleFindWidgetSashBorder);
|
|
344
339
|
collector.addRule(`.monaco-workbench .simple-find-part .monaco-sash { background-color: ${resizeBorderBackground}; border-color: ${resizeBorderBackground} }`);
|
package/vscode/src/vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsOutline.js
CHANGED
|
@@ -15,7 +15,7 @@ import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiati
|
|
|
15
15
|
import { Range } from 'monaco-editor/esm/vs/editor/common/core/range.js';
|
|
16
16
|
import { ICodeEditorService } from 'monaco-editor/esm/vs/editor/browser/services/codeEditorService.js';
|
|
17
17
|
import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
|
|
18
|
-
import {
|
|
18
|
+
import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
|
|
19
19
|
import { IMarkerDecorationsService } from 'monaco-editor/esm/vs/editor/common/services/markerDecorations.js';
|
|
20
20
|
import { MarkerSeverity } from 'monaco-editor/esm/vs/platform/markers/common/markers.js';
|
|
21
21
|
import { isEqual } from 'monaco-editor/esm/vs/base/common/resources.js';
|
|
@@ -127,7 +127,9 @@ let DocumentSymbolsOutline = class DocumentSymbolsOutline {
|
|
|
127
127
|
multipleSelectionSupport: false,
|
|
128
128
|
identityProvider: ( new DocumentSymbolIdentityProvider()),
|
|
129
129
|
keyboardNavigationLabelProvider: ( new DocumentSymbolNavigationLabelProvider()),
|
|
130
|
-
accessibilityProvider: ( new DocumentSymbolAccessibilityProvider(
|
|
130
|
+
accessibilityProvider: ( new DocumentSymbolAccessibilityProvider(
|
|
131
|
+
localizeWithPath('vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsOutline', 'document', "Document Symbols")
|
|
132
|
+
)),
|
|
131
133
|
filter: target === 1
|
|
132
134
|
? instantiationService.createInstance(DocumentSymbolFilter, 'outline')
|
|
133
135
|
: target === 2
|
|
@@ -6,7 +6,7 @@ import { createMatches } from 'monaco-editor/esm/vs/base/common/filters.js';
|
|
|
6
6
|
import { Range } from 'monaco-editor/esm/vs/editor/common/core/range.js';
|
|
7
7
|
import { symbolKindNames, SymbolKinds, getAriaLabelForSymbol } from 'monaco-editor/esm/vs/editor/common/languages.js';
|
|
8
8
|
import { OutlineModel, OutlineElement, OutlineGroup } from 'monaco-editor/esm/vs/editor/contrib/documentSymbols/browser/outlineModel.js';
|
|
9
|
-
import {
|
|
9
|
+
import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
|
|
10
10
|
import { IconLabel } from 'monaco-editor/esm/vs/base/browser/ui/iconLabel/iconLabel.js';
|
|
11
11
|
import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
|
|
12
12
|
import { MarkerSeverity } from 'monaco-editor/esm/vs/platform/markers/common/markers.js';
|
|
@@ -113,12 +113,7 @@ let DocumentSymbolRenderer = class DocumentSymbolRenderer {
|
|
|
113
113
|
matches: createMatches(node.filterData),
|
|
114
114
|
labelEscapeNewLines: true,
|
|
115
115
|
extraClasses,
|
|
116
|
-
title: (
|
|
117
|
-
'title.template',
|
|
118
|
-
"{0} ({1})",
|
|
119
|
-
element.symbol.name,
|
|
120
|
-
symbolKindNames[element.symbol.kind]
|
|
121
|
-
))
|
|
116
|
+
title: localizeWithPath('vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsTree', 'title.template', "{0} ({1})", element.symbol.name, symbolKindNames[element.symbol.kind])
|
|
122
117
|
};
|
|
123
118
|
if (this._configurationService.getValue("outline.icons" )) {
|
|
124
119
|
template.iconClass.className = '';
|
|
@@ -155,14 +150,14 @@ let DocumentSymbolRenderer = class DocumentSymbolRenderer {
|
|
|
155
150
|
dom.show(template.decoration);
|
|
156
151
|
template.decoration.classList.remove('bubble');
|
|
157
152
|
template.decoration.innerText = count < 10 ? ( count.toString()) : '+9';
|
|
158
|
-
template.decoration.title = count === 1 ? (
|
|
153
|
+
template.decoration.title = count === 1 ? localizeWithPath('vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsTree', '1.problem', "1 problem in this element") : localizeWithPath('vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsTree', 'N.problem', "{0} problems in this element", count);
|
|
159
154
|
template.decoration.style.setProperty('--outline-element-color', cssColor);
|
|
160
155
|
}
|
|
161
156
|
else {
|
|
162
157
|
dom.show(template.decoration);
|
|
163
158
|
template.decoration.classList.add('bubble');
|
|
164
159
|
template.decoration.innerText = '\uea71';
|
|
165
|
-
template.decoration.title = (
|
|
160
|
+
template.decoration.title = localizeWithPath('vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsTree', 'deep.problem', "Contains elements with problems");
|
|
166
161
|
template.decoration.style.setProperty('--outline-element-color', cssColor);
|
|
167
162
|
}
|
|
168
163
|
}
|
|
@@ -30,7 +30,7 @@ class ContributedCustomEditors extends Disposable {
|
|
|
30
30
|
this.add(( new CustomEditorInfo({
|
|
31
31
|
id: webviewEditorContribution.viewType,
|
|
32
32
|
displayName: webviewEditorContribution.displayName,
|
|
33
|
-
providerDisplayName: extension.description.isBuiltin ?
|
|
33
|
+
providerDisplayName: extension.description.isBuiltin ? nls.localizeWithPath('vs/workbench/contrib/customEditor/common/contributedCustomEditors', 'builtinProviderDisplayName', "Built-in") : extension.description.displayName || extension.description.identifier.value,
|
|
34
34
|
selector: webviewEditorContribution.selector || [],
|
|
35
35
|
priority: getPriorityFromContribution(webviewEditorContribution, extension.description),
|
|
36
36
|
})));
|
|
@@ -9,7 +9,7 @@ const Fields = ( Object.freeze({
|
|
|
9
9
|
priority: 'priority',
|
|
10
10
|
}));
|
|
11
11
|
const CustomEditorsContribution = {
|
|
12
|
-
description:
|
|
12
|
+
description: nls.localizeWithPath('vs/workbench/contrib/customEditor/common/extensionPoint', 'contributes.customEditors', 'Contributed custom editors.'),
|
|
13
13
|
type: 'array',
|
|
14
14
|
defaultSnippets: [{
|
|
15
15
|
body: [{
|
|
@@ -30,24 +30,15 @@ const CustomEditorsContribution = {
|
|
|
30
30
|
properties: {
|
|
31
31
|
[Fields.viewType]: {
|
|
32
32
|
type: 'string',
|
|
33
|
-
markdownDescription: (
|
|
34
|
-
'contributes.viewType',
|
|
35
|
-
'Identifier for the custom editor. This must be unique across all custom editors, so we recommend including your extension id as part of `viewType`. The `viewType` is used when registering custom editors with `vscode.registerCustomEditorProvider` and in the `onCustomEditor:${id}` [activation event](https://code.visualstudio.com/api/references/activation-events).'
|
|
36
|
-
)),
|
|
33
|
+
markdownDescription: nls.localizeWithPath('vs/workbench/contrib/customEditor/common/extensionPoint', 'contributes.viewType', 'Identifier for the custom editor. This must be unique across all custom editors, so we recommend including your extension id as part of `viewType`. The `viewType` is used when registering custom editors with `vscode.registerCustomEditorProvider` and in the `onCustomEditor:${id}` [activation event](https://code.visualstudio.com/api/references/activation-events).'),
|
|
37
34
|
},
|
|
38
35
|
[Fields.displayName]: {
|
|
39
36
|
type: 'string',
|
|
40
|
-
description: (
|
|
41
|
-
'contributes.displayName',
|
|
42
|
-
'Human readable name of the custom editor. This is displayed to users when selecting which editor to use.'
|
|
43
|
-
)),
|
|
37
|
+
description: nls.localizeWithPath('vs/workbench/contrib/customEditor/common/extensionPoint', 'contributes.displayName', 'Human readable name of the custom editor. This is displayed to users when selecting which editor to use.'),
|
|
44
38
|
},
|
|
45
39
|
[Fields.selector]: {
|
|
46
40
|
type: 'array',
|
|
47
|
-
description: (
|
|
48
|
-
'contributes.selector',
|
|
49
|
-
'Set of globs that the custom editor is enabled for.'
|
|
50
|
-
)),
|
|
41
|
+
description: nls.localizeWithPath('vs/workbench/contrib/customEditor/common/extensionPoint', 'contributes.selector', 'Set of globs that the custom editor is enabled for.'),
|
|
51
42
|
items: {
|
|
52
43
|
type: 'object',
|
|
53
44
|
defaultSnippets: [{
|
|
@@ -58,33 +49,21 @@ const CustomEditorsContribution = {
|
|
|
58
49
|
properties: {
|
|
59
50
|
filenamePattern: {
|
|
60
51
|
type: 'string',
|
|
61
|
-
description: (
|
|
62
|
-
'contributes.selector.filenamePattern',
|
|
63
|
-
'Glob that the custom editor is enabled for.'
|
|
64
|
-
)),
|
|
52
|
+
description: nls.localizeWithPath('vs/workbench/contrib/customEditor/common/extensionPoint', 'contributes.selector.filenamePattern', 'Glob that the custom editor is enabled for.'),
|
|
65
53
|
},
|
|
66
54
|
}
|
|
67
55
|
}
|
|
68
56
|
},
|
|
69
57
|
[Fields.priority]: {
|
|
70
58
|
type: 'string',
|
|
71
|
-
markdownDeprecationMessage: (
|
|
72
|
-
'contributes.priority',
|
|
73
|
-
'Controls if the custom editor is enabled automatically when the user opens a file. This may be overridden by users using the `workbench.editorAssociations` setting.'
|
|
74
|
-
)),
|
|
59
|
+
markdownDeprecationMessage: nls.localizeWithPath('vs/workbench/contrib/customEditor/common/extensionPoint', 'contributes.priority', 'Controls if the custom editor is enabled automatically when the user opens a file. This may be overridden by users using the `workbench.editorAssociations` setting.'),
|
|
75
60
|
enum: [
|
|
76
61
|
"default" ,
|
|
77
62
|
"option" ,
|
|
78
63
|
],
|
|
79
64
|
markdownEnumDescriptions: [
|
|
80
|
-
(
|
|
81
|
-
|
|
82
|
-
'The editor is automatically used when the user opens a resource, provided that no other default custom editors are registered for that resource.'
|
|
83
|
-
)),
|
|
84
|
-
( nls.localize(
|
|
85
|
-
'contributes.priority.option',
|
|
86
|
-
'The editor is not automatically used when the user opens a resource, but a user can switch to the editor using the `Reopen With` command.'
|
|
87
|
-
)),
|
|
65
|
+
nls.localizeWithPath('vs/workbench/contrib/customEditor/common/extensionPoint', 'contributes.priority.default', 'The editor is automatically used when the user opens a resource, provided that no other default custom editors are registered for that resource.'),
|
|
66
|
+
nls.localizeWithPath('vs/workbench/contrib/customEditor/common/extensionPoint', 'contributes.priority.option', 'The editor is not automatically used when the user opens a resource, but a user can switch to the editor using the `Reopen With` command.'),
|
|
88
67
|
],
|
|
89
68
|
default: 'default'
|
|
90
69
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
|
|
3
3
|
import { BaseBinaryResourceEditor } from 'vscode/vscode/vs/workbench/browser/parts/editor/binaryEditor';
|
|
4
4
|
import { ITelemetryService } from 'monaco-editor/esm/vs/platform/telemetry/common/telemetry.js';
|
|
5
5
|
import { IThemeService } from 'monaco-editor/esm/vs/platform/theme/common/themeService.js';
|
|
@@ -61,7 +61,7 @@ let BinaryFileEditor = class BinaryFileEditor extends BaseBinaryResourceEditor {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
getTitle() {
|
|
64
|
-
return this.input ? this.input.getName() : (
|
|
64
|
+
return this.input ? this.input.getName() : localizeWithPath('vs/workbench/contrib/files/browser/editors/binaryFileEditor', 'binaryFileEditor', "Binary File Viewer");
|
|
65
65
|
}
|
|
66
66
|
};
|
|
67
67
|
BinaryFileEditor = BinaryFileEditor_1 = ( __decorate([
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
|
|
3
3
|
import { mark } from 'monaco-editor/esm/vs/base/common/performance.js';
|
|
4
4
|
import { assertIsDefined } from 'monaco-editor/esm/vs/base/common/types.js';
|
|
5
5
|
import { IPathService } from 'vscode/vscode/vs/workbench/services/path/common/pathService';
|
|
@@ -60,7 +60,7 @@ let TextFileEditor = class TextFileEditor extends AbstractTextCodeEditor {
|
|
|
60
60
|
if (this.input) {
|
|
61
61
|
return this.input.getName();
|
|
62
62
|
}
|
|
63
|
-
return (
|
|
63
|
+
return localizeWithPath('vs/workbench/contrib/files/browser/editors/textFileEditor', 'textFileEditor', "Text File Editor");
|
|
64
64
|
}
|
|
65
65
|
get input() {
|
|
66
66
|
return this._input;
|
|
@@ -108,44 +108,37 @@ let TextFileEditor = class TextFileEditor extends AbstractTextCodeEditor {
|
|
|
108
108
|
if (error.fileOperationResult === 0 ) {
|
|
109
109
|
const actions = [];
|
|
110
110
|
actions.push(toAction({
|
|
111
|
-
id: 'workbench.files.action.openFolder', label: (
|
|
111
|
+
id: 'workbench.files.action.openFolder', label: localizeWithPath('vs/workbench/contrib/files/browser/editors/textFileEditor', 'openFolder', "Open Folder"), run: async () => {
|
|
112
112
|
return this.hostService.openWindow([{ folderUri: input.resource }], { forceNewWindow: true });
|
|
113
113
|
}
|
|
114
114
|
}));
|
|
115
115
|
if (this.contextService.isInsideWorkspace(input.preferredResource)) {
|
|
116
116
|
actions.push(toAction({
|
|
117
|
-
id: 'workbench.files.action.reveal', label: (
|
|
117
|
+
id: 'workbench.files.action.reveal', label: localizeWithPath('vs/workbench/contrib/files/browser/editors/textFileEditor', 'reveal', "Reveal Folder"), run: async () => {
|
|
118
118
|
await this.paneCompositeService.openPaneComposite(VIEWLET_ID, 0 , true);
|
|
119
119
|
return this.explorerService.select(input.preferredResource, true);
|
|
120
120
|
}
|
|
121
121
|
}));
|
|
122
122
|
}
|
|
123
|
-
throw createEditorOpenError(
|
|
123
|
+
throw createEditorOpenError(localizeWithPath('vs/workbench/contrib/files/browser/editors/textFileEditor', 'fileIsDirectory', "The file is not displayed in the text editor because it is a directory."), actions, { forceMessage: true });
|
|
124
124
|
}
|
|
125
125
|
if (error.fileOperationResult === 7 && this.group) {
|
|
126
126
|
let message;
|
|
127
127
|
if (error instanceof TooLargeFileOperationError) {
|
|
128
|
-
message = (
|
|
129
|
-
'fileTooLargeForHeapErrorWithSize',
|
|
130
|
-
"The file is not displayed in the text editor because it is very large ({0}).",
|
|
131
|
-
ByteSize.formatSize(error.size)
|
|
132
|
-
));
|
|
128
|
+
message = localizeWithPath('vs/workbench/contrib/files/browser/editors/textFileEditor', 'fileTooLargeForHeapErrorWithSize', "The file is not displayed in the text editor because it is very large ({0}).", ByteSize.formatSize(error.size));
|
|
133
129
|
}
|
|
134
130
|
else {
|
|
135
|
-
message = (
|
|
136
|
-
'fileTooLargeForHeapErrorWithoutSize',
|
|
137
|
-
"The file is not displayed in the text editor because it is very large."
|
|
138
|
-
));
|
|
131
|
+
message = localizeWithPath('vs/workbench/contrib/files/browser/editors/textFileEditor', 'fileTooLargeForHeapErrorWithoutSize', "The file is not displayed in the text editor because it is very large.");
|
|
139
132
|
}
|
|
140
133
|
throw createTooLargeFileError(this.group, input, options, message, this.preferencesService);
|
|
141
134
|
}
|
|
142
135
|
if (error.fileOperationResult === 1 && (await this.pathService.hasValidBasename(input.preferredResource))) {
|
|
143
|
-
const fileNotFoundError = createEditorOpenError(( new FileOperationError(
|
|
144
|
-
'unavailableResourceErrorEditorText',
|
|
145
|
-
|
|
146
|
-
)),
|
|
136
|
+
const fileNotFoundError = createEditorOpenError(( new FileOperationError(
|
|
137
|
+
localizeWithPath('vs/workbench/contrib/files/browser/editors/textFileEditor', 'unavailableResourceErrorEditorText', "The editor could not be opened because the file was not found."),
|
|
138
|
+
1
|
|
139
|
+
)), [
|
|
147
140
|
toAction({
|
|
148
|
-
id: 'workbench.files.action.createMissingFile', label: (
|
|
141
|
+
id: 'workbench.files.action.createMissingFile', label: localizeWithPath('vs/workbench/contrib/files/browser/editors/textFileEditor', 'createFile', "Create File"), run: async () => {
|
|
149
142
|
await this.textFileService.create([{ resource: input.preferredResource }]);
|
|
150
143
|
return this.editorService.openEditor({
|
|
151
144
|
resource: input.preferredResource,
|