提交 dc0ab500 编写于 作者: M Matt Bierner

Use isEqual for comparing uris in more places vs .toString()

上级 7e70b1dd
...@@ -31,6 +31,7 @@ import { CommandsRegistry } from 'vs/platform/commands/common/commands'; ...@@ -31,6 +31,7 @@ import { CommandsRegistry } from 'vs/platform/commands/common/commands';
import { EditorStateCancellationTokenSource, CodeEditorStateFlag } from 'vs/editor/browser/core/editorState'; import { EditorStateCancellationTokenSource, CodeEditorStateFlag } from 'vs/editor/browser/core/editorState';
import { ISymbolNavigationService } from 'vs/editor/contrib/goToDefinition/goToDefinitionResultsNavigation'; import { ISymbolNavigationService } from 'vs/editor/contrib/goToDefinition/goToDefinitionResultsNavigation';
import { EditorOption } from 'vs/editor/common/config/editorOptions'; import { EditorOption } from 'vs/editor/common/config/editorOptions';
import { isEqual } from 'vs/base/common/resources';
export class DefinitionActionConfig { export class DefinitionActionConfig {
...@@ -84,7 +85,7 @@ export class DefinitionAction extends EditorAction { ...@@ -84,7 +85,7 @@ export class DefinitionAction extends EditorAction {
} }
const newLen = result.push(reference); const newLen = result.push(reference);
if (this._configuration.filterCurrent if (this._configuration.filterCurrent
&& reference.uri.toString() === model.uri.toString() && isEqual(reference.uri, model.uri)
&& Range.containsPosition(reference.range, pos) && Range.containsPosition(reference.range, pos)
&& idxOfCurrent === -1 && idxOfCurrent === -1
) { ) {
......
...@@ -18,6 +18,7 @@ import { Emitter, Event } from 'vs/base/common/event'; ...@@ -18,6 +18,7 @@ import { Emitter, Event } from 'vs/base/common/event';
import { localize } from 'vs/nls'; import { localize } from 'vs/nls';
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
import { INotificationService } from 'vs/platform/notification/common/notification'; import { INotificationService } from 'vs/platform/notification/common/notification';
import { isEqual } from 'vs/base/common/resources';
export const ctxHasSymbols = new RawContextKey('hasSymbols', false); export const ctxHasSymbols = new RawContextKey('hasSymbols', false);
...@@ -92,7 +93,7 @@ class SymbolNavigationService implements ISymbolNavigationService { ...@@ -92,7 +93,7 @@ class SymbolNavigationService implements ISymbolNavigationService {
let seenUri: boolean = false; let seenUri: boolean = false;
let seenPosition: boolean = false; let seenPosition: boolean = false;
for (const reference of refModel.references) { for (const reference of refModel.references) {
if (reference.uri.toString() === model.uri.toString()) { if (isEqual(reference.uri, model.uri)) {
seenUri = true; seenUri = true;
seenPosition = seenPosition || Range.containsPosition(reference.range, position); seenPosition = seenPosition || Range.containsPosition(reference.range, position);
} else if (seenUri) { } else if (seenUri) {
......
...@@ -26,6 +26,7 @@ import { onUnexpectedError } from 'vs/base/common/errors'; ...@@ -26,6 +26,7 @@ import { onUnexpectedError } from 'vs/base/common/errors';
import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions';
import { Action } from 'vs/base/common/actions'; import { Action } from 'vs/base/common/actions';
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
import { isEqual } from 'vs/base/common/resources';
class MarkerModel { class MarkerModel {
...@@ -310,7 +311,7 @@ export class MarkerController implements editorCommon.IEditorContribution { ...@@ -310,7 +311,7 @@ export class MarkerController implements editorCommon.IEditorContribution {
} }
private _onMarkerChanged(changedResources: URI[]): void { private _onMarkerChanged(changedResources: URI[]): void {
let editorModel = this._editor.getModel(); const editorModel = this._editor.getModel();
if (!editorModel) { if (!editorModel) {
return; return;
} }
...@@ -319,7 +320,7 @@ export class MarkerController implements editorCommon.IEditorContribution { ...@@ -319,7 +320,7 @@ export class MarkerController implements editorCommon.IEditorContribution {
return; return;
} }
if (!changedResources.some(r => editorModel!.uri.toString() === r.toString())) { if (!changedResources.some(r => isEqual(editorModel.uri, r))) {
return; return;
} }
this._model.setMarkers(this._getMarkers()); this._model.setMarkers(this._getMarkers());
...@@ -371,7 +372,7 @@ class MarkerNavigationAction extends EditorAction { ...@@ -371,7 +372,7 @@ class MarkerNavigationAction extends EditorAction {
return Promise.resolve(undefined); return Promise.resolve(undefined);
} }
let editorModel = editor.getModel(); const editorModel = editor.getModel();
if (!editorModel) { if (!editorModel) {
return Promise.resolve(undefined); return Promise.resolve(undefined);
} }
...@@ -389,7 +390,7 @@ class MarkerNavigationAction extends EditorAction { ...@@ -389,7 +390,7 @@ class MarkerNavigationAction extends EditorAction {
} }
let newMarker = markers[idx]; let newMarker = markers[idx];
if (newMarker.resource.toString() === editorModel!.uri.toString()) { if (isEqual(newMarker.resource, editorModel.uri)) {
// the next `resource` is this resource which // the next `resource` is this resource which
// means we cycle within this file // means we cycle within this file
model.move(this._isNext, true); model.move(this._isNext, true);
......
...@@ -10,7 +10,7 @@ import { Color } from 'vs/base/common/color'; ...@@ -10,7 +10,7 @@ import { Color } from 'vs/base/common/color';
import { Emitter, Event } from 'vs/base/common/event'; import { Emitter, Event } from 'vs/base/common/event';
import { dispose, IDisposable, IReference, DisposableStore } from 'vs/base/common/lifecycle'; import { dispose, IDisposable, IReference, DisposableStore } from 'vs/base/common/lifecycle';
import { Schemas } from 'vs/base/common/network'; import { Schemas } from 'vs/base/common/network';
import { basenameOrAuthority, dirname } from 'vs/base/common/resources'; import { basenameOrAuthority, dirname, isEqual } from 'vs/base/common/resources';
import 'vs/css!./media/referencesWidget'; import 'vs/css!./media/referencesWidget';
import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
import { EmbeddedCodeEditorWidget } from 'vs/editor/browser/widget/embeddedCodeEditorWidget'; import { EmbeddedCodeEditorWidget } from 'vs/editor/browser/widget/embeddedCodeEditorWidget';
...@@ -66,7 +66,7 @@ class DecorationsManager implements IDisposable { ...@@ -66,7 +66,7 @@ class DecorationsManager implements IDisposable {
const model = this._editor.getModel(); const model = this._editor.getModel();
if (model) { if (model) {
for (const ref of this._model.groups) { for (const ref of this._model.groups) {
if (ref.uri.toString() === model.uri.toString()) { if (isEqual(ref.uri, model.uri)) {
this._addDecorations(ref); this._addDecorations(ref);
return; return;
} }
......
...@@ -12,6 +12,7 @@ import { IWebviewService, WebviewElement } from 'vs/workbench/contrib/webview/br ...@@ -12,6 +12,7 @@ import { IWebviewService, WebviewElement } from 'vs/workbench/contrib/webview/br
import { DisposableStore } from 'vs/base/common/lifecycle'; import { DisposableStore } from 'vs/base/common/lifecycle';
import { IActiveCodeEditor, IViewZone } from 'vs/editor/browser/editorBrowser'; import { IActiveCodeEditor, IViewZone } from 'vs/editor/browser/editorBrowser';
import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions'; import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions';
import { isEqual } from 'vs/base/common/resources';
// todo@joh move these things back into something like contrib/insets // todo@joh move these things back into something like contrib/insets
class EditorWebviewZone implements IViewZone { class EditorWebviewZone implements IViewZone {
...@@ -75,7 +76,7 @@ export class MainThreadEditorInsets implements MainThreadEditorInsetsShape { ...@@ -75,7 +76,7 @@ export class MainThreadEditorInsets implements MainThreadEditorInsetsShape {
id = id.substr(0, id.indexOf(',')); //todo@joh HACK id = id.substr(0, id.indexOf(',')); //todo@joh HACK
for (const candidate of this._editorService.listCodeEditors()) { for (const candidate of this._editorService.listCodeEditors()) {
if (candidate.getId() === id && candidate.hasModel() && candidate.getModel()!.uri.toString() === URI.revive(uri).toString()) { if (candidate.getId() === id && candidate.hasModel() && isEqual(candidate.getModel().uri, URI.revive(uri))) {
editor = candidate; editor = candidate;
break; break;
} }
......
...@@ -7,7 +7,7 @@ import 'vs/css!./media/editorstatus'; ...@@ -7,7 +7,7 @@ import 'vs/css!./media/editorstatus';
import * as nls from 'vs/nls'; import * as nls from 'vs/nls';
import { runAtThisOrScheduleAtNextAnimationFrame } from 'vs/base/browser/dom'; import { runAtThisOrScheduleAtNextAnimationFrame } from 'vs/base/browser/dom';
import { format } from 'vs/base/common/strings'; import { format } from 'vs/base/common/strings';
import { extname, basename } from 'vs/base/common/resources'; import { extname, basename, isEqual } from 'vs/base/common/resources';
import { areFunctions, withNullAsUndefined, withUndefinedAsNull } from 'vs/base/common/types'; import { areFunctions, withNullAsUndefined, withUndefinedAsNull } from 'vs/base/common/types';
import { URI } from 'vs/base/common/uri'; import { URI } from 'vs/base/common/uri';
import { Action } from 'vs/base/common/actions'; import { Action } from 'vs/base/common/actions';
...@@ -794,7 +794,7 @@ export class EditorStatus extends Disposable implements IWorkbenchContribution { ...@@ -794,7 +794,7 @@ export class EditorStatus extends Disposable implements IWorkbenchContribution {
const activeControl = this.editorService.activeControl; const activeControl = this.editorService.activeControl;
if (activeControl) { if (activeControl) {
const activeResource = toResource(activeControl.input, { supportSideBySide: SideBySideEditor.MASTER }); const activeResource = toResource(activeControl.input, { supportSideBySide: SideBySideEditor.MASTER });
if (activeResource && activeResource.toString() === resource.toString()) { if (activeResource && isEqual(activeResource, resource)) {
return this.onEncodingChange(activeControl); // only update if the encoding changed for the active resource return this.onEncodingChange(activeControl); // only update if the encoding changed for the active resource
} }
} }
......
...@@ -34,6 +34,7 @@ import { PANEL_ACTIVE_TITLE_BORDER, PANEL_ACTIVE_TITLE_FOREGROUND, PANEL_INACTIV ...@@ -34,6 +34,7 @@ import { PANEL_ACTIVE_TITLE_BORDER, PANEL_ACTIVE_TITLE_FOREGROUND, PANEL_INACTIV
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
import { ISettingsGroup } from 'vs/workbench/services/preferences/common/preferences'; import { ISettingsGroup } from 'vs/workbench/services/preferences/common/preferences';
import { EditorOption } from 'vs/editor/common/config/editorOptions'; import { EditorOption } from 'vs/editor/common/config/editorOptions';
import { isEqual } from 'vs/base/common/resources';
export class SettingsHeaderWidget extends Widget implements IViewZone { export class SettingsHeaderWidget extends Widget implements IViewZone {
...@@ -387,7 +388,7 @@ export class FolderSettingsActionViewItem extends BaseActionViewItem { ...@@ -387,7 +388,7 @@ export class FolderSettingsActionViewItem extends BaseActionViewItem {
const oldFolder = this._folder; const oldFolder = this._folder;
const workspace = this.contextService.getWorkspace(); const workspace = this.contextService.getWorkspace();
if (oldFolder) { if (oldFolder) {
this._folder = workspace.folders.filter(folder => folder.uri.toString() === oldFolder.uri.toString())[0] || workspace.folders[0]; this._folder = workspace.folders.filter(folder => isEqual(folder.uri, oldFolder.uri))[0] || workspace.folders[0];
} }
this._folder = this._folder ? this._folder : workspace.folders.length === 1 ? workspace.folders[0] : null; this._folder = this._folder ? this._folder : workspace.folders.length === 1 ? workspace.folders[0] : null;
...@@ -440,7 +441,7 @@ export class FolderSettingsActionViewItem extends BaseActionViewItem { ...@@ -440,7 +441,7 @@ export class FolderSettingsActionViewItem extends BaseActionViewItem {
return <IAction>{ return <IAction>{
id: 'folderSettingsTarget' + index, id: 'folderSettingsTarget' + index,
label: this.labelWithCount(folder.name, folderCount), label: this.labelWithCount(folder.name, folderCount),
checked: this.folder && this.folder.uri.toString() === folder.uri.toString(), checked: this.folder && isEqual(this.folder.uri, folder.uri),
enabled: true, enabled: true,
run: () => this._action.run(folder) run: () => this._action.run(folder)
}; };
...@@ -574,7 +575,7 @@ export class SettingsTargetsWidget extends Widget { ...@@ -574,7 +575,7 @@ export class SettingsTargetsWidget extends Widget {
const isSameTarget = this.settingsTarget === settingsTarget || const isSameTarget = this.settingsTarget === settingsTarget ||
settingsTarget instanceof URI && settingsTarget instanceof URI &&
this.settingsTarget instanceof URI && this.settingsTarget instanceof URI &&
this.settingsTarget.toString() === settingsTarget.toString(); isEqual(this.settingsTarget, settingsTarget);
if (!isSameTarget) { if (!isSameTarget) {
this.settingsTarget = settingsTarget; this.settingsTarget = settingsTarget;
......
...@@ -10,6 +10,7 @@ import { IReference } from 'vs/base/common/lifecycle'; ...@@ -10,6 +10,7 @@ import { IReference } from 'vs/base/common/lifecycle';
import { ITextModelService } from 'vs/editor/common/services/resolverService'; import { ITextModelService } from 'vs/editor/common/services/resolverService';
import * as marked from 'vs/base/common/marked/marked'; import * as marked from 'vs/base/common/marked/marked';
import { Schemas } from 'vs/base/common/network'; import { Schemas } from 'vs/base/common/network';
import { isEqual } from 'vs/base/common/resources';
export class WalkThroughModel extends EditorModel { export class WalkThroughModel extends EditorModel {
...@@ -78,7 +79,7 @@ export class WalkThroughInput extends EditorInput { ...@@ -78,7 +79,7 @@ export class WalkThroughInput extends EditorInput {
return this.options.telemetryFrom; return this.options.telemetryFrom;
} }
getTelemetryDescriptor(): { [key: string]: unknown } { getTelemetryDescriptor(): { [key: string]: unknown; } {
const descriptor = super.getTelemetryDescriptor(); const descriptor = super.getTelemetryDescriptor();
descriptor['target'] = this.getTelemetryFrom(); descriptor['target'] = this.getTelemetryFrom();
/* __GDPR__FRAGMENT__ /* __GDPR__FRAGMENT__
...@@ -130,7 +131,7 @@ export class WalkThroughInput extends EditorInput { ...@@ -130,7 +131,7 @@ export class WalkThroughInput extends EditorInput {
let otherResourceEditorInput = <WalkThroughInput>otherInput; let otherResourceEditorInput = <WalkThroughInput>otherInput;
// Compare by properties // Compare by properties
return otherResourceEditorInput.options.resource.toString() === this.options.resource.toString(); return isEqual(otherResourceEditorInput.options.resource, this.options.resource);
} }
return false; return false;
......
...@@ -15,7 +15,7 @@ import { IFileService } from 'vs/platform/files/common/files'; ...@@ -15,7 +15,7 @@ import { IFileService } from 'vs/platform/files/common/files';
import { Schemas } from 'vs/base/common/network'; import { Schemas } from 'vs/base/common/network';
import { Event, Emitter } from 'vs/base/common/event'; import { Event, Emitter } from 'vs/base/common/event';
import { URI } from 'vs/base/common/uri'; import { URI } from 'vs/base/common/uri';
import { basename } from 'vs/base/common/resources'; import { basename, isEqual } from 'vs/base/common/resources';
import { DiffEditorInput } from 'vs/workbench/common/editor/diffEditorInput'; import { DiffEditorInput } from 'vs/workbench/common/editor/diffEditorInput';
import { localize } from 'vs/nls'; import { localize } from 'vs/nls';
import { IEditorGroupsService, IEditorGroup, GroupsOrder, IEditorReplacement, GroupChangeKind, preferredSideBySideGroupDirection } from 'vs/workbench/services/editor/common/editorGroupsService'; import { IEditorGroupsService, IEditorGroup, GroupsOrder, IEditorReplacement, GroupChangeKind, preferredSideBySideGroupDirection } from 'vs/workbench/services/editor/common/editorGroupsService';
...@@ -464,7 +464,7 @@ export class EditorService extends Disposable implements EditorServiceImpl { ...@@ -464,7 +464,7 @@ export class EditorService extends Disposable implements EditorServiceImpl {
} }
const resourceInput = editor as IResourceInput | IUntitledResourceInput; const resourceInput = editor as IResourceInput | IUntitledResourceInput;
if (resourceInput.resource && resource.toString() === resourceInput.resource.toString()) { if (resourceInput.resource && isEqual(resource, resourceInput.resource)) {
return editorInGroup; return editorInGroup;
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册