Skip to content

Commit ee27818

Browse files
author
Benjamin Pasero
committed
💄 - less usage of URI.fsPath
1 parent 58b38d5 commit ee27818

10 files changed

Lines changed: 23 additions & 15 deletions

File tree

src/vs/base/common/resources.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ export function normalizePath(resource: URI): URI {
146146
export function originalFSPath(uri: URI): string {
147147
let value: string;
148148
const uriPath = uri.path;
149-
if (uri.authority && uriPath.length > 1 && uri.scheme === 'file') {
149+
if (uri.authority && uriPath.length > 1 && uri.scheme === Schemas.file) {
150150
// unc path: file://shares/c$/far/boo
151151
value = `//${uri.authority}${uriPath}`;
152152
} else if (

src/vs/platform/workspaces/common/workspaces.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { IWorkspaceFolder, IWorkspace } from 'vs/platform/workspace/common/works
1010
import { URI, UriComponents } from 'vs/base/common/uri';
1111
import { isWindows, isLinux, isMacintosh } from 'vs/base/common/platform';
1212
import { extname } from 'vs/base/common/path';
13-
import { dirname, resolvePath, isEqualAuthority, isEqualOrParent, relativePath } from 'vs/base/common/resources';
13+
import { dirname, resolvePath, isEqualAuthority, isEqualOrParent, relativePath, extname as resourceExtname } from 'vs/base/common/resources';
1414
import * as jsonEdit from 'vs/base/common/jsonEdit';
1515
import * as json from 'vs/base/common/json';
1616
import { Schemas } from 'vs/base/common/network';
@@ -158,8 +158,10 @@ export function isSingleFolderWorkspaceInitializationPayload(obj: any): obj is I
158158

159159
const WORKSPACE_SUFFIX = '.' + WORKSPACE_EXTENSION;
160160

161-
export function hasWorkspaceFileExtension(path: string) {
162-
return extname(path) === WORKSPACE_SUFFIX;
161+
export function hasWorkspaceFileExtension(path: string | URI) {
162+
const ext = (typeof path === 'string') ? extname(path) : resourceExtname(path);
163+
164+
return ext === WORKSPACE_SUFFIX;
163165
}
164166

165167
const SLASH = '/';

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export class WorkspacesMainService extends Disposable implements IWorkspacesMain
6161
}
6262

6363
private isWorkspacePath(uri: URI): boolean {
64-
return this.isInsideWorkspacesHome(uri) || hasWorkspaceFileExtension(uri.path);
64+
return this.isInsideWorkspacesHome(uri) || hasWorkspaceFileExtension(uri);
6565
}
6666

6767
private doResolveWorkspace(path: URI, contents: string): IResolvedWorkspace | null {

src/vs/workbench/api/common/apiCommands.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export class OpenFolderAPICommand {
5252
}
5353
const options: IOpenSettings = { forceNewWindow: arg.forceNewWindow, noRecentEntry: arg.noRecentEntry };
5454
uri = URI.revive(uri);
55-
const uriToOpen: IURIToOpen = (hasWorkspaceFileExtension(uri.path) || uri.scheme === Schemas.untitled) ? { workspaceUri: uri } : { folderUri: uri };
55+
const uriToOpen: IURIToOpen = (hasWorkspaceFileExtension(uri) || uri.scheme === Schemas.untitled) ? { workspaceUri: uri } : { folderUri: uri };
5656
return executor.executeCommand('_files.windowOpen', [uriToOpen], options);
5757
}
5858
}

src/vs/workbench/browser/dnd.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ export class ResourcesDropHandler {
260260
return Promise.all(fileOnDiskResources.map(fileOnDiskResource => {
261261

262262
// Check for Workspace
263-
if (hasWorkspaceFileExtension(fileOnDiskResource.fsPath)) {
263+
if (hasWorkspaceFileExtension(fileOnDiskResource)) {
264264
urisToOpen.push({ workspaceUri: fileOnDiskResource });
265265

266266
return undefined;

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ import { IVisibleEditor } from 'vs/workbench/services/editor/common/editorServic
4747
import { withNullAsUndefined } from 'vs/base/common/types';
4848
import { hash } from 'vs/base/common/hash';
4949
import { guessMimeTypes } from 'vs/base/common/mime';
50-
import { extname } from 'vs/base/common/path';
50+
import { extname } from 'vs/base/common/resources';
51+
import { Schemas } from 'vs/base/common/network';
5152

5253
export class EditorGroupView extends Themable implements IEditorGroupView {
5354

@@ -520,8 +521,9 @@ export class EditorGroupView extends Themable implements IEditorGroupView {
520521
const descriptor = editor.getTelemetryDescriptor();
521522

522523
const resource = editor.getResource();
523-
if (resource && resource.fsPath) {
524-
descriptor['resource'] = { mimeType: guessMimeTypes(resource.fsPath).join(', '), scheme: resource.scheme, ext: extname(resource.fsPath), path: hash(resource.fsPath) };
524+
const path = resource ? resource.scheme === Schemas.file ? resource.fsPath : resource.path : undefined;
525+
if (resource && path) {
526+
descriptor['resource'] = { mimeType: guessMimeTypes(path).join(', '), scheme: resource.scheme, ext: extname(resource), path: hash(path) };
525527

526528
/* __GDPR__FRAGMENT__
527529
"EditorTelemetryDescriptor" : {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ export class OpenWorkspaceButtonContribution extends Disposable implements IEdit
139139
return false; // we need a model
140140
}
141141

142-
if (!hasWorkspaceFileExtension(model.uri.fsPath)) {
142+
if (!hasWorkspaceFileExtension(model.uri)) {
143143
return false; // we need a workspace file
144144
}
145145

src/vs/workbench/browser/parts/titlebar/titlebarPart.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import { IStorageService } from 'vs/platform/storage/common/storage';
3636
import { Parts, IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService';
3737
import { RunOnceScheduler } from 'vs/base/common/async';
3838
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
39+
import { Schemas } from 'vs/base/common/network';
3940

4041
export class TitlebarPart extends Part implements ITitleService {
4142

@@ -179,7 +180,7 @@ export class TitlebarPart extends Part implements ITitleService {
179180
}
180181

181182
private updateRepresentedFilename(): void {
182-
const file = toResource(this.editorService.activeEditor, { supportSideBySide: SideBySideEditor.MASTER, filterByScheme: 'file' });
183+
const file = toResource(this.editorService.activeEditor, { supportSideBySide: SideBySideEditor.MASTER, filterByScheme: Schemas.file });
183184
const path = file ? file.fsPath : '';
184185

185186
// Apply to window

src/vs/workbench/contrib/files/browser/files.contribution.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/la
3838
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
3939
import { ExplorerService } from 'vs/workbench/contrib/files/common/explorerService';
4040
import { SUPPORTED_ENCODINGS } from 'vs/workbench/services/textfile/common/textfiles';
41+
import { Schemas } from 'vs/base/common/network';
4142

4243
// Viewlet Action
4344
export class OpenExplorerViewletAction extends ShowViewletAction {
@@ -59,7 +60,7 @@ class FileUriLabelContribution implements IWorkbenchContribution {
5960

6061
constructor(@ILabelService labelService: ILabelService) {
6162
labelService.registerFormatter({
62-
scheme: 'file',
63+
scheme: Schemas.file,
6364
formatting: {
6465
label: '${authority}${path}',
6566
separator: sep,

src/vs/workbench/services/textfile/common/textFileEditorModel.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import { IDisposable, toDisposable } from 'vs/base/common/lifecycle';
3131
import { ILogService } from 'vs/platform/log/common/log';
3232
import { isEqual, isEqualOrParent, extname, basename } from 'vs/base/common/resources';
3333
import { onUnexpectedError } from 'vs/base/common/errors';
34+
import { Schemas } from 'vs/base/common/network';
3435

3536
/**
3637
* The text file editor model listens to changes to its underlying code editor model and saves these changes through the file service back to the disk.
@@ -824,10 +825,11 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil
824825
private getTelemetryData(reason: number | undefined): object {
825826
const ext = extname(this.resource);
826827
const fileName = basename(this.resource);
828+
const path = this.resource.scheme === Schemas.file ? this.resource.fsPath : this.resource.path;
827829
const telemetryData = {
828-
mimeType: guessMimeTypes(this.resource.fsPath).join(', '),
830+
mimeType: guessMimeTypes(path).join(', '),
829831
ext,
830-
path: hash(this.resource.fsPath),
832+
path: hash(path),
831833
reason
832834
};
833835

0 commit comments

Comments
 (0)