VIM version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Mar 13 2018 06:36:50)
macOS version
Operating System: macOS High Sierra Version 10.13.3
Current Filetype: ruby
Available Linters: ['brakeman', 'rails_best_practices', 'reek', 'rubocop', 'ruby']
Enabled Linters: ['brakeman', 'rails_best_practices', 'reek', 'rubocop', 'ruby']
Linter Variables:
let g:ale_ruby_brakeman_options = ''
let g:ale_ruby_reek_show_context = 0
let g:ale_ruby_reek_show_wiki_link = 0
let g:ale_ruby_rubocop_executable = 'rubocop'
let g:ale_ruby_rubocop_options = ''
let g:ale_ruby_ruby_executable = 'ruby'
Global Variables:
let g:ale_cache_executable_check_failures = 0
let g:ale_change_sign_column_color = 0
let g:ale_command_wrapper = ''
let g:ale_completion_delay = 100
let g:ale_completion_enabled = 0
let g:ale_completion_max_suggestions = 50
let g:ale_echo_cursor = 1
let g:ale_echo_msg_error_str = 'Error'
let g:ale_echo_msg_format = '%code: %%s'
let g:ale_echo_msg_info_str = 'Info'
let g:ale_echo_msg_warning_str = 'Warning'
let g:ale_enabled = 0
let g:ale_fix_on_save = 1
let g:ale_fixers = {'ruby': ['rubocop'], 'javascript': ['prettier', 'eslint']}
let g:ale_history_enabled = 1
let g:ale_history_log_output = 1
let g:ale_keep_list_window_open = 0
let g:ale_lint_delay = 200
let g:ale_lint_on_enter = 1
let g:ale_lint_on_filetype_changed = 1
let g:ale_lint_on_save = 1
let g:ale_lint_on_text_changed = 'always'
let g:ale_lint_on_insert_leave = 0
let g:ale_linter_aliases = {}
let g:ale_linters = {}
let g:ale_linters_explicit = 0
let g:ale_list_window_size = 10
let g:ale_list_vertical = 0
let g:ale_loclist_msg_format = '%code: %%s'
let g:ale_max_buffer_history_size = 20
let g:ale_max_signs = -1
let g:ale_maximum_file_size = 0
let g:ale_open_list = 0
let g:ale_pattern_options = {}
let g:ale_pattern_options_enabled = 0
let g:ale_set_balloons = 0
let g:ale_set_highlights = 1
let g:ale_set_loclist = 1
let g:ale_set_quickfix = 0
let g:ale_set_signs = 1
let g:ale_sign_column_always = 0
let g:ale_sign_error = '>>'
let g:ale_sign_info = '--'
let g:ale_sign_offset = 1000000
let g:ale_sign_style_error = '>>'
let g:ale_sign_style_warning = '--'
let g:ale_sign_warning = '--'
let g:ale_statusline_format = ['%d error(s)', '%d warning(s)', 'OK']
let g:ale_type_map = {}
let g:ale_warn_about_trailing_blank_lines = 1
let g:ale_warn_about_trailing_whitespace = 1
Command History:
(executable check - failure) brakeman
(executable check - failure) rails_best_practices
(executable check - failure) reek
(started) ['/bin/bash', '-c', '''rubocop'' --format json --force-exclusion --stdin ''/Users/dpowers/ab_testing/app/models/ab_test.rb'' < ''/var/folders/6_/rwhgkhd94c56zh4tpxct9ym80000gp/T/vEkVeA1/13/ab_test.rb''']
(started) ['/bin/bash', '-c', '''ruby'' -w -c -T1 ''/var/folders/6_/rwhgkhd94c56zh4tpxct9ym80000gp/T/vEkVeA1/14/ab_test.rb''']
(executable check - failure) brakeman
(executable check - failure) rails_best_practices
(executable check - failure) reek
(started) ['/bin/bash', '-c', '''rubocop'' --format json --force-exclusion --stdin ''/Users/dpowers/ab_testing/app/models/ab_test.rb'' < ''/var/folders/6_/rwhgkhd94c56zh4tpxct9ym80000gp/T/vEkVeA1/15/ab_test.rb''']
(finished - exit code 0) ['/bin/bash', '-c', '''ruby'' -w -c -T1 ''/var/folders/6_/rwhgkhd94c56zh4tpxct9ym80000gp/T/vEkVeA1/16/ab_test.rb''']
<<<NO OUTPUT RETURNED>>>
(executable check - failure) reek
(finished - exit code 1) ['/bin/bash', '-c', '''rubocop'' --format json --force-exclusion --stdin ''/Users/dpowers/ab_testing/app/models/ab_test.rb'' < ''/var/folders/6_/rwhgkhd94c56zh4tpxct9ym80000gp/T/vEkVeA1/17/ab_test.rb''']
<<<OUTPUT STARTS>>>
{"metadata":{"rubocop_version":"0.46.0","ruby_engine":"ruby","ruby_version":"2.0.0","ruby_patchlevel":"353","ruby_platform":"x86_64-darwin13.4.0"},"files":[{"path":"app/models/ab_test.rb","offenses":[{"severity":"convention","message":"Missing space after #.","cop_name":"Style/LeadingCommentSpace","corrected":false,"location":{"line":2,"column":1,"length":30}},{"severity":"convention","message":"Class has too many lines. [138/100]","cop_name":"Metrics/ClassLength","corrected":null,"location":{"line":4,"column":1,"length":7721}},{"severity":"convention","message":"Missing top-level class documentation comment.","cop_name":"Style/Documentation","corrected":null,"location":{"line":4,"column":1,"length":5}},{"severity":"convention","message":"Line is too long. [102/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":5,"column":81,"length":22}},{"severity":"convention","message":"Incorrect indentation detected (column 0 instead of 2).","cop_name":"Style/CommentIndentation","corrected":false,"location":{"line":15,"column":1,"length":79}},{"severity":"convention","message":"Use the new Ruby 1.9 hash syntax.","cop_name":"Style/HashSyntax","corrected":false,"location":{"line":21,"column":57,"length":14}},{"severity":"convention","message":"Use the new Ruby 1.9 hash syntax.","cop_name":"Style/HashSyntax","corrected":false,"location":{"line":23,"column":26,"length":14}},{"severity":"convention","message":"Use the new Ruby 1.9 hash syntax.","cop_name":"Style/HashSyntax","corrected":false,"location":{"line":23,"column":52,"length":9}},{"severity":"convention","message":"Use the new Ruby 1.9 hash syntax.","cop_name":"Style/HashSyntax","corrected":false,"location":{"line":26,"column":21,"length":14}},{"severity":"convention","message":"Use the new Ruby 1.9 hash syntax.","cop_name":"Style/HashSyntax","corrected":false,"location":{"line":26,"column":47,"length":14}},{"severity":"convention","message":"Line is too long. [111/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":26,"column":81,"length":31}},{"severity":"convention","message":"Use the new Ruby 1.9 hash syntax.","cop_name":"Style/HashSyntax","corrected":false,"location":{"line":26,"column":85,"length":9}},{"severity":"convention","message":"Incorrect indentation detected (column 0 instead of 2).","cop_name":"Style/CommentIndentation","corrected":false,"location":{"line":32,"column":1,"length":79}},{"severity":"convention","message":"Assignment Branch Condition size for RegisterTest is too high. [66.72/15]","cop_name":"Metrics/AbcSize","corrected":null,"location":{"line":38,"column":3,"length":3}},{"severity":"convention","message":"Cyclomatic complexity for RegisterTest is too high. [22/6]","cop_name":"Metrics/CyclomaticComplexity","corrected":null,"location":{"line":38,"column":3,"length":3}},{"severity":"convention","message":"Method has too many lines. [39/10]","cop_name":"Metrics/MethodLength","corrected":null,"location":{"line":38,"column":3,"length":2836}},{"severity":"convention","message":"Perceived complexity for RegisterTest is too high. [24/7]","cop_name":"Metrics/PerceivedComplexity","corrected":null,"location":{"line":38,"column":3,"length":3}},{"severity":"convention","message":"Use snake_case for method names.","cop_name":"Style/MethodName","corrected":null,"location":{"line":38,"column":12,"length":12}},{"severity":"convention","message":"Do not put a space between a method name and the opening parenthesis.","cop_name":"Style/SpaceAfterMethodName","corrected":false,"location":{"line":38,"column":24,"length":1}},{"severity":"convention","message":"Space inside parentheses detected.","cop_name":"Style/SpaceInsideParens","corrected":false,"location":{"line":38,"column":26,"length":1}},{"severity":"convention","message":"Space inside parentheses detected.","cop_name":"Style/SpaceInsideParens","corrected":false,"location":{"line":38,"column":44,"length":1}},{"severity":"convention","message":"Extra empty line detected at method body beginning.","cop_name":"Style/EmptyLinesAroundMethodBody","corrected":false,"location":{"line":39,"column":1,"length":1}},{"severity":"convention","message":"Prefer single-quoted strings when you don't need string interpolation or special symbols.","cop_name":"Style/StringLiterals","corrected":false,"location":{"line":44,"column":11,"length":27}},{"severity":"convention","message":"Prefer single-quoted strings when you don't need string interpolation or special symbols.","cop_name":"Style/StringLiterals","corrected":false,"location":{"line":45,"column":11,"length":25}},{"severity":"convention","message":"Line is too long. [82/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":51,"column":81,"length":2}},{"severity":"convention","message":"Line is too long. [110/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":52,"column":81,"length":30}},{"severity":"convention","message":"Line is too long. [89/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":54,"column":81,"length":9}},{"severity":"convention","message":"Line is too long. [96/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":55,"column":81,"length":16}},{"severity":"convention","message":"Line is too long. [97/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":56,"column":81,"length":17}},{"severity":"convention","message":"Avoid using `rescue` in its modifier form.","cop_name":"Style/RescueModifier","corrected":false,"location":{"line":58,"column":9,"length":81}},{"severity":"convention","message":"Use `%r` around regular expression.","cop_name":"Style/RegexpLiteral","corrected":false,"location":{"line":58,"column":33,"length":14}},{"severity":"convention","message":"Line is too long. [89/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":58,"column":81,"length":9}},{"severity":"convention","message":"Avoid using `rescue` in its modifier form.","cop_name":"Style/RescueModifier","corrected":false,"location":{"line":59,"column":9,"length":65}},{"severity":"convention","message":"Use `%r` around regular expression.","cop_name":"Style/RegexpLiteral","corrected":false,"location":{"line":59,"column":25,"length":14}},{"severity":"convention","message":"Line is too long. [91/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":61,"column":81,"length":11}},{"severity":"convention","message":"Line is too long. [116/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":63,"column":81,"length":36}},{"severity":"convention","message":"Align the operands of a condition in a `elsif` statement spanning multiple lines.","cop_name":"Style/MultilineOperationIndentation","corrected":false,"location":{"line":64,"column":11,"length":107}},{"severity":"convention","message":"Line is too long. [117/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":64,"column":81,"length":37}},{"severity":"convention","message":"Line is too long. [160/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":69,"column":81,"length":80}},{"severity":"convention","message":"Use 2 (not 3) spaces for indentation.","cop_name":"Style/IndentationWidth","corrected":false,"location":{"line":75,"column":7,"length":3}},{"severity":"convention","message":"Avoid the use of double negation (`!!`).","cop_name":"Style/DoubleNegation","corrected":null,"location":{"line":80,"column":30,"length":1}},{"severity":"convention","message":"Line is too long. [171/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":96,"column":81,"length":91}},{"severity":"convention","message":"Use the new Ruby 1.9 hash syntax.","cop_name":"Style/HashSyntax","corrected":false,"location":{"line":101,"column":11,"length":14}},{"severity":"convention","message":"Use the new Ruby 1.9 hash syntax.","cop_name":"Style/HashSyntax","corrected":false,"location":{"line":101,"column":33,"length":18}},{"severity":"convention","message":"Place the . on the next line, together with the method name.","cop_name":"Style/DotPosition","corrected":false,"location":{"line":101,"column":58,"length":1}},{"severity":"convention","message":"Use 2 (not 0) spaces for indenting an expression spanning multiple lines.","cop_name":"Style/MultilineMethodCallIndentation","corrected":false,"location":{"line":102,"column":5,"length":5}},{"severity":"convention","message":"Line is too long. [158/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":102,"column":81,"length":78}},{"severity":"convention","message":"Place the . on the next line, together with the method name.","cop_name":"Style/DotPosition","corrected":false,"location":{"line":102,"column":156,"length":1}},{"severity":"convention","message":"Use 2 (not 0) spaces for indenting an expression spanning multiple lines.","cop_name":"Style/MultilineMethodCallIndentation","corrected":false,"location":{"line":103,"column":5,"length":5}},{"severity":"convention","message":"Use the new Ruby 1.9 hash syntax.","cop_name":"Style/HashSyntax","corrected":false,"location":{"line":107,"column":11,"length":14}},{"severity":"convention","message":"Use the new Ruby 1.9 hash syntax.","cop_name":"Style/HashSyntax","corrected":false,"location":{"line":107,"column":33,"length":18}},{"severity":"convention","message":"Place the . on the next line, together with the method name.","cop_name":"Style/DotPosition","corrected":false,"location":{"line":107,"column":58,"length":1}},{"severity":"convention","message":"Use 2 (not 0) spaces for indenting an expression spanning multiple lines.","cop_name":"Style/MultilineMethodCallIndentation","corrected":false,"location":{"line":108,"column":5,"length":5}},{"severity":"convention","message":"Line is too long. [154/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":108,"column":81,"length":74}},{"severity":"convention","message":"Place the . on the next line, together with the method name.","cop_name":"Style/DotPosition","corrected":false,"location":{"line":108,"column":152,"length":1}},{"severity":"convention","message":"Use 2 (not 0) spaces for indenting an expression spanning multiple lines.","cop_name":"Style/MultilineMethodCallIndentation","corrected":false,"location":{"line":109,"column":5,"length":5}},{"severity":"convention","message":"Use the new Ruby 1.9 hash syntax.","cop_name":"Style/HashSyntax","corrected":false,"location":{"line":113,"column":11,"length":14}},{"severity":"convention","message":"Use the new Ruby 1.9 hash syntax.","cop_name":"Style/HashSyntax","corrected":false,"location":{"line":113,"column":33,"length":18}},{"severity":"convention","message":"Place the . on the next line, together with the method name.","cop_name":"Style/DotPosition","corrected":false,"location":{"line":113,"column":57,"length":1}},{"severity":"convention","message":"Use 2 (not 0) spaces for indenting an expression spanning multiple lines.","cop_name":"Style/MultilineMethodCallIndentation","corrected":false,"location":{"line":114,"column":5,"length":5}},{"severity":"convention","message":"Use the new Ruby 1.9 hash syntax.","cop_name":"Style/HashSyntax","corrected":false,"location":{"line":118,"column":11,"length":14}},{"severity":"convention","message":"Place the . on the next line, together with the method name.","cop_name":"Style/DotPosition","corrected":false,"location":{"line":118,"column":31,"length":1}},{"severity":"convention","message":"Use 2 (not 0) spaces for indenting an expression spanning multiple lines.","cop_name":"Style/MultilineMethodCallIndentation","corrected":false,"location":{"line":119,"column":5,"length":5}},{"severity":"convention","message":"Incorrect indentation detected (column 0 instead of 2).","cop_name":"Style/CommentIndentation","corrected":false,"location":{"line":124,"column":1,"length":79}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":127,"column":5,"length":18}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":131,"column":5,"length":18}},{"severity":"convention","message":"Line is too long. [100/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":134,"column":81,"length":20}},{"severity":"convention","message":"Assignment Branch Condition size for pick is too high. [19.34/15]","cop_name":"Metrics/AbcSize","corrected":null,"location":{"line":135,"column":3,"length":3}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":136,"column":23,"length":8}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":136,"column":52,"length":15}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":139,"column":14,"length":18}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":143,"column":37,"length":7}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":143,"column":53,"length":16}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":146,"column":41,"length":18}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":148,"column":22,"length":18}},{"severity":"convention","message":"Line is too long. [87/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":150,"column":81,"length":7}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":151,"column":8,"length":13}},{"severity":"convention","message":"Space between { and | missing.","cop_name":"Style/SpaceInsideBlockBraces","corrected":false,"location":{"line":151,"column":27,"length":2}},{"severity":"convention","message":"Space missing inside }.","cop_name":"Style/SpaceInsideBlockBraces","corrected":false,"location":{"line":151,"column":46,"length":1}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":152,"column":14,"length":18}},{"severity":"convention","message":"Redundant `return` detected.","cop_name":"Style/RedundantReturn","corrected":false,"location":{"line":155,"column":5,"length":6}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":155,"column":28,"length":18}},{"severity":"convention","message":"Space inside parentheses detected.","cop_name":"Style/SpaceInsideParens","corrected":false,"location":{"line":160,"column":26,"length":1}},{"severity":"convention","message":"Surrounding space missing in default value assignment.","cop_name":"Style/SpaceAroundEqualsInParameterDefault","corrected":false,"location":{"line":160,"column":34,"length":1}},{"severity":"convention","message":"Space inside parentheses detected.","cop_name":"Style/SpaceInsideParens","corrected":false,"location":{"line":160,"column":37,"length":1}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":161,"column":23,"length":7}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":164,"column":18,"length":14}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":167,"column":18,"length":30}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":167,"column":56,"length":10}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":171,"column":5,"length":10}},{"severity":"convention","message":"Assignment Branch Condition size for create_new_trial is too high. [17.61/15]","cop_name":"Metrics/AbcSize","corrected":null,"location":{"line":175,"column":3,"length":3}},{"severity":"convention","message":"Method has too many lines. [16/10]","cop_name":"Metrics/MethodLength","corrected":null,"location":{"line":175,"column":3,"length":548}},{"severity":"convention","message":"Space inside parentheses detected.","cop_name":"Style/SpaceInsideParens","corrected":false,"location":{"line":175,"column":24,"length":1}},{"severity":"convention","message":"Surrounding space missing in default value assignment.","cop_name":"Style/SpaceAroundEqualsInParameterDefault","corrected":false,"location":{"line":175,"column":32,"length":1}},{"severity":"convention","message":"Space inside parentheses detected.","cop_name":"Style/SpaceInsideParens","corrected":false,"location":{"line":175,"column":35,"length":1}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":176,"column":23,"length":7}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":179,"column":24,"length":7}},{"severity":"convention","message":"Line is too long. [84/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":188,"column":81,"length":4}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":196,"column":5,"length":10}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":196,"column":19,"length":23}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":201,"column":5,"length":14}},{"severity":"convention","message":"Line is too long. [85/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":204,"column":81,"length":5}},{"severity":"convention","message":"Redundant `self` detected.","cop_name":"Style/RedundantSelf","corrected":false,"location":{"line":206,"column":5,"length":14}},{"severity":"convention","message":"Line is too long. [87/80]","cop_name":"Metrics/LineLength","corrected":null,"location":{"line":226,"column":81,"length":7}},{"severity":"convention","message":"Extra empty line detected at class body end.","cop_name":"Style/EmptyLinesAroundClassBody","corrected":false,"location":{"line":228,"column":1,"length":1}}]}],"summary":{"offense_count":105,"target_file_count":1,"inspected_file_count":1}}
<<<OUTPUT ENDS>>>
(finished - exit code 0) ['/bin/bash', '-c', '''ruby'' -w -c -T1 ''/var/folders/6_/rwhgkhd94c56zh4tpxct9ym80000gp/T/vEkVeA1/18/ab_test.rb''']
<<<NO OUTPUT RETURNED>>>
(finished - exit code 1) ['/bin/bash', '-c', '''rubocop'' --auto-correct ''/var/folders/6_/rwhgkhd94c56zh4tpxct9ym80000gp/T/vEkVeA1/27/ab_test.rb''']
Disabling ALEToggle does not disable ale_fix_on_save setting.
Steps for repeating the bug:
:ALEToggle in the buffer to toggle off ALE.Result
Expected Behavior
ale_fix_on_save setting would be ignored.That's a command for toggling ALE linting, and it predates fixing files. If you want to disable fixing files, set g:ale_fix_on_save to 0.
You can also disable fixing automatically for particular files with the b:ale_fix_on_save variable, which you could set with g:ale_pattern_options.
That's very surprising semantics. What about exposing a different command as this isn't very discoverable and quite irritating when you "disable" it and have it rewrite your file on save. :(
Not if you read :help ALEDisable, which explains what the command does. Other people use that command to disable linting, while they still want to fix their files.
Documentation (which doesn't adequately clarify this behavior to me) doesn't make it unsurprising. Given the default behavior is to set "ale_fix_on_save" to enabled, this can produce a very jarring user experience when adopting ALE in a legacy codebase.
In the very least, I was surprised to not find any convenience helper to toggle that behavior. It can be quite difficult to manage this when it corrupts an entire file for you unless you happen to have disabled the default behavior. I can't wrap my head around "disable" not actually disabling the tool from rewriting my entire file on save nor the reasons it wouldn't be jarring to change the behavior wrt to "ale_fix_on_save" itself.
To be fair, this is the only wart I've experienced on ALE, which made it hurt. Congratulations on a fantastically useful tool. :smile: