sindresorhus / atom-editorconfig

Helps developers maintain consistent coding styles between different editors
https://atom.io/packages/editorconfig
MIT License
812 stars 80 forks source link

Whitespace core package conflicting with editorconfig settings #245

Closed rantoniuk closed 4 years ago

rantoniuk commented 4 years ago

1 problem affecting .editorconfig

whitespace: It is possible that the "whitespace"-package prevents the following properties from working reliably: insert_final_newline, trim_trailing_whitespace. You may try reconfiguring or disabling the "whitespace"-package to solve regarding issues.

Involved .editorconfig-files

root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length=160

[*.md]
trim_trailing_whitespace = false

Directory structure

irrelevant

Installed packages

% apm list
Built-in Atom Packages (93)
├── atom-dark-syntax@0.29.1
├── atom-dark-ui@0.53.3
├── atom-light-syntax@0.29.1
├── atom-light-ui@0.46.3
├── base16-tomorrow-dark-theme@1.6.0
├── base16-tomorrow-light-theme@1.6.0
├── one-dark-ui@1.12.5
├── one-light-ui@1.12.5
├── one-dark-syntax@1.8.4
├── one-light-syntax@1.8.4
├── solarized-dark-syntax@1.3.0
├── solarized-light-syntax@1.3.0
├── about@1.9.1
├── archive-view@0.65.2
├── autocomplete-atom-api@0.10.7
├── autocomplete-css@0.17.5
├── autocomplete-html@0.8.8
├── autocomplete-plus@2.42.3
├── autocomplete-snippets@1.12.1
├── autoflow@0.29.4
├── autosave@0.24.6
├── background-tips@0.28.0
├── bookmarks@0.46.0
├── bracket-matcher@0.91.2
├── command-palette@0.43.5
├── dalek@0.2.2
├── deprecation-cop@0.56.9
├── dev-live-reload@0.48.1
├── encoding-selector@0.23.9
├── exception-reporting@0.43.1
├── find-and-replace@0.219.3
├── fuzzy-finder@1.14.2
├── github@0.34.2
├── git-diff@1.3.9
├── go-to-line@0.33.0
├── grammar-selector@0.50.1
├── image-view@0.64.0
├── incompatible-packages@0.27.3
├── keybinding-resolver@0.39.0
├── line-ending-selector@0.7.7
├── link@0.31.6
├── markdown-preview@0.160.2
├── metrics@1.8.1
├── notifications@0.71.0
├── open-on-github@1.3.2
├── package-generator@1.3.0
├── settings-view@0.261.4
├── snippets@1.5.1
├── spell-check@0.76.1
├── status-bar@1.8.17
├── styleguide@0.49.12
├── symbols-view@0.118.4
├── tabs@0.110.0
├── timecop@0.36.2
├── tree-view@0.228.0
├── update-package-dependencies@0.13.1
├── welcome@0.36.9
├── whitespace@0.37.7
├── wrap-guide@0.41.0
├── language-c@0.60.19
├── language-clojure@0.22.8
├── language-coffee-script@0.50.0
├── language-csharp@1.1.0
├── language-css@0.44.4
├── language-gfm@0.90.7
├── language-git@0.19.1
├── language-go@0.47.2
├── language-html@0.53.1
├── language-hyperlink@0.17.1
├── language-java@0.31.5
├── language-javascript@0.134.1
├── language-json@1.0.5
├── language-less@0.34.3
├── language-make@0.23.0
├── language-mustache@0.14.5
├── language-objective-c@0.16.0
├── language-perl@0.38.1
├── language-php@0.44.4
├── language-property-list@0.9.1
├── language-python@0.53.4
├── language-ruby@0.72.23
├── language-ruby-on-rails@0.25.3
├── language-rust-bundled@0.1.0
├── language-sass@0.62.1
├── language-shellscript@0.28.2
├── language-source@0.9.0
├── language-sql@0.25.10
├── language-text@0.7.4
├── language-todo@0.29.4
├── language-toml@0.20.0
├── language-typescript@0.6.2
├── language-xml@0.35.3
└── language-yaml@0.32.0

Community Packages (15) /Users/warden/.atom/packages
├── Hydrogen@2.14.1
├── atom-ide-ui@0.13.0
├── docblock-python@0.19.0
├── editorconfig@2.6.1
├── ide-css@0.3.4
├── ide-java@0.9.0
├── ide-json@0.2.1
├── ide-python@1.5.0
├── ide-yaml@0.7.0
├── kite@0.185.0
├── language-groovy@0.7.0
├── linter-flake8@2.4.0
├── markdown-pdf@2.3.3
├── markdown-writer@2.11.10
└── open-on-bitbucket@0.5.0
Alhadis commented 4 years ago

What exactly is the issue, here? The explanation (and solution) was already included in the text you quoted (emphasis mine):

It is possible that the whitespace-package prevents the following properties from working reliably: insert_final_newline, trim_trailing_whitespace. You may try reconfiguring or disabling the whitespace‑package to solve regarding issues.

Moreover, you haven't told us anything about the affected files, or even how they're being affected…

rantoniuk commented 4 years ago

Sorry for not stating it clearly enough, I thought that the title was descriptive enough. The problem here is that there is a warning displayed against a core built-in package - hence, no, disabling a core package is not a solution for me and I don't think that a plugin should be conflicting with core functionalities resulting in displaying a warning/error messages during startup. If you think otherwise, feel free to close as a non-bug, possibly advising how this warning can be avoided.

Alhadis commented 4 years ago

Atom's whitespace package behaves differently to editorconfig: it doesn't respect (or even acknowledge the existence of) .editorconfig files, so when the two packages disagree about what settings to enforce for a particular editor, well… you can see how that would present a problem.

For example, given the following…

[*.foo]
insert_final_newline = false
trim_trailing_whitespace = false
# ~/.atom/config.cson
"*":
    whitespace:
        removeTrailingWhitespace: true
        ensureSingleTrailingNewline: true

… how should trailing whitespace be handled when saving a .foo file? Bear in mind Atom doesn't support EditorConfig, and has a different approach to syntax-specific editor-settings.

The problem here is that there is a warning displayed against a core built-in package - hence, no, disabling a core package is not a solution for me and I don't think that a plugin should be conflicting with core functionalities resulting in displaying a warning/error messages during startup.

It's also worth noting that Atom's core packages aren't infallible, and more often than not, community forks or alternatives exist to replace them. Ergo, the fact that whitespace is a "core" package only means it's shipped with the editor and will work when booting Atom in safe mode.