提交 cea83e90 编写于 作者: B Benjamin Pasero

fix #71485

上级 77bbfa0b
......@@ -120,7 +120,7 @@ export class ContextView extends Disposable {
setContainer(container: HTMLElement | null): void {
if (this.container) {
this.toDisposeOnSetContainer = dispose(this.toDisposeOnSetContainer);
dispose(this.toDisposeOnSetContainer);
this.container.removeChild(this.view);
this.container = null;
}
......
......@@ -199,7 +199,7 @@ export class GlobalStorageDatabaseChannelClient extends Disposable implements IS
close(): Promise<void> {
// when we are about to close, we start to ignore main-side changes since we close anyway
this.onDidChangeItemsOnMainListener = dispose(this.onDidChangeItemsOnMainListener);
dispose(this.onDidChangeItemsOnMainListener);
return Promise.resolve(); // global storage is closed on the main side
}
......@@ -207,6 +207,6 @@ export class GlobalStorageDatabaseChannelClient extends Disposable implements IS
dispose(): void {
super.dispose();
this.onDidChangeItemsOnMainListener = dispose(this.onDidChangeItemsOnMainListener);
dispose(this.onDidChangeItemsOnMainListener);
}
}
\ No newline at end of file
......@@ -105,8 +105,8 @@ export class StorageService extends Disposable implements IStorageService {
};
// Dispose old (if any)
this.workspaceStorage = dispose(this.workspaceStorage);
this.workspaceStorageListener = dispose(this.workspaceStorageListener);
dispose(this.workspaceStorage);
dispose(this.workspaceStorageListener);
// Create new
this.workspaceStoragePath = workspaceStoragePath;
......
......@@ -40,7 +40,7 @@ export abstract class BaseBinaryResourceEditor extends BaseEditor {
private metadata: string | undefined;
private binaryContainer: HTMLElement;
private scrollbar: DomScrollableElement;
private resourceViewerContext: ResourceViewerContext;
private resourceViewerContext: ResourceViewerContext | undefined;
constructor(
id: string,
......@@ -127,7 +127,8 @@ export abstract class BaseBinaryResourceEditor extends BaseEditor {
// Clear Resource Viewer
clearNode(this.binaryContainer);
this.resourceViewerContext = dispose(this.resourceViewerContext);
dispose(this.resourceViewerContext);
this.resourceViewerContext = undefined;
super.clearInput();
}
......@@ -149,7 +150,8 @@ export abstract class BaseBinaryResourceEditor extends BaseEditor {
dispose(): void {
this.binaryContainer.remove();
this.resourceViewerContext = dispose(this.resourceViewerContext);
dispose(this.resourceViewerContext);
this.resourceViewerContext = undefined;
super.dispose();
}
......
......@@ -217,7 +217,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView {
let activeEditorListener: IDisposable;
const observeActiveEditor = () => {
activeEditorListener = dispose(activeEditorListener);
dispose(activeEditorListener);
const activeEditor = this._group.activeEditor;
if (activeEditor) {
......
......@@ -101,7 +101,7 @@ export class OpenWorkspaceButtonContribution extends Disposable implements IEdit
private static readonly ID = 'editor.contrib.openWorkspaceButton';
private openWorkspaceButton: FloatingClickWidget;
private openWorkspaceButton: FloatingClickWidget | undefined;
constructor(
private editor: ICodeEditor,
......@@ -172,7 +172,8 @@ export class OpenWorkspaceButtonContribution extends Disposable implements IEdit
}
private disposeOpenWorkspaceWidgetRenderer(): void {
this.openWorkspaceButton = dispose(this.openWorkspaceButton);
dispose(this.openWorkspaceButton);
this.openWorkspaceButton = undefined;
}
dispose(): void {
......
......@@ -329,11 +329,7 @@ class StatusBarEntryItem implements IStatusbarItem {
el.appendChild(textContainer);
return {
dispose: () => {
toDispose = dispose(toDispose);
}
};
return toDisposable(() => toDispose = dispose(toDispose));
}
private applyColor(container: HTMLElement, color: string | ThemeColor | undefined, isBackground?: boolean): IDisposable {
......
......@@ -131,7 +131,7 @@ class NavBar {
}
dispose(): void {
this.actionbar = dispose(this.actionbar);
dispose(this.actionbar);
}
}
......
......@@ -99,7 +99,7 @@ export class TextFileEditor extends BaseTextEditor {
// React to editors closing to preserve or clear view state. This needs to happen
// in the onWillCloseEditor because at that time the editor has not yet
// been disposed and we can safely persist the view state still as needed.
this.groupListener = dispose(this.groupListener);
dispose(this.groupListener);
this.groupListener = ((group as IEditorGroupView).onWillCloseEditor(e => this.onWillCloseEditorInGroup(e)));
}
......@@ -296,7 +296,7 @@ export class TextFileEditor extends BaseTextEditor {
}
dispose(): void {
this.groupListener = dispose(this.groupListener);
dispose(this.groupListener);
super.dispose();
}
......
......@@ -871,7 +871,7 @@ export class CompareWithClipboardAction extends Action {
private static readonly SCHEME = 'clipboardCompare';
private registrationDisposal: IDisposable;
private registrationDisposal: IDisposable | undefined;
constructor(
id: string,
......@@ -898,7 +898,8 @@ export class CompareWithClipboardAction extends Action {
const editorLabel = nls.localize('clipboardComparisonLabel', "Clipboard ↔ {0}", name);
return this.editorService.openEditor({ leftResource: resource.with({ scheme: CompareWithClipboardAction.SCHEME }), rightResource: resource, label: editorLabel }).finally(() => {
this.registrationDisposal = dispose(this.registrationDisposal);
dispose(this.registrationDisposal);
this.registrationDisposal = undefined;
});
}
......@@ -908,7 +909,8 @@ export class CompareWithClipboardAction extends Action {
public dispose(): void {
super.dispose();
this.registrationDisposal = dispose(this.registrationDisposal);
dispose(this.registrationDisposal);
this.registrationDisposal = undefined;
}
}
......
......@@ -334,7 +334,7 @@ export class FilesFilter implements ITreeFilter<ExplorerItem, FuzzyScore> {
}
public dispose(): void {
this.workspaceFolderChangeListener = dispose(this.workspaceFolderChangeListener);
dispose(this.workspaceFolderChangeListener);
}
}
......
......@@ -70,7 +70,7 @@ export class ExplorerModel implements IDisposable {
}
dispose(): void {
this._listener = dispose(this._listener);
dispose(this._listener);
}
}
......
......@@ -22,6 +22,7 @@ import { Schemas } from 'vs/base/common/network';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { IEditorGroup } from 'vs/workbench/services/editor/common/editorGroupsService';
import { ExplorerItem } from 'vs/workbench/contrib/files/common/explorerModel';
import { once } from 'vs/base/common/functional';
/**
* Explorer viewlet id.
......@@ -131,7 +132,7 @@ export const SortOrderConfiguration = {
export type SortOrder = 'default' | 'mixed' | 'filesFirst' | 'type' | 'modified';
export class FileOnDiskContentProvider implements ITextModelContentProvider {
private fileWatcher: IDisposable;
private fileWatcherDisposable: IDisposable | undefined;
constructor(
@ITextFileService private readonly textFileService: ITextFileService,
......@@ -148,17 +149,17 @@ export class FileOnDiskContentProvider implements ITextModelContentProvider {
return this.resolveEditorModel(resource).then(codeEditorModel => {
// Make sure to keep contents on disk up to date when it changes
if (!this.fileWatcher) {
this.fileWatcher = this.fileService.onFileChanges(changes => {
if (!this.fileWatcherDisposable) {
this.fileWatcherDisposable = this.fileService.onFileChanges(changes => {
if (changes.contains(fileOnDiskResource, FileChangeType.UPDATED)) {
this.resolveEditorModel(resource, false /* do not create if missing */); // update model when resource changes
}
});
if (codeEditorModel) {
const disposeListener = codeEditorModel.onWillDispose(() => {
disposeListener.dispose();
this.fileWatcher = dispose(this.fileWatcher);
once(codeEditorModel.onWillDispose)(() => {
dispose(this.fileWatcherDisposable);
this.fileWatcherDisposable = undefined;
});
}
}
......@@ -194,7 +195,8 @@ export class FileOnDiskContentProvider implements ITextModelContentProvider {
}
dispose(): void {
this.fileWatcher = dispose(this.fileWatcher);
dispose(this.fileWatcherDisposable);
this.fileWatcherDisposable = undefined;
}
}
......
......@@ -19,7 +19,7 @@ export class OutputLinkProvider {
private worker?: MonacoWebWorker<OutputLinkComputer>;
private disposeWorkerScheduler: RunOnceScheduler;
private linkProviderRegistration: IDisposable;
private linkProviderRegistration: IDisposable | undefined;
constructor(
@IWorkspaceContextService private readonly contextService: IWorkspaceContextService,
......@@ -48,7 +48,8 @@ export class OutputLinkProvider {
});
}
} else {
this.linkProviderRegistration = dispose(this.linkProviderRegistration);
dispose(this.linkProviderRegistration);
this.linkProviderRegistration = undefined;
}
// Dispose worker to recreate with folders on next provideLinks request
......
......@@ -897,7 +897,7 @@ class ActionsColumn extends Column {
}
dispose(): void {
this.actionBar = dispose(this.actionBar);
dispose(this.actionBar);
}
}
......
......@@ -53,7 +53,7 @@ export class PreferencesContribution implements IWorkbenchContribution {
private handleSettingsEditorOverride(): void {
// dispose any old listener we had
this.editorOpeningListener = dispose(this.editorOpeningListener);
dispose(this.editorOpeningListener);
// install editor opening listener unless user has disabled this
if (!!this.configurationService.getValue(USE_SPLIT_JSON_SETTING)) {
......@@ -144,7 +144,7 @@ export class PreferencesContribution implements IWorkbenchContribution {
}
dispose(): void {
this.editorOpeningListener = dispose(this.editorOpeningListener);
this.settingsListener = dispose(this.settingsListener);
dispose(this.editorOpeningListener);
dispose(this.settingsListener);
}
}
......@@ -144,7 +144,7 @@ export class WorkspaceChangeExtHostRelauncher extends Disposable implements IWor
private firstFolderResource?: URI;
private extensionHostRestarter: RunOnceScheduler;
private onDidChangeWorkspaceFoldersUnbind: IDisposable;
private onDidChangeWorkspaceFoldersUnbind: IDisposable | undefined;
constructor(
@IWorkspaceContextService private readonly contextService: IWorkspaceContextService,
......@@ -196,7 +196,8 @@ export class WorkspaceChangeExtHostRelauncher extends Disposable implements IWor
// Ignore the workspace folder changes in EMPTY or FOLDER state
else {
this.onDidChangeWorkspaceFoldersUnbind = dispose(this.onDidChangeWorkspaceFoldersUnbind);
dispose(this.onDidChangeWorkspaceFoldersUnbind);
this.onDidChangeWorkspaceFoldersUnbind = undefined;
}
}
......
......@@ -479,7 +479,7 @@ class FileServiceBasedWorkspaceConfiguration extends AbstractWorkspaceConfigurat
protected loadWorkspaceConfigurationContents(workspaceConfigurationResource: URI): Promise<string> {
if (!(this.workspaceConfig && resources.isEqual(this.workspaceConfig, workspaceConfigurationResource))) {
this.workspaceConfigWatcher = dispose(this.workspaceConfigWatcher);
dispose(this.workspaceConfigWatcher);
this.workspaceConfig = workspaceConfigurationResource;
this.workspaceConfigWatcher = this.watchWorkspaceConfigurationFile();
}
......@@ -505,7 +505,7 @@ class FileServiceBasedWorkspaceConfiguration extends AbstractWorkspaceConfigurat
dispose(): void {
super.dispose();
this.workspaceConfigWatcher = dispose(this.workspaceConfigWatcher);
dispose(this.workspaceConfigWatcher);
}
}
......
......@@ -314,7 +314,7 @@ export class DiskFileSystemProvider extends Disposable implements IFileSystemPro
private _onDidChangeFile: Emitter<IFileChange[]> = this._register(new Emitter<IFileChange[]>());
get onDidChangeFile(): Event<IFileChange[]> { return this._onDidChangeFile.event; }
private recursiveWatcher: WindowsWatcherService | UnixWatcherService | NsfwWatcherService;
private recursiveWatcher: WindowsWatcherService | UnixWatcherService | NsfwWatcherService | undefined;
private recursiveFoldersToWatch: { path: string, excludes: string[] }[] = [];
private recursiveWatchRequestDelayer: ThrottledDelayer<void> = this._register(new ThrottledDelayer<void>(0));
......@@ -367,7 +367,7 @@ export class DiskFileSystemProvider extends Disposable implements IFileSystemPro
else {
// Dispose old
this.recursiveWatcher = dispose(this.recursiveWatcher);
dispose(this.recursiveWatcher);
let watcherImpl: {
new(
......@@ -452,6 +452,7 @@ export class DiskFileSystemProvider extends Disposable implements IFileSystemPro
dispose(): void {
super.dispose();
this.recursiveWatcher = dispose(this.recursiveWatcher);
dispose(this.recursiveWatcher);
this.recursiveWatcher = undefined;
}
}
......@@ -395,7 +395,7 @@ export class WorkbenchThemeService implements IWorkbenchThemeService {
}
if (this.fileService && !resources.isEqual(newTheme.location, this.watchedColorThemeLocation)) {
this.watchedColorThemeDisposable = dispose(this.watchedColorThemeDisposable);
dispose(this.watchedColorThemeDisposable);
this.watchedColorThemeLocation = undefined;
if (newTheme.location && (newTheme.watch || !!this.environmentService.extensionDevelopmentLocationURI)) {
......@@ -512,7 +512,7 @@ export class WorkbenchThemeService implements IWorkbenchThemeService {
}
if (this.fileService && !resources.isEqual(iconThemeData.location, this.watchedIconThemeLocation)) {
this.watchedIconThemeDisposable = dispose(this.watchedIconThemeDisposable);
dispose(this.watchedIconThemeDisposable);
this.watchedIconThemeLocation = undefined;
if (iconThemeData.location && (iconThemeData.watch || !!this.environmentService.extensionDevelopmentLocationURI)) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册