Skip to content

Commit 3a8d09e

Browse files
committed
use Schemas.untitled everywhere
1 parent 1e45671 commit 3a8d09e

File tree

24 files changed

+83
-67
lines changed

24 files changed

+83
-67
lines changed

src/vs/base/common/labels.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import URI from 'vs/base/common/uri';
88
import platform = require('vs/base/common/platform');
99
import { nativeSep, normalize, isEqualOrParent, isEqual, basename as pathsBasename, join } from 'vs/base/common/paths';
1010
import { endsWith, ltrim } from 'vs/base/common/strings';
11+
import { Schemas } from 'vs/base/common/network';
1112

1213
export interface IWorkspaceFolderProvider {
1314
getWorkspaceFolder(resource: URI): { uri: URI };
@@ -29,7 +30,7 @@ export function getPathLabel(resource: URI | string, rootProvider?: IWorkspaceFo
2930
resource = URI.file(resource);
3031
}
3132

32-
if (resource.scheme !== 'file' && resource.scheme !== 'untitled') {
33+
if (resource.scheme !== Schemas.file && resource.scheme !== Schemas.untitled) {
3334
return resource.with({ query: null, fragment: null }).toString(true);
3435
}
3536

src/vs/code/electron-main/launch.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { OpenContext } from 'vs/platform/windows/common/windows';
1616
import { IWindowsMainService, ICodeWindow } from 'vs/platform/windows/electron-main/windows';
1717
import { whenDeleted } from 'vs/base/node/pfs';
1818
import { IWorkspacesMainService } from 'vs/platform/workspaces/common/workspaces';
19+
import { Schemas } from 'vs/base/common/network';
1920

2021
export const ID = 'launchService';
2122
export const ILaunchService = createDecorator<ILaunchService>(ID);
@@ -203,7 +204,7 @@ export class LaunchService implements ILaunchService {
203204
} else if (window.openedWorkspace) {
204205
const rootFolders = this.workspacesMainService.resolveWorkspaceSync(window.openedWorkspace.configPath).folders;
205206
rootFolders.forEach(root => {
206-
if (root.uri.scheme === 'file') {
207+
if (root.uri.scheme === Schemas.file) {
207208
folders.push(root.uri.fsPath);
208209
}
209210
});

src/vs/platform/backup/test/electron-main/backupMainService.test.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import { ConsoleLogMainService } from 'vs/platform/log/common/log';
2323
import { IWorkspaceIdentifier } from 'vs/platform/workspaces/common/workspaces';
2424
import { createHash } from 'crypto';
2525
import { getRandomTestPath } from 'vs/workbench/test/workbenchTestServices';
26+
import { Schemas } from 'vs/base/common/network';
2627

2728
suite('BackupMainService', () => {
2829
const parentDir = getRandomTestPath(os.tmpdir(), 'vsctests', 'backupservice');
@@ -122,8 +123,8 @@ suite('BackupMainService', () => {
122123
// 3) backup workspace path exists with empty folders within
123124
fs.mkdirSync(service.toBackupPath(fooFile.fsPath));
124125
fs.mkdirSync(service.toBackupPath(barFile.fsPath));
125-
fs.mkdirSync(path.join(service.toBackupPath(fooFile.fsPath), 'file'));
126-
fs.mkdirSync(path.join(service.toBackupPath(barFile.fsPath), 'untitled'));
126+
fs.mkdirSync(path.join(service.toBackupPath(fooFile.fsPath), Schemas.file));
127+
fs.mkdirSync(path.join(service.toBackupPath(barFile.fsPath), Schemas.untitled));
127128
service.registerFolderBackupSync(fooFile.fsPath);
128129
service.registerFolderBackupSync(barFile.fsPath);
129130
service.loadSync();
@@ -133,7 +134,7 @@ suite('BackupMainService', () => {
133134

134135
// 4) backup workspace path points to a workspace that no longer exists
135136
// so it should convert the backup worspace to an empty workspace backup
136-
const fileBackups = path.join(service.toBackupPath(fooFile.fsPath), 'file');
137+
const fileBackups = path.join(service.toBackupPath(fooFile.fsPath), Schemas.file);
137138
fs.mkdirSync(service.toBackupPath(fooFile.fsPath));
138139
fs.mkdirSync(service.toBackupPath(barFile.fsPath));
139140
fs.mkdirSync(fileBackups);
@@ -169,8 +170,8 @@ suite('BackupMainService', () => {
169170
// 3) backup workspace path exists with empty folders within
170171
fs.mkdirSync(service.toBackupPath(fooFile.fsPath));
171172
fs.mkdirSync(service.toBackupPath(barFile.fsPath));
172-
fs.mkdirSync(path.join(service.toBackupPath(fooFile.fsPath), 'file'));
173-
fs.mkdirSync(path.join(service.toBackupPath(barFile.fsPath), 'untitled'));
173+
fs.mkdirSync(path.join(service.toBackupPath(fooFile.fsPath), Schemas.file));
174+
fs.mkdirSync(path.join(service.toBackupPath(barFile.fsPath), Schemas.untitled));
174175
service.registerWorkspaceBackupSync(toWorkspace(fooFile.fsPath));
175176
service.registerWorkspaceBackupSync(toWorkspace(barFile.fsPath));
176177
service.loadSync();
@@ -180,7 +181,7 @@ suite('BackupMainService', () => {
180181

181182
// 4) backup workspace path points to a workspace that no longer exists
182183
// so it should convert the backup worspace to an empty workspace backup
183-
const fileBackups = path.join(service.toBackupPath(fooFile.fsPath), 'file');
184+
const fileBackups = path.join(service.toBackupPath(fooFile.fsPath), Schemas.file);
184185
fs.mkdirSync(service.toBackupPath(fooFile.fsPath));
185186
fs.mkdirSync(service.toBackupPath(barFile.fsPath));
186187
fs.mkdirSync(fileBackups);

src/vs/platform/clipboard/electron-browser/clipboardService.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService
99
import { clipboard } from 'electron';
1010
import URI from 'vs/base/common/uri';
1111
import { isMacintosh } from 'vs/base/common/platform';
12+
import { Schemas } from 'vs/base/common/network';
1213

1314
export class ClipboardService implements IClipboardService {
1415

@@ -40,7 +41,7 @@ export class ClipboardService implements IClipboardService {
4041
}
4142

4243
public writeFiles(resources: URI[]): void {
43-
const files = resources.filter(f => f.scheme === 'file');
44+
const files = resources.filter(f => f.scheme === Schemas.file);
4445

4546
if (files.length) {
4647
clipboard.writeBuffer(ClipboardService.FILE_FORMAT, this.filesToBuffer(files));

src/vs/platform/windows/electron-main/windowsService.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { IWindowsMainService, ISharedProcess } from 'vs/platform/windows/electro
1919
import { IHistoryMainService, IRecentlyOpened } from 'vs/platform/history/common/history';
2020
import { IWorkspaceIdentifier, IWorkspaceFolderCreationData } from 'vs/platform/workspaces/common/workspaces';
2121
import { ICommandAction } from 'vs/platform/actions/common/actions';
22+
import { Schemas } from 'vs/base/common/network';
2223

2324
export class WindowsService implements IWindowsService, IDisposable {
2425

@@ -40,7 +41,7 @@ export class WindowsService implements IWindowsService, IDisposable {
4041
) {
4142
// Catch file URLs
4243
chain(urlService.onOpenURL)
43-
.filter(uri => uri.authority === 'file' && !!uri.path)
44+
.filter(uri => uri.authority === Schemas.file && !!uri.path)
4445
.map(uri => URI.file(uri.fsPath))
4546
.on(this.openFileForURI, this, this.disposables);
4647

src/vs/platform/workspaces/electron-main/workspacesMainService.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { applyEdit } from 'vs/base/common/jsonFormatter';
2525
import { massageFolderPathForWorkspace } from 'vs/platform/workspaces/node/workspaces';
2626
import { toWorkspaceFolders } from 'vs/platform/workspace/common/workspace';
2727
import URI from 'vs/base/common/uri';
28+
import { Schemas } from 'vs/base/common/network';
2829

2930
export interface IStoredWorkspace {
3031
folders: IStoredWorkspaceFolder[];
@@ -152,7 +153,7 @@ export class WorkspacesMainService implements IWorkspacesMainService {
152153
let storedWorkspace: IStoredWorkspaceFolder;
153154

154155
// File URI
155-
if (folderResource.scheme === 'file') {
156+
if (folderResource.scheme === Schemas.file) {
156157
storedWorkspace = { path: massageFolderPathForWorkspace(folderResource.fsPath, untitledWorkspaceConfigFolder, []) };
157158
}
158159

src/vs/workbench/api/electron-browser/mainThreadDocuments.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { ITextModelService } from 'vs/editor/common/services/resolverService';
1818
import { MainThreadDocumentsAndEditors } from './mainThreadDocumentsAndEditors';
1919
import { ITextEditorModel } from 'vs/workbench/common/editor';
2020
import { ITextModel } from 'vs/editor/common/model';
21+
import { Schemas } from 'vs/base/common/network';
2122

2223
export class BoundModelReferenceCollection {
2324

@@ -180,10 +181,10 @@ export class MainThreadDocuments implements MainThreadDocumentsShape {
180181

181182
let promise: TPromise<boolean>;
182183
switch (uri.scheme) {
183-
case 'untitled':
184+
case Schemas.untitled:
184185
promise = this._handleUnititledScheme(uri);
185186
break;
186-
case 'file':
187+
case Schemas.file:
187188
default:
188189
promise = this._handleAsResourceInput(uri);
189190
break;
@@ -212,7 +213,7 @@ export class MainThreadDocuments implements MainThreadDocumentsShape {
212213
}
213214

214215
private _handleUnititledScheme(uri: URI): TPromise<boolean> {
215-
let asFileUri = uri.with({ scheme: 'file' });
216+
let asFileUri = uri.with({ scheme: Schemas.file });
216217
return this._fileService.resolveFile(asFileUri).then(stats => {
217218
// don't create a new file ontop of an existing file
218219
return TPromise.wrapError<boolean>(new Error('file already exists on disk'));

src/vs/workbench/api/node/extHostDocumentContentProviders.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import * as vscode from 'vscode';
1313
import { asWinJsPromise } from 'vs/base/common/async';
1414
import { MainContext, ExtHostDocumentContentProvidersShape, MainThreadDocumentContentProvidersShape, IMainContext } from './extHost.protocol';
1515
import { ExtHostDocumentsAndEditors } from './extHostDocumentsAndEditors';
16+
import { Schemas } from 'vs/base/common/network';
1617

1718
export class ExtHostDocumentContentProvider implements ExtHostDocumentContentProvidersShape {
1819

@@ -34,7 +35,7 @@ export class ExtHostDocumentContentProvider implements ExtHostDocumentContentPro
3435
registerTextDocumentContentProvider(scheme: string, provider: vscode.TextDocumentContentProvider): vscode.Disposable {
3536
// todo@remote
3637
// check with scheme from fs-providers!
37-
if (scheme === 'file' || scheme === 'untitled') {
38+
if (scheme === Schemas.file || scheme === Schemas.untitled) {
3839
throw new Error(`scheme '${scheme}' already registered`);
3940
}
4041

src/vs/workbench/browser/dnd.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ export function extractResources(e: DragEvent, externalOnly?: boolean): (IDragge
7777
try {
7878
const draggedEditors = JSON.parse(rawEditorsData) as ISerializedDraggedEditor[];
7979
draggedEditors.forEach(draggedEditor => {
80-
resources.push({ resource: URI.parse(draggedEditor.resource), backupResource: URI.parse(draggedEditor.backupResource), viewState: draggedEditor.viewState, isExternal: false });
80+
resources.push({ resource: URI.parse(draggedEditor.resource), backupResource: draggedEditor.backupResource ? URI.parse(draggedEditor.backupResource) : void 0, viewState: draggedEditor.viewState, isExternal: false });
8181
});
8282
} catch (error) {
8383
// Invalid transfer
@@ -363,10 +363,10 @@ export function fillResourceDataTransfers(accessor: ServicesAccessor, resources:
363363

364364
// Text: allows to paste into text-capable areas
365365
const lineDelimiter = isWindows ? '\r\n' : '\n';
366-
event.dataTransfer.setData(DataTransfers.TEXT, sources.map(source => source.resource.scheme === 'file' ? getPathLabel(source.resource) : source.resource.toString()).join(lineDelimiter));
366+
event.dataTransfer.setData(DataTransfers.TEXT, sources.map(source => source.resource.scheme === Schemas.file ? getPathLabel(source.resource) : source.resource.toString()).join(lineDelimiter));
367367

368368
// Download URL: enables support to drag a tab as file to desktop (only single file supported, not directories)
369-
if (sources.length === 1 && firstSource.resource.scheme === 'file' && !firstSource.isDirectory) {
369+
if (sources.length === 1 && firstSource.resource.scheme === Schemas.file && !firstSource.isDirectory) {
370370
event.dataTransfer.setData(DataTransfers.DOWNLOAD_URL, [MIME_BINARY, basename(firstSource.resource.fsPath), firstSource.resource.toString()].join(':'));
371371
}
372372

src/vs/workbench/browser/parts/editor/editorStatus.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
5959
// TODO@Sandeep layer breaker
6060
// tslint:disable-next-line:import-patterns
6161
import { IPreferencesService } from 'vs/workbench/parts/preferences/common/preferences';
62+
import { Schemas } from 'vs/base/common/network';
6263

6364
function toEditorWithEncodingSupport(input: IEditorInput): IEncodingSupport {
6465
if (input instanceof SideBySideEditorInput) {
@@ -814,7 +815,7 @@ export class ChangeModeAction extends Action {
814815
const resource = toResource(activeEditor.input, { supportSideBySide: true });
815816

816817
let hasLanguageSupport = !!resource;
817-
if (resource.scheme === 'untitled' && !this.untitledEditorService.hasAssociatedFilePath(resource)) {
818+
if (resource.scheme === Schemas.untitled && !this.untitledEditorService.hasAssociatedFilePath(resource)) {
818819
hasLanguageSupport = false; // no configuration for untitled resources (e.g. "Untitled-1")
819820
}
820821

src/vs/workbench/browser/parts/quickopen/quickOpenController.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ import { getBaseLabel } from 'vs/base/common/labels';
5656
import { WorkbenchTree } from 'vs/platform/list/browser/listService';
5757
import { matchesFuzzyOcticonAware, parseOcticons, IParsedOcticons } from 'vs/base/common/octicon';
5858
import { IMatch } from 'vs/base/common/filters';
59+
import { Schemas } from 'vs/base/common/network';
5960

6061
const HELP_PREFIX = '?';
6162

@@ -1353,7 +1354,7 @@ function resourceForEditorHistory(input: EditorInput, fileService: IFileService)
13531354

13541355
// For the editor history we only prefer resources that are either untitled or
13551356
// can be handled by the file service which indicates they are editable resources.
1356-
if (resource && (fileService.canHandleResource(resource) || resource.scheme === 'untitled')) {
1357+
if (resource && (fileService.canHandleResource(resource) || resource.scheme === Schemas.untitled)) {
13571358
return resource;
13581359
}
13591360

src/vs/workbench/common/editor.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { IInstantiationService, IConstructorSignature0 } from 'vs/platform/insta
1616
import { RawContextKey } from 'vs/platform/contextkey/common/contextkey';
1717
import { Registry } from 'vs/platform/registry/common/platform';
1818
import { ITextModel } from 'vs/editor/common/model';
19+
import { Schemas } from 'vs/base/common/network';
1920

2021
export const TextCompareEditorVisible = new RawContextKey<boolean>('textCompareEditorVisible', false);
2122

@@ -862,7 +863,7 @@ export const EditorCommands = {
862863

863864
export interface IResourceOptions {
864865
supportSideBySide?: boolean;
865-
filter?: 'file' | 'untitled' | ['file', 'untitled'] | ['untitled', 'file'];
866+
filter?: string | string[];
866867
}
867868

868869
export function toResource(editor: IEditorInput, options?: IResourceOptions): URI {
@@ -887,18 +888,18 @@ export function toResource(editor: IEditorInput, options?: IResourceOptions): UR
887888
let includeFiles: boolean;
888889
let includeUntitled: boolean;
889890
if (Array.isArray(options.filter)) {
890-
includeFiles = (options.filter.indexOf('file') >= 0);
891-
includeUntitled = (options.filter.indexOf('untitled') >= 0);
891+
includeFiles = (options.filter.indexOf(Schemas.file) >= 0);
892+
includeUntitled = (options.filter.indexOf(Schemas.untitled) >= 0);
892893
} else {
893-
includeFiles = (options.filter === 'file');
894-
includeUntitled = (options.filter === 'untitled');
894+
includeFiles = (options.filter === Schemas.file);
895+
includeUntitled = (options.filter === Schemas.untitled);
895896
}
896897

897-
if (includeFiles && resource.scheme === 'file') {
898+
if (includeFiles && resource.scheme === Schemas.file) {
898899
return resource;
899900
}
900901

901-
if (includeUntitled && resource.scheme === 'untitled') {
902+
if (includeUntitled && resource.scheme === Schemas.untitled) {
902903
return resource;
903904
}
904905

src/vs/workbench/parts/backup/common/backupRestorer.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import URI from 'vs/base/common/uri';
99
import { TPromise } from 'vs/base/common/winjs.base';
10-
import { IUntitledEditorService, UNTITLED_SCHEMA } from 'vs/workbench/services/untitled/common/untitledEditorService';
10+
import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService';
1111
import { IWorkbenchContribution } from 'vs/workbench/common/contributions';
1212
import errors = require('vs/base/common/errors');
1313
import { IBackupFileService } from 'vs/workbench/services/backup/common/backup';
@@ -69,7 +69,7 @@ export class BackupRestorer implements IWorkbenchContribution {
6969
if (stacks.isOpen(backup)) {
7070
if (backup.scheme === Schemas.file) {
7171
restorePromises.push(this.textFileService.models.loadOrCreate(backup).then(null, () => unresolved.push(backup)));
72-
} else if (backup.scheme === UNTITLED_SCHEMA) {
72+
} else if (backup.scheme === Schemas.untitled) {
7373
restorePromises.push(this.untitledEditorService.loadOrCreate({ resource: backup }).then(null, () => unresolved.push(backup)));
7474
}
7575
} else {
@@ -92,7 +92,7 @@ export class BackupRestorer implements IWorkbenchContribution {
9292
private resolveInput(resource: URI, index: number, hasOpenedEditors: boolean): IResourceInput | IUntitledResourceInput {
9393
const options = { pinned: true, preserveFocus: true, inactive: index > 0 || hasOpenedEditors };
9494

95-
if (resource.scheme === UNTITLED_SCHEMA && !BackupRestorer.UNTITLED_REGEX.test(resource.fsPath)) {
95+
if (resource.scheme === Schemas.untitled && !BackupRestorer.UNTITLED_REGEX.test(resource.fsPath)) {
9696
return { filePath: resource.fsPath, options };
9797
}
9898

src/vs/workbench/parts/files/common/explorerModel.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace
1616
import { IEditorGroup, toResource, IEditorIdentifier } from 'vs/workbench/common/editor';
1717
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
1818
import { getPathLabel } from 'vs/base/common/labels';
19+
import { Schemas } from 'vs/base/common/network';
1920

2021
export class Model {
2122

@@ -397,7 +398,7 @@ export class OpenEditor implements IEditorIdentifier {
397398
}
398399

399400
public isUntitled(): boolean {
400-
return !!toResource(this.editor, { supportSideBySide: true, filter: 'untitled' });
401+
return !!toResource(this.editor, { supportSideBySide: true, filter: Schemas.untitled });
401402
}
402403

403404
public isDirty(): boolean {

src/vs/workbench/parts/files/electron-browser/fileActions.contribution.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { AutoSaveContext } from 'vs/workbench/services/textfile/common/textfiles
2424
import { ResourceContextKey } from 'vs/workbench/common/resources';
2525
import { WorkbenchListDoubleSelection } from 'vs/platform/list/browser/listService';
2626
import URI from 'vs/base/common/uri';
27+
import { Schemas } from 'vs/base/common/network';
2728

2829
// Contribute Global Actions
2930
const category = nls.localize('filesCategory', "File");
@@ -228,7 +229,7 @@ MenuRegistry.appendMenuItem(MenuId.OpenEditorsContext, {
228229
id: SAVE_FILE_AS_COMMAND_ID,
229230
title: SAVE_FILE_AS_LABEL
230231
},
231-
when: ResourceContextKey.Scheme.isEqualTo('untitled')
232+
when: ResourceContextKey.Scheme.isEqualTo(Schemas.untitled)
232233
});
233234

234235
MenuRegistry.appendMenuItem(MenuId.OpenEditorsContext, {

0 commit comments

Comments
 (0)