RubyMine 2021.3 Help

Stylelint

RubyMine integrates with Stylelint so you can inspect your CSS code from inside the IDE. Stylelint wakes up automatically when you edit a CSS file and highlights the detected problems, see Lint your code below.

Before you start

  1. Download and install Node.js.

  2. Make sure a local Node.js interpreter is configured in your project: open the Settings/Preferences dialog (Ctrl+Alt+S) and go to Languages and Frameworks | Node.js. The Node Interpreter field shows the default project Node.js interpreter.

    Learn more from Configuring a local Node.js interpreter.

Install Stylelint

  • Open the embedded Terminal (Alt+F12) and type:

    npm install --save-dev stylelint stylelint-config-standard

This installs Stylelint and its standard configuration. Learn more from the Stylelint official website.

Activate and configure Stylelint

  1. To activate Stylelint, open the Settings/Preferences dialog (Ctrl+Alt+S) , go to Languages and Frameworks | Style Sheets | Stylelint, and select the Enable checkbox. After that the controls in the dialog become available.

  2. In the Stylelint Package field, specify the location of the stylelint package installed globally or in the current project. If you followed the standard installation procedure, RubyMine detects the package automaticaly.

  3. In the Run for files field, specify the pattern that defines the set of files to be linted. By default, StyleLint processes only plain CSS files therefore the default pattern is {**/*,*}.{css}.

    To lint files of other types or files stored in specific folders, use glob patterns to update the default pattern.

    • For example, to lint HTML, Vue, SCSS, Styled Components, JavaScript, TypeScript, JSX, and TSX as well, update the default pattern as follows:

      {**/*,*}.{html,vue,css,scss,js,ts,jsx,tsx}
    • To lint files from a specific folder, replace {**/*,*} with <path to the folder>*.

      Suppose, you have a project with the following structure:

      Stylelint: custom patterns. Example project structure

      To lint CSS and SCSS files only in the styles folder, update the pattern as follows:

      styles/*.{css,scss}

      As a result, the files styles.css and lint_scss.scss will be linted while no_lint_scss.scsse will not.

  4. Optionally:

    In the Configuration file field, specify the location of your configuration file.

    By default, the field is empty and RubyMine uses the Stylelint native mechanism to detect configurations automatically. With this auto-detection mode, Stylelint goes up the folder structure and looks for configurations defined in one of the following ways:

    • Through a stylelint property in a package.json file.

    • In a .stylelintrc.json, .stylelintrc.yaml, .stylelintrc.yml, or .stylelintrc.js file.

    • In a stylelint.config.js file that exports a JavaScript object.

    • In a stylelint.config.cjs file that exports a JavaScript object. When running Stylelint in JavaScript, packages with the "type":"module" property in their package .json.

    Learn more from the Stylelint official website.

    To use a custom configuration file, click the Browse button in the Configuration file field and select the path to the required configuration file in the dialog that opens.

Lint your code

Stylelint wakes up automatically when you edit a Style Sheet file and highlights the detected problems.

To lint Style Sheet injections in JavaScript code, open the Settings/Preferences dialog (Ctrl+Alt+S) , go to Languages and Frameworks | Style Sheets | Stylelint, and select the Process JS files checkbox.

  • To view the description of a problem in a popup, hover the mouse pointer over the highlighted code.

    Stylelint popup
  • Stylelint can automatically fix detected problems in the current file in unambiguous cases using the Stylelint Auto Fix functionality. To apply Auto Fix, click Stylelint: Fix current file in the popup.

    Alternatively, press Alt+Enter and select Stylelint: Fix current file from the list.

    Stylelint quick-fix
Last modified: 10 December 2021