@codingame/monaco-vscode-dialogs-service-override 29.1.0 → 30.0.0

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-dialogs-service-override",
3
- "version": "29.1.0",
3
+ "version": "30.0.0",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - dialogs service-override",
6
6
  "keywords": [],
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-api": "29.1.0"
18
+ "@codingame/monaco-vscode-api": "30.0.0"
19
19
  },
20
20
  "main": "index.js",
21
21
  "module": "index.js",
@@ -202,16 +202,16 @@ let AbstractFileDialogService = class AbstractFileDialogService {
202
202
  return ConfirmResult.DONT_SAVE;
203
203
  }
204
204
  let message;
205
- let detail = ( localize(15840, "Your changes will be lost if you don't save them."));
205
+ let detail = ( localize(15926, "Your changes will be lost if you don't save them."));
206
206
  if (fileNamesOrResources.length === 1) {
207
207
  message = ( localize(
208
- 15841,
208
+ 15927,
209
209
  "Do you want to save the changes you made to {0}?",
210
210
  typeof fileNamesOrResources[0] === "string" ? fileNamesOrResources[0] : basename(fileNamesOrResources[0])
211
211
  ));
212
212
  } else {
213
213
  message = ( localize(
214
- 15842,
214
+ 15928,
215
215
  "Do you want to save the changes to the following {0} files?",
216
216
  fileNamesOrResources.length
217
217
  ));
@@ -224,10 +224,10 @@ let AbstractFileDialogService = class AbstractFileDialogService {
224
224
  message,
225
225
  detail,
226
226
  buttons: [{
227
- label: fileNamesOrResources.length > 1 ? ( localize(15843, "&&Save All")) : ( localize(15844, "&&Save")),
227
+ label: fileNamesOrResources.length > 1 ? ( localize(15929, "&&Save All")) : ( localize(15930, "&&Save")),
228
228
  run: () => ConfirmResult.SAVE
229
229
  }, {
230
- label: ( localize(15845, "Do&&n't Save")),
230
+ label: ( localize(15931, "Do&&n't Save")),
231
231
  run: () => ConfirmResult.DONT_SAVE
232
232
  }],
233
233
  cancelButton: {
@@ -240,7 +240,7 @@ let AbstractFileDialogService = class AbstractFileDialogService {
240
240
  return schema === Schemas.untitled ? [Schemas.file] : (schema !== Schemas.file ? [schema, Schemas.file] : [schema]);
241
241
  }
242
242
  async pickFileFolderAndOpenSimplified(schema, options, preferNewWindow) {
243
- const title = ( localize(15846, "Open File or Folder"));
243
+ const title = ( localize(15932, "Open File or Folder"));
244
244
  const availableFileSystems = this.addFileSchemaIfNeeded(schema);
245
245
  const uris = await this.pickResource({
246
246
  canSelectFiles: true,
@@ -280,7 +280,7 @@ let AbstractFileDialogService = class AbstractFileDialogService {
280
280
  }
281
281
  }
282
282
  async pickFileAndOpenSimplified(schema, options, preferNewWindow) {
283
- const title = ( localize(15847, "Open File"));
283
+ const title = ( localize(15933, "Open File"));
284
284
  const availableFileSystems = this.addFileSchemaIfNeeded(schema);
285
285
  const uris = await this.pickResource({
286
286
  canSelectFiles: true,
@@ -322,7 +322,7 @@ let AbstractFileDialogService = class AbstractFileDialogService {
322
322
  }]);
323
323
  }
324
324
  async pickFolderAndOpenSimplified(schema, options) {
325
- const title = ( localize(15848, "Open Folder"));
325
+ const title = ( localize(15934, "Open Folder"));
326
326
  const availableFileSystems = this.addFileSchemaIfNeeded(schema, true);
327
327
  const uris = await this.pickResource({
328
328
  canSelectFiles: false,
@@ -343,9 +343,9 @@ let AbstractFileDialogService = class AbstractFileDialogService {
343
343
  }
344
344
  }
345
345
  async pickWorkspaceAndOpenSimplified(schema, options) {
346
- const title = ( localize(15849, "Open Workspace from File"));
346
+ const title = ( localize(15935, "Open Workspace from File"));
347
347
  const filters = [{
348
- name: ( localize(15850, "Workspace")),
348
+ name: ( localize(15936, "Workspace")),
349
349
  extensions: [WORKSPACE_EXTENSION]
350
350
  }];
351
351
  const availableFileSystems = this.addFileSchemaIfNeeded(schema, true);
@@ -372,7 +372,7 @@ let AbstractFileDialogService = class AbstractFileDialogService {
372
372
  if (!options.availableFileSystems) {
373
373
  options.availableFileSystems = this.addFileSchemaIfNeeded(schema);
374
374
  }
375
- options.title = ( localize(15851, "Save As"));
375
+ options.title = ( localize(15937, "Save As"));
376
376
  const uri = await this.saveRemoteResource(options);
377
377
  if (uri) {
378
378
  this.addFileToRecentlyOpened(uri);
@@ -437,7 +437,7 @@ let AbstractFileDialogService = class AbstractFileDialogService {
437
437
  getPickFileToSaveDialogOptions(defaultUri, availableFileSystems) {
438
438
  const options = {
439
439
  defaultUri,
440
- title: ( localize(15852, "Save As")),
440
+ title: ( localize(15938, "Save As")),
441
441
  availableFileSystems
442
442
  };
443
443
  const ext = defaultUri ? extname(defaultUri) : undefined;
@@ -475,10 +475,10 @@ let AbstractFileDialogService = class AbstractFileDialogService {
475
475
  };
476
476
  }
477
477
  options.filters = coalesce([{
478
- name: ( localize(15853, "All Files")),
478
+ name: ( localize(15939, "All Files")),
479
479
  extensions: ["*"]
480
480
  }, matchingFilter, ...registeredLanguageFilters, {
481
- name: ( localize(15854, "No Extension")),
481
+ name: ( localize(15940, "No Extension")),
482
482
  extensions: [""]
483
483
  }]);
484
484
  return options;
@@ -28,7 +28,7 @@ class FileDialogService extends AbstractFileDialogService {
28
28
  if (this.shouldUseSimplified(schema)) {
29
29
  return super.pickFileFolderAndOpenSimplified(schema, options, false);
30
30
  }
31
- throw ( new Error(( localize(15855, "Can't open folders, try adding a folder to the workspace instead."))));
31
+ throw ( new Error(( localize(15941, "Can't open folders, try adding a folder to the workspace instead."))));
32
32
  }
33
33
  addFileSchemaIfNeeded(schema, isFolder) {
34
34
  return (schema === Schemas.untitled) ? [Schemas.file] : (((schema !== Schemas.file) && (!isFolder || (schema !== Schemas.vscodeRemote))) ? [schema, Schemas.file] : [schema]);
@@ -73,7 +73,7 @@ class FileDialogService extends AbstractFileDialogService {
73
73
  if (this.shouldUseSimplified(schema)) {
74
74
  return super.pickFolderAndOpenSimplified(schema, options);
75
75
  }
76
- throw ( new Error(( localize(15855, "Can't open folders, try adding a folder to the workspace instead."))));
76
+ throw ( new Error(( localize(15941, "Can't open folders, try adding a folder to the workspace instead."))));
77
77
  }
78
78
  async pickWorkspaceAndOpen(options) {
79
79
  options.availableFileSystems = this.getWorkspaceAvailableFileSystems(options);
@@ -85,7 +85,7 @@ class FileDialogService extends AbstractFileDialogService {
85
85
  return super.pickWorkspaceAndOpenSimplified(schema, options);
86
86
  }
87
87
  throw ( new Error(( localize(
88
- 15856,
88
+ 15942,
89
89
  "Can't open workspaces, try adding a folder to the workspace instead."
90
90
  ))));
91
91
  }
@@ -213,19 +213,19 @@ class FileDialogService extends AbstractFileDialogService {
213
213
  }
214
214
  }
215
215
  const buttons = [{
216
- label: ( localize(15857, "&&Open Remote...")),
216
+ label: ( localize(15943, "&&Open Remote...")),
217
217
  run: async () => {
218
218
  await this.commandService.executeCommand("workbench.action.remote.showMenu");
219
219
  }
220
220
  }, {
221
- label: ( localize(15858, "&&Learn More")),
221
+ label: ( localize(15944, "&&Learn More")),
222
222
  run: async () => {
223
223
  await this.openerService.open("https://aka.ms/VSCodeWebLocalFileSystemAccess");
224
224
  }
225
225
  }];
226
226
  if (context === "open") {
227
227
  buttons.push({
228
- label: ( localize(15859, "Open &&Files...")),
228
+ label: ( localize(15945, "Open &&Files...")),
229
229
  run: async () => {
230
230
  const files = await triggerUpload();
231
231
  if (files) {
@@ -247,9 +247,9 @@ class FileDialogService extends AbstractFileDialogService {
247
247
  }
248
248
  await this.dialogService.prompt({
249
249
  type: Severity.Warning,
250
- message: ( localize(15860, "Opening Local Folders is Unsupported")),
250
+ message: ( localize(15946, "Opening Local Folders is Unsupported")),
251
251
  detail: ( localize(
252
- 15861,
252
+ 15947,
253
253
  "Your browser doesn't support opening local folders.\nYou can either open single files or open a remote repository."
254
254
  )),
255
255
  buttons
@@ -85,6 +85,15 @@ export declare class SimpleFileDialog extends Disposable implements ISimpleFileD
85
85
  * {@link remoteAuthority}).
86
86
  */
87
87
  private scopedAuthority;
88
+ /**
89
+ * Path prefix that the label formatter strips from URIs in the
90
+ * scoped scheme (e.g. `/file/-` for agent host URIs that encode
91
+ * the original scheme and authority as leading path segments).
92
+ *
93
+ * Stripped by {@link pathFromUri} and re-applied by
94
+ * {@link remoteUriFrom} so the user sees clean paths.
95
+ */
96
+ private scopedPathPrefix;
88
97
  private readonly onBusyChangeEmitter;
89
98
  private updatingPromise;
90
99
  private _showDotFiles;
@@ -107,6 +116,15 @@ export declare class SimpleFileDialog extends Disposable implements ISimpleFileD
107
116
  * already handled by the existing logic.
108
117
  */
109
118
  private getScopedAuthority;
119
+ /**
120
+ * Computes the path prefix that the label formatter strips for the
121
+ * scoped scheme, by comparing the raw URI path with the label
122
+ * service's formatted output.
123
+ *
124
+ * For example, an agent host URI with path `/file/-/Users/roblou`
125
+ * formats as `/Users/roblou`, so the prefix is `/file/-`.
126
+ */
127
+ private computeScopedPathPrefix;
110
128
  private getRemoteAgentEnvironment;
111
129
  protected getUserHome(trueHome?: boolean): Promise<URI>;
112
130
  private normalizeUri;
@@ -41,7 +41,7 @@ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform
41
41
  var OpenLocalFileCommand;
42
42
  (function(OpenLocalFileCommand) {
43
43
  OpenLocalFileCommand.ID = "workbench.action.files.openLocalFile";
44
- OpenLocalFileCommand.LABEL = ( localize(15862, "Open Local File..."));
44
+ OpenLocalFileCommand.LABEL = ( localize(15948, "Open Local File..."));
45
45
  function handler() {
46
46
  return accessor => {
47
47
  const dialogService = accessor.get(IFileDialogService);
@@ -56,7 +56,7 @@ var OpenLocalFileCommand;
56
56
  var SaveLocalFileCommand;
57
57
  (function(SaveLocalFileCommand) {
58
58
  SaveLocalFileCommand.ID = "workbench.action.files.saveLocalFile";
59
- SaveLocalFileCommand.LABEL = ( localize(15863, "Save Local File..."));
59
+ SaveLocalFileCommand.LABEL = ( localize(15949, "Save Local File..."));
60
60
  function handler() {
61
61
  return accessor => {
62
62
  const editorService = accessor.get(IEditorService);
@@ -79,7 +79,7 @@ var SaveLocalFileCommand;
79
79
  var OpenLocalFolderCommand;
80
80
  (function(OpenLocalFolderCommand) {
81
81
  OpenLocalFolderCommand.ID = "workbench.action.files.openLocalFolder";
82
- OpenLocalFolderCommand.LABEL = ( localize(15864, "Open Local Folder..."));
82
+ OpenLocalFolderCommand.LABEL = ( localize(15950, "Open Local Folder..."));
83
83
  function handler() {
84
84
  return accessor => {
85
85
  const dialogService = accessor.get(IFileDialogService);
@@ -94,7 +94,7 @@ var OpenLocalFolderCommand;
94
94
  var OpenLocalFileFolderCommand;
95
95
  (function(OpenLocalFileFolderCommand) {
96
96
  OpenLocalFileFolderCommand.ID = "workbench.action.files.openLocalFileFolder";
97
- OpenLocalFileFolderCommand.LABEL = ( localize(15865, "Open Local..."));
97
+ OpenLocalFileFolderCommand.LABEL = ( localize(15951, "Open Local..."));
98
98
  function handler() {
99
99
  return accessor => {
100
100
  const dialogService = accessor.get(IFileDialogService);
@@ -156,6 +156,7 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
156
156
  this.autoCompletePathSegment = "";
157
157
  this.isWindows = false;
158
158
  this.separator = "/";
159
+ this.scopedPathPrefix = "";
159
160
  this.onBusyChangeEmitter = this._register(( new Emitter()));
160
161
  this._showDotFiles = true;
161
162
  this.remoteAuthority = this.environmentService.remoteAuthority;
@@ -198,6 +199,7 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
198
199
  async showOpenDialog(options = {}) {
199
200
  this.scheme = this.getScheme(options.availableFileSystems, options.defaultUri);
200
201
  this.scopedAuthority = this.getScopedAuthority(options.defaultUri);
202
+ this.scopedPathPrefix = options.defaultUri && this.scopedAuthority ? this.computeScopedPathPrefix(options.defaultUri) : "";
201
203
  this.userHome = await this.getUserHome();
202
204
  this.trueHome = await this.getUserHome(true);
203
205
  const newOptions = this.getOptions(options);
@@ -214,6 +216,7 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
214
216
  async showSaveDialog(options) {
215
217
  this.scheme = this.getScheme(options.availableFileSystems, options.defaultUri);
216
218
  this.scopedAuthority = this.getScopedAuthority(options.defaultUri);
219
+ this.scopedPathPrefix = options.defaultUri && this.scopedAuthority ? this.computeScopedPathPrefix(options.defaultUri) : "";
217
220
  this.userHome = await this.getUserHome();
218
221
  this.trueHome = await this.getUserHome(true);
219
222
  this.requiresTrailing = true;
@@ -245,7 +248,7 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
245
248
  }
246
249
  if ((this.scheme !== Schemas.file) && !this.fileService.hasProvider(defaultUri)) {
247
250
  this.notificationService.info(( localize(
248
- 15866,
251
+ 15952,
249
252
  "File system provider for {0} is not available.",
250
253
  (defaultUri.toString())
251
254
  )));
@@ -263,7 +266,7 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
263
266
  return ( URI.from({
264
267
  scheme: this.scheme,
265
268
  authority: this.scopedAuthority,
266
- path,
269
+ path: this.scopedPathPrefix + path,
267
270
  query: hintUri?.query,
268
271
  fragment: hintUri?.fragment
269
272
  }));
@@ -298,6 +301,14 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
298
301
  }
299
302
  return undefined;
300
303
  }
304
+ computeScopedPathPrefix(uri) {
305
+ const fullPath = uri.path;
306
+ const displayPath = this.labelService.getUriLabel(uri);
307
+ if (displayPath && fullPath.endsWith(displayPath)) {
308
+ return fullPath.substring(0, fullPath.length - displayPath.length);
309
+ }
310
+ return "";
311
+ }
301
312
  async getRemoteAgentEnvironment() {
302
313
  if (this.remoteAgentEnvironment === undefined) {
303
314
  this.remoteAgentEnvironment = await this.remoteAgentService.getEnvironment();
@@ -309,7 +320,7 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
309
320
  return Promise.resolve(( URI.from({
310
321
  scheme: this.scheme,
311
322
  authority: this.scopedAuthority,
312
- path: "/"
323
+ path: this.scopedPathPrefix + "/"
313
324
  })));
314
325
  }
315
326
  return trueHome ? this.pathService.userHome({
@@ -345,12 +356,12 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
345
356
  this.filePickBox.matchOnLabel = false;
346
357
  this.filePickBox.sortByLabel = false;
347
358
  this.filePickBox.ignoreFocusOut = true;
348
- this.filePickBox.placeholder = ( localize(15867, "Folder path"));
359
+ this.filePickBox.placeholder = ( localize(15953, "Folder path"));
349
360
  this.filePickBox.ok = true;
350
361
  this.filePickBox.okLabel = typeof this.options.openLabel === "string" ? this.options.openLabel : this.options.openLabel?.withoutMnemonic;
351
362
  if ((this.scheme !== Schemas.file) && this.options && this.options.availableFileSystems && (this.options.availableFileSystems.length > 1) && (this.options.availableFileSystems.indexOf(Schemas.file) > -1)) {
352
363
  this.filePickBox.customButton = true;
353
- this.filePickBox.customLabel = ( localize(15868, "Show Local"));
364
+ this.filePickBox.customLabel = ( localize(15954, "Show Local"));
354
365
  this.filePickBox.customButtonSecondary = true;
355
366
  let action;
356
367
  if (isSave) {
@@ -501,7 +512,7 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
501
512
  setButtons() {
502
513
  this.filePickBox.buttons = [{
503
514
  iconClass: this._showDotFiles ? ThemeIcon.asClassName(Codicon.eye) : ThemeIcon.asClassName(Codicon.eyeClosed),
504
- tooltip: this._showDotFiles ? ( localize(15869, "Hide dot files")) : ( localize(15870, "Show dot files")),
515
+ tooltip: this._showDotFiles ? ( localize(15955, "Hide dot files")) : ( localize(15956, "Show dot files")),
505
516
  alwaysVisible: true
506
517
  }];
507
518
  }
@@ -656,7 +667,7 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
656
667
  valueUri = this.tryAddTrailingSeparatorToDirectory(valueUri, stat);
657
668
  return (await this.updateItems(valueUri)) ? UpdateResult.UpdatedWithTrailing : UpdateResult.Updated;
658
669
  } else if (this.endsWithSlash(value)) {
659
- this.filePickBox.validationMessage = ( localize(15871, "The path does not exist. Use ~ to go to your home directory."));
670
+ this.filePickBox.validationMessage = ( localize(15957, "The path does not exist. Use ~ to go to your home directory."));
660
671
  this.badPath = value;
661
672
  return UpdateResult.InvalidPath;
662
673
  } else {
@@ -820,7 +831,7 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
820
831
  prompt.ignoreFocusOut = true;
821
832
  prompt.ok = true;
822
833
  prompt.customButton = true;
823
- prompt.customLabel = ( localize(15872, "Cancel"));
834
+ prompt.customLabel = ( localize(15958, "Cancel"));
824
835
  prompt.customButtonSecondary = true;
825
836
  prompt.value = this.pathFromUri(uri);
826
837
  let isResolving = false;
@@ -849,7 +860,7 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
849
860
  }
850
861
  async validate(uri) {
851
862
  if (uri === undefined) {
852
- this.filePickBox.validationMessage = ( localize(15873, "Please enter a valid path."));
863
+ this.filePickBox.validationMessage = ( localize(15959, "Please enter a valid path."));
853
864
  return Promise.resolve(false);
854
865
  }
855
866
  let stat;
@@ -860,47 +871,47 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
860
871
  } catch (e) {}
861
872
  if (this.requiresTrailing) {
862
873
  if (stat?.isDirectory) {
863
- this.filePickBox.validationMessage = ( localize(15874, "The folder already exists. Please use a new file name."));
874
+ this.filePickBox.validationMessage = ( localize(15960, "The folder already exists. Please use a new file name."));
864
875
  return Promise.resolve(false);
865
876
  } else if (stat) {
866
877
  const message = ( localize(
867
- 15875,
878
+ 15961,
868
879
  "{0} already exists. Are you sure you want to overwrite it?",
869
880
  basename(uri)
870
881
  ));
871
882
  return this.yesNoPrompt(uri, message);
872
883
  } else if (!(isValidBasename(basename(uri), this.isWindows))) {
873
- this.filePickBox.validationMessage = ( localize(15876, "Please enter a valid file name."));
884
+ this.filePickBox.validationMessage = ( localize(15962, "Please enter a valid file name."));
874
885
  return Promise.resolve(false);
875
886
  } else if (!statDirname) {
876
887
  const message = ( localize(
877
- 15877,
888
+ 15963,
878
889
  "The folder {0} does not exist. Would you like to create it?",
879
890
  basename(dirname(uri))
880
891
  ));
881
892
  return this.yesNoPrompt(uri, message);
882
893
  } else if (!statDirname.isDirectory) {
883
- this.filePickBox.validationMessage = ( localize(15878, "Please enter a path that exists."));
894
+ this.filePickBox.validationMessage = ( localize(15964, "Please enter a path that exists."));
884
895
  return Promise.resolve(false);
885
896
  } else if (statDirname.readonly) {
886
897
  this.filePickBox.validationMessage = ( localize(
887
- 15879,
898
+ 15965,
888
899
  "This folder cannot be used as a save destination. Please choose another folder"
889
900
  ));
890
901
  return Promise.resolve(false);
891
902
  }
892
903
  } else {
893
904
  if (!stat) {
894
- this.filePickBox.validationMessage = ( localize(15878, "Please enter a path that exists."));
905
+ this.filePickBox.validationMessage = ( localize(15964, "Please enter a path that exists."));
895
906
  return Promise.resolve(false);
896
907
  } else if (uri.path === "/" && this.isWindows) {
897
- this.filePickBox.validationMessage = ( localize(15880, "Please start the path with a drive letter."));
908
+ this.filePickBox.validationMessage = ( localize(15966, "Please start the path with a drive letter."));
898
909
  return Promise.resolve(false);
899
910
  } else if (stat.isDirectory && !this.allowFolderSelection) {
900
- this.filePickBox.validationMessage = ( localize(15881, "Please select a file."));
911
+ this.filePickBox.validationMessage = ( localize(15967, "Please select a file."));
901
912
  return Promise.resolve(false);
902
913
  } else if (!stat.isDirectory && !this.allowFileSelection) {
903
- this.filePickBox.validationMessage = ( localize(15882, "Please select a folder."));
914
+ this.filePickBox.validationMessage = ( localize(15968, "Please select a folder."));
904
915
  return Promise.resolve(false);
905
916
  }
906
917
  }
@@ -960,7 +971,11 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
960
971
  pathFromUri(uri, endWithSeparator = false) {
961
972
  let result;
962
973
  if (this.scopedAuthority) {
963
- result = uri.path.replace(/\n/g, "");
974
+ let path = uri.path;
975
+ if (this.scopedPathPrefix && path.startsWith(this.scopedPathPrefix)) {
976
+ path = path.substring(this.scopedPathPrefix.length);
977
+ }
978
+ result = path.replace(/\n/g, "");
964
979
  } else {
965
980
  result = normalizeDriveLetter(uri.fsPath, this.isWindows).replace(/\n/g, "");
966
981
  }
@@ -999,6 +1014,12 @@ let SimpleFileDialog = class SimpleFileDialog extends Disposable {
999
1014
  return child.substring(parent.length);
1000
1015
  }
1001
1016
  async createBackItem(currFolder) {
1017
+ if (this.scopedPathPrefix) {
1018
+ const pathAfterPrefix = currFolder.path.substring(this.scopedPathPrefix.length);
1019
+ if (pathAfterPrefix === "/" || pathAfterPrefix === "") {
1020
+ return undefined;
1021
+ }
1022
+ }
1002
1023
  const compareScheme = this.scopedAuthority ? this.scheme : Schemas.file;
1003
1024
  const compareAuthority = this.scopedAuthority ?? "";
1004
1025
  const fileRepresentationCurr = this.currentFolder.with({