From f870dc7b72fff7e91b30803ee497cea0e6819fca Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 12 Jun 2013 11:40:49 -0700 Subject: [PATCH] Allow autocomplete package to be deactivated --- src/packages/autocomplete/lib/autocomplete.coffee | 9 ++++++++- .../autocomplete/spec/autocomplete-spec.coffee | 11 +++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/packages/autocomplete/lib/autocomplete.coffee b/src/packages/autocomplete/lib/autocomplete.coffee index fc0e3000b..da9797231 100644 --- a/src/packages/autocomplete/lib/autocomplete.coffee +++ b/src/packages/autocomplete/lib/autocomplete.coffee @@ -2,8 +2,15 @@ AutocompleteView = require './autocomplete-view' module.exports = autoCompleteViews: [] + editorSubscription: null activate: -> - rootView.eachEditor (editor) => + @editorSubscription = rootView.eachEditor (editor) => if editor.attached and not editor.mini @autoCompleteViews.push new AutocompleteView(editor) + + deactivate: -> + @editorSubscription?.off() + @editorSubscription = null + @autoCompleteViews.forEach (autoCompleteView) -> autoCompleteView.remove() + @autoCompleteViews = [] diff --git a/src/packages/autocomplete/spec/autocomplete-spec.coffee b/src/packages/autocomplete/spec/autocomplete-spec.coffee index fa0c4bb37..cf04cfe42 100644 --- a/src/packages/autocomplete/spec/autocomplete-spec.coffee +++ b/src/packages/autocomplete/spec/autocomplete-spec.coffee @@ -33,6 +33,17 @@ describe "Autocomplete", -> rightEditor.trigger 'autocomplete:attach' expect(rightEditor.find('.autocomplete')).toExist() + describe "@deactivate()", -> + it "removes all autocomplete views and doesn't create new ones when new editors are opened", -> + atom.activatePackage('autocomplete') + rootView.getActiveView().trigger "autocomplete:attach" + expect(rootView.getActiveView().find('.autocomplete')).toExist() + atom.deactivatePackage('autocomplete') + expect(rootView.getActiveView().find('.autocomplete')).not.toExist() + rootView.getActiveView().splitRight() + rootView.getActiveView().trigger "autocomplete:attach" + expect(rootView.getActiveView().find('.autocomplete')).not.toExist() + describe "AutocompleteView", -> autocomplete = null editor = null