From 0caa1d2a8071c9bd6e325fe9e1d2ff79c549480b Mon Sep 17 00:00:00 2001 From: Justin Ratner Date: Wed, 6 Dec 2017 12:19:06 -0700 Subject: [PATCH] Remove editor from watchedEditors when editor is destroyed --- lib/autocomplete-manager.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/autocomplete-manager.js b/lib/autocomplete-manager.js index b04e0cdc..8db9abe3 100644 --- a/lib/autocomplete-manager.js +++ b/lib/autocomplete-manager.js @@ -179,13 +179,18 @@ class AutocompleteManager { this.subscriptions.add(disposable) return new Disposable(() => { disposable.dispose() - this.subscriptions.remove(disposable) + if (this.subscriptions != null) { + this.subscriptions.remove(disposable) + } this.watchedEditors.delete(editor) }) } handleEvents () { - this.subscriptions.add(atom.workspace.observeTextEditors((editor) => { this.watchEditor(editor, ['workspace-center']) })) + this.subscriptions.add(atom.workspace.observeTextEditors((editor) => { + const disposable = this.watchEditor(editor, ['workspace-center']) + editor.onDidDestroy(() => disposable.dispose()) + })) // Watch config values this.subscriptions.add(atom.config.observe('autosave.enabled', (value) => { this.autosaveEnabled = value }))