summaryrefslogtreecommitdiff
path: root/flake8/plugins/manager.py
diff options
context:
space:
mode:
Diffstat (limited to 'flake8/plugins/manager.py')
-rw-r--r--flake8/plugins/manager.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/flake8/plugins/manager.py b/flake8/plugins/manager.py
index fe51391..dffc2f6 100644
--- a/flake8/plugins/manager.py
+++ b/flake8/plugins/manager.py
@@ -158,6 +158,14 @@ class Plugin(object):
LOG.critical(str(failed_to_load))
raise failed_to_load
+ def enable(self, optmanager):
+ """Remove plugin name from the default ignore list."""
+ optmanager.remove_from_default_ignore([self.name])
+
+ def disable(self, optmanager):
+ """Add the plugin name to the default ignore list."""
+ optmanager.extend_default_ignore([self.name])
+
def provide_options(self, optmanager, options, extra_args):
"""Pass the parsed options and extra arguments to the plugin."""
parse_options = getattr(self.plugin, 'parse_options', None)
@@ -168,6 +176,9 @@ class Plugin(object):
except TypeError:
parse_options(options)
+ if self.name in options.enable_extensions:
+ self.enable(optmanager)
+
def register_options(self, optmanager):
"""Register the plugin's command-line options on the OptionManager.
@@ -187,7 +198,7 @@ class Plugin(object):
add_options(optmanager)
if self.off_by_default:
- optmanager.extend_default_ignore([self.name])
+ self.disable(optmanager)
class PluginManager(object): # pylint: disable=too-few-public-methods