We move the logic to add or remove a plugin from the default ignore
list to individual methods on the Plugin class (Plugin#enable,
Plugin#disable) and use that when registering and parsing options.
If the plugin is off-by-default, Plugin#register_options will use
Plugin#disable. When parsing options via Plugin#provide_options, if
the plugin has been specified in --enable-extensions then it will be
re-enabled via Plugin#enable.
Since we now treat pep8 checks each as an individual plugin, we need a way to
represent pep8 as a single plugin in the version output (like we currently
do). As such we need to be a bit wiser in how we tell the OptionManager about
plugins and their versions and we only do this for certain plugins.
If we start collecting the results in run_parallel *immediately* after
starting the worker processes, we do not need another process to handle
the results. This also allows us to store all of the results on a the
FileChecker class and process results uniformly. This also means we can
count the number of errors and warnings in a run and use that to exit
appropriately (using SystemExit).
Updating the configuration documentation
Updates the documentation to be clearer on how configuration settings should work.
Related to: !53
See merge request !58
Correct usage config_file StyleGuide parameter
Previously, we passed the location for our user config file to the
StyleGuide. This was intended to be a way to tell pep8's StyleGuide
to use that as a user config file, but instead that became the default
for the --config command-line option. This caused that to have higher
priority than the project configuration file.
Closes#122
See merge request !53