Atom Linter plugin to lint your Sass/SCSS with pure node sass-lint
This package provides the following services:
linter-sass-lint
This linter plugin for Linter provides an interface to sass-lint. It will be used with files that have the “Sass” or “SCSS” syntax.
sass-lint is a node only sass linter and isn't related to scss-lint.
Installation
You'll need to have Linter installed to use this plugin
The current latest version of sass-lint comes bundled with this plugin but if you'd like to install it manually you can follow the instructions here.
Plugin installation
apm install linter-sass-lint
.sass-lint.yml
A .sass-lint.yml
config file is required for this linter. You can find an example of one here and documentation on how to configure this and each of the rules here.
By default this plugin will search up the directory tree for this file, you can also specify a path to this config file in the plugin settings or in ~/.atom/config.cson
file. Usually you would place this config file in your projects root and keep it under version control too.
You can use the noConfigDisable
option to prevent any attempts at linting (and the missing config error messages you will encounter) if a valid config is not found.
By default a config file found in the root of your currently open project will take preference over a config file specified with the configFile
option.
Settings
There are three options you can configure either within the plugin or by editing your ~/.atom/config.cson
file.
-
noConfigDisable
- Enable to prevent any linting if a valid config file (.sass-lint.yml
) is not found in the project root. -
configFile
- this is path to a.sass-lint.yml
config file, this should only be used if you'd like to specify a global config file rather than rely on a project config file in the root of your project. -
globalNodePath
This is where you can set your global node installation path. Runnpm get prefix
and paste the result here. This will be wherelinter-sass-lint
will then search for the globally installed version ofsass-lint
if you choose to enable this withglobalSassLint
. -
globalSassLint
This allows you to specify that you want to use your globally installed version ofsass-lint
(npm install -g sass-lint
) instead of the version bundled withlinter-sass-lint
. -
resolvePathsRelativeToConfig
This option allows you to choose to resolve file paths relative to your config file rather than relative to the root of your currently open project.
Extra File Extensions
This plugin will attempt to lint a file with framework specific file extensions on top of the usual .scss
and .sass
extensions such as with shopify's .scss.liquid
extension as long as you still include .scss
or .sass
somewhere in the file, you must also ensure that the Atom grammar scope for that file is set to either SCSS or Sass depending on which it corresponds to.
This does not mean that sass-lint will be able to definitely parse any sort of non standard SCSS or Sass code and if you use any platform specific code in the file it will almost definitely produce a parse error. Sass-lint will not be moving to support any use of non standard language outside of the Sass spec.
Contributing
Contributions, suggestions and fixes are more than welcome.
Please read the Contribution Guidlines
A general sense of the guidelines can be found below.
- Indentation is 2 spaces.
- All code should pass the coffeelinter linter, the config of which is included in this repository (
npm-test
). - the .editorconfig file should be used to ensure a consistent style info here
General contribution guidelines apply
- Fork the plugin repository
- Create a feature/hotfix branch off of master
- Lint your code
npm-test
- Commit and push the branch
- Make a pull request
If you're unsure on whether your contribution will be required then please file an issue first and we can discuss it.
If you find any problems with the sass-lint
itself with regards to bugs in rules then please visit the sass-lint Github Page please note that sass-lint
is young and still under heavy development.