sindresorhus / atom-editorconfig

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

.editorconfig is ignored #167

Closed wp-sobj closed 7 years ago

wp-sobj commented 7 years ago

OS X 10.11.6

Atom version: Both stable (1.12.6) and current beta (1.13.0-beta6) are affected with their respective updated atom-editorconfig plugins

.editorconfig, which resides in the open project's root folder is simply being ignored, as evidenced by the output of EditorConfig: Show State while package.json, which also resides in the project's root folder, is open (or any other file matching the rules, for that matter):

package.json
No editorconfig-settings were applied for this file.

Active Configuration

Editorconfig-Property   Applied Setting
end_of_line auto
charset auto
indent_style    auto
indent_size/ tab_width  auto
insert_final_newline    auto
trim_trailing_whitespace    auto
max_line_length auto
(auto: atom-editorconfig is not influencing its behavior. A full description of all properties can be found on editorconfig.org.)

No evidence of whitespace being active in Atom's config.cson. For testing purposes, I've deactivated it in the settings and restarted.

There is no mouse or anything equivalent in the status bar of Atom. Atom's Tab Type is set to auto.

Involved .editorconfig-files

# editorconfig.org

root = true

[*.{js}]
charset = utf-8
insert_final_newline = true
trim_trailing_whitespace = true
end_of_line = lf
indent_style = space
indent_size = 4

[*.{json}]
indent_style = space
indent_size = 2

# Uncomment and fill in following section if special rules for all JavaScript
# files under the `lib` directory needed.
# [lib/**.js]

[Makefile]
indent_style = tab

Installed packages

$ apm-beta list
Built-in Atom Packages (89)
├── atom-dark-syntax@0.28.0
├── atom-dark-ui@0.53.0
├── atom-light-syntax@0.29.0
├── atom-light-ui@0.46.0
├── base16-tomorrow-dark-theme@1.4.0
├── base16-tomorrow-light-theme@1.4.0
├── one-dark-ui@1.8.2
├── one-light-ui@1.8.2
├── one-dark-syntax@1.6.0
├── one-light-syntax@1.6.0
├── solarized-dark-syntax@1.1.1
├── solarized-light-syntax@1.1.1
├── about@1.7.2
├── archive-view@0.62.0
├── autocomplete-atom-api@0.10.0
├── autocomplete-css@0.14.1
├── autocomplete-html@0.7.2
├── autocomplete-plus@2.33.1
├── autocomplete-snippets@1.11.0
├── autoflow@0.29.0
├── autosave@0.23.2
├── background-tips@0.26.1
├── bookmarks@0.43.2
├── bracket-matcher@0.82.2
├── command-palette@0.39.1
├── deprecation-cop@0.55.1
├── dev-live-reload@0.47.0
├── encoding-selector@0.22.0
├── exception-reporting@0.40.0
├── find-and-replace@0.204.5
├── fuzzy-finder@1.4.0
├── git-diff@1.2.0
├── go-to-line@0.31.2
├── grammar-selector@0.48.2
├── image-view@0.60.0
├── incompatible-packages@0.26.1
├── keybinding-resolver@0.35.0
├── line-ending-selector@0.5.1
├── link@0.31.2
├── markdown-preview@0.159.1
├── metrics@1.1.2
├── notifications@0.65.1
├── open-on-github@1.2.1
├── package-generator@1.0.2
├── settings-view@0.244.0
├── snippets@1.0.4
├── spell-check@0.68.5
├── status-bar@1.6.0
├── styleguide@0.48.0
├── symbols-view@0.113.1
├── tabs@0.103.1
├── timecop@0.33.2
├── tree-view@0.211.1
├── update-package-dependencies@0.10.0
├── welcome@0.35.1
├── whitespace@0.35.0
├── wrap-guide@0.39.0
├── language-c@0.54.0
├── language-clojure@0.22.1
├── language-coffee-script@0.48.1
├── language-csharp@0.13.0
├── language-css@0.40.1
├── language-gfm@0.88.0
├── language-git@0.15.0
├── language-go@0.43.0
├── language-html@0.47.1
├── language-hyperlink@0.16.1
├── language-java@0.24.0
├── language-javascript@0.122.0
├── language-json@0.18.3
├── language-less@0.29.6
├── language-make@0.22.2
├── language-mustache@0.13.0
├── language-objective-c@0.15.1
├── language-perl@0.37.0
├── language-php@0.37.3
├── language-property-list@0.8.0
├── language-python@0.45.1
├── language-ruby@0.70.2
├── language-ruby-on-rails@0.25.1
├── language-sass@0.57.0
├── language-shellscript@0.23.0
├── language-source@0.9.0
├── language-sql@0.25.0
├── language-text@0.7.1
├── language-todo@0.29.1
├── language-toml@0.18.1
├── language-xml@0.34.12
└── language-yaml@0.27.1

Community Packages (4) /Users/benutzer/.atom/packages
├── atom-jade@0.3.0
├── editorconfig@2.1.0
├── git-plus@5.28.0
└── language-vue-component@0.5.0
florianb commented 7 years ago

Hi @wp-sobj - thanks for reporting this.

To make it work for the package-json you should strip the the curly braces ([*.json]).

I wonder if this is valid in the sense of the underlying standards. I personally would expect this should work. The parsing of the .editorconfig file is done by the https://github.com/editorconfig/editorconfig-core-js package, so i would think this issue belongs there, or at least should be answered by them. You might also try your luck in the main repository of the editorconfig-standard: https://github.com/editorconfig/editorconfig/issues

But i would think the standard should allow you to define even single extensions with curly braces.

wp-sobj commented 7 years ago

Oh okay, so it was the rules that were ignored instead of the configuration file. The fact that curly braces do not match is indeed puzzling.

I'll do what works, I don't care about your upstream, sorry. Thanks for helping me out!