Prettier-grundy-scss-order

npm GitHub Actions Workflow Status

Плагин prettier для сортировки CSS или SCSS свойств. Для разбора исходников использует postcss-scss.

Использование

Для установки можно использовать команду:

npm install prettier-grundy-scss-order --save-dev

Для подключения плагина можно воспользоваться Prettier API, CLI или конфигурационного файла. Например:

{
    "plugins": ["prettier-grundy-scss-order"]
}

Настройка

Данный плагин добавляет следующие ключи для настройки:

Название Описание Значение по умолчанию
grundyScssSorterGroupsOrderмассив групп в нужном порядке
["@use", "--variable", "$variable", "@if", "decl", "@include", "@mixin", "rule"]
grundyScssSorterWithRootнужно ли сортировать на корневом уровне false
grundyScssSorterSplitGroupнужно ли отделять группы пустой строкой false
grundyScssSorterGroups определяет дополнительный группы для сортировки, расширяет группы по умолчанию
grundyScssSorterPreset предопределенные свойства, например: csscomb

Пресеты

Список пресетов для миграции с других плагинов

Пресет Описание

csscomb

пресет для миграции с csscomb использующий default пресет
csscomb-yandex пересет для миграции с csscomb использующий yandex пресет
csscomb-zen пересет для миграции с csscomb использующий zen пресет

Предопределенные группы

Пользовательские группы

Настройка grundyScssSorterGroups позволяет добавить пользовательские группы по дополнительным критериям.

Например, добавление группы @font - в эту группу помещаются все свойства начинающиеся с font: font, font-size, и т.д.

"{\"@font\": { \"startsWith\": \"font\" }}";

Затем можно использовать данную группу в grundyScssSorterGroupsOrder:

["--variable", "$variable", "@font", "decl"];

Пользовательские критерии для групп

Для определения пользовательских групп доступны следующие критерии

  • startsWith - название начинается с указанного параметра

  • oneOf - название является одним из перечисленных в списке

  • type - тип узла соответствует одному из перечисленных

    • "use"
    • "mixin"
    • "include"
    • "if"
    • "extend"
    • "atrule"
    • "rule"
    • "decl"
    • "$variable"
    • "variable"
    • "media"
    • "supports"

Примеры

Критерий Пример Описание Подходящие свойства
type
{
    "type": "use"
}
выбирает "@use" statements
@use "colors";
@use "colors" as c;
startsWith
{
    "startsWith": "font"
}
выбирает свойства начинающиеся с "font"
font: "Courier New";
font-size: 10px;
@include fonts;
oneOf
{
    "oneOf": ["position", "left"]
}
выбирает свойства, названия которых совпадают с одним из элементов списка
position: relative;
left: 10px;