wistful / SublimeAutoPEP8

Automatically formats Python code to conform to the PEP 8 style guide using autopep8 and pep8 modules
144 stars 23 forks source link

AutoPep8 does not respect user settings for `"ignore"` #41

Closed charlesdaniels closed 8 years ago

charlesdaniels commented 8 years ago

My config file follows

{
    "max-line-length": 79,

    // do not fix these errors / warnings(e.g. E4, W)
    "ignore": "E266",

    // select errors / warnings(e.g. E4, W)
    "select": "",

    // enable possibly unsafe changes (E711, E712)
    "aggressive": 0,

    // number of spaces per indent level
    "indent-size": 4,

    "format_on_save": false,
    "show_output_panel": true,
    // Format/Preview menu items only appear for views
    // with syntax from `syntax_list`
    // value is base filename of the .tmLanguage syntax files
    "syntax_list": ["Python"],

    "file_menu_search_depth": 3, // max depth to search python files

    "avoid_new_line_in_select_mode": false,

    // print debug info into the console
    "debug": true
}

When running AueoPEP8 on a source file which contains comments with two leading # characters, it still removes one of them. This is problematic, because I use Doxygen, which detects function/class documentation blocks by searching for comments whose first line begin with ##.

Maybe I am missing something, but I can't think of anything else to try.

Any help appreciated!

wistful commented 8 years ago

@charlesdaniels, Could you please install dev version of SublimeAutoPep8 using install_prereleases option of Package Control settings:

"install_prereleases":
    [
        "AutoPEP8"
    ],

and provide example of source file and output of Sublime Console(View -> Show Console). Thank you.

charlesdaniels commented 8 years ago

I made the change, and updated AutoPEP8.

Here is an example of a source file which is affected by this issue. On my sublime install, running AutoPEP8 with the config file mentioned in the issue causes the Doxygen comment blocks (beginning with ##, see line 12 for an example) to turn into normal comment blocks.

As I did not mention it, I am running OSX El Capitan and Sublime Text 3, Stable Channel, Build 3083.

Here is the console output starting Sublime Text 3, then running autoPEP8 on my source file.

startup, version: 3083 osx x64 channel: stable
executable: /Applications/Sublime Text.app/Contents/MacOS/Sublime Text
working dir: /
packages path: /Users/cdaniels/Library/Application Support/Sublime Text 3/Packages
state path: /Users/cdaniels/Library/Application Support/Sublime Text 3/Local
zip path: /Applications/Sublime Text.app/Contents/MacOS/Packages
zip path: /Users/cdaniels/Library/Application Support/Sublime Text 3/Installed Packages
ignored_packages: ["Vintage"]
pre session restore time: 0.583895
using gpu buffer for window
loading dictionary Packages/Language - English/en_US.dic
startup time: 0.749332
first paint time: 0.840792
reloading plugin Default.block
reloading plugin Default.comment
reloading plugin Default.copy_path
reloading plugin Default.delete_word
reloading plugin Default.detect_indentation
reloading plugin Default.duplicate_line
reloading plugin Default.echo
reloading plugin Default.exec
reloading plugin Default.fold
reloading plugin Default.font
reloading plugin Default.goto_line
reloading plugin Default.history_list
reloading plugin Default.indentation
reloading plugin Default.kill_ring
reloading plugin Default.mark
reloading plugin Default.new_templates
reloading plugin Default.open_context_url
reloading plugin Default.open_file_settings
reloading plugin Default.open_in_browser
reloading plugin Default.pane
reloading plugin Default.paragraph
reloading plugin Default.paste_from_history
reloading plugin Default.quick_panel
reloading plugin Default.save_on_focus_lost
reloading plugin Default.scroll
reloading plugin Default.set_unsaved_view_name
reloading plugin Default.side_bar
reloading plugin Default.sort
reloading plugin Default.swap_line
reloading plugin Default.switch_file
reloading plugin Default.symbol
reloading plugin Default.transform
reloading plugin Default.transpose
reloading plugin Default.trim_trailing_white_space
reloading plugin CSS.css_completions
reloading plugin Diff.diff
reloading plugin HTML.encode_html_entities
reloading plugin HTML.html_completions
reloading plugin 0_package_control_loader.00-package_control
reloading plugin 0_package_control_loader.02-bz2
reloading plugin All Autocomplete.all_views_completions
reloading plugin AutoPEP8.sublautopep8
reloading plugin COBOL Syntax.COBOL_commands
reloading plugin DashDoc.DashDoc
reloading plugin DoxyDoxygen.Doxy
------==== DoxyDoxygen plugins loaded ====------
0 sub-modules to reload
reloading plugin Javatar.Javatar
reloading plugin Markdown Preview.helper
reloading plugin Markdown Preview.markdown_settings
reloading plugin Markdown Preview.markdown_wrapper
reloading plugin Markdown Preview.MarkdownPreview
reloading plugin Package Control.1_reloader
reloading plugin Package Control.2_bootstrap
reloading plugin Package Control.Package Control
reloading plugin Intellitip.intellidocs
reloading plugin Jedi - Python autocompletion.__init__
reloading plugin LaTeXTools.delete_temp_files
reloading plugin LaTeXTools.getTeXRoot
reloading plugin LaTeXTools.jumpToPDF
reloading plugin LaTeXTools.kpsewhich
reloading plugin LaTeXTools.latex_cite_completions
reloading plugin LaTeXTools.latex_input_completions
reloading plugin LaTeXTools.latex_installed_packages
reloading plugin LaTeXTools.latex_ref_cite_completions
reloading plugin LaTeXTools.latex_ref_completions
reloading plugin LaTeXTools.latexCommand
reloading plugin LaTeXTools.latexEnvCloser
reloading plugin LaTeXTools.latexEnvironment
reloading plugin LaTeXTools.latexFillAll
reloading plugin LaTeXTools.makePDF
reloading plugin LaTeXTools.migrate
reloading plugin LaTeXTools.parseTeXlog
reloading plugin LaTeXTools.texMacro
reloading plugin LaTeXTools.texSections
reloading plugin LaTeXTools.toggle_auto
reloading plugin LaTeXTools.toggle_focus
reloading plugin LaTeXTools.toggle_fwdsync
reloading plugin LaTeXTools.toggle_show
reloading plugin LaTeXTools.viewPDF
plugins loaded
Javatar snippet Class.javatar loaded
Javatar snippet Enumerator.javatar loaded
Javatar snippet Interface.javatar loaded
AutoPEP8:
    sublime: version=3083, platform=osx, arch=x64, packages_path=/Users/cdaniels/Library/Application Support/Sublime Text 3/Packages
, installed_packages_path=/Users/cdaniels/Library/Application Support/Sublime Text 3/Installed Packages
    plugin: version=1.3.4-dev
    config: {'avoid_new_line_in_select_mode': False, 'select': '', 'format_on_save': False, 'debug': True, 'aggressive': 0, 'indent-size': 4, 'list-fixes': '', 'max-line-length': 79, 'syntax_list': ['Python'], 'ignore': 'E266', 'file_menu_search_depth': 3}
Javatar package "Java Standard Edition 8" loaded with 4385 classes in 213 packages
reloading Packages/User/Javatar.sublime-settings
[Javatar] Use default Java version [JDK1.8.0u60]
reloading Packages/User/Javatar.sublime-settings
Package Control: No updated packages
autopep8.params: Namespace(aggressive=0, diff=True, exclude=[], experimental=False, files=['fake-file'], global_config='/Users/cdaniels/.config/pep8', ignore={'E266'}, ignore_local_config=False, in_place=False, indent_size=4, jobs=1, line_range=None, list_fixes=False, max_line_length=79, pep8_passes=-1, recursive=False, select='', verbose=2)
wistful commented 8 years ago

@charlesdaniels, you can change default behaviour by ignoring E265 and E266 errors. Just put these codes into ignore option of AutoPep8 User settings:

"ignore": "E265, E266",

More information about codes is here: http://pep8.readthedocs.org/en/latest/intro.html#error-codes

wistful commented 8 years ago

Do not forget to remove AutoPep8 package from the install_prereleases and install last stable version as dev versions might be unstable.

charlesdaniels commented 8 years ago

That fixed the problem, I didn't realize I needed to ignore E265 and E266, as the pep8 standalone program was only showing E266. Thanks for your help!