Сортировка
В Oxfmt есть сортировка импортов, классов Tailwind и полей package.json.
Полное описание опций см. в справочнике файла конфигурации.
Сортировка импортов
На основе eslint-plugin-perfectionist/sort-imports.
По умолчанию выключено.
Пример конфигурации
Тот же порядок, что по умолчанию у eslint-plugin-perfectionist/sort-imports.
{
"sortImports": {
"groups": [
"type-import",
["value-builtin", "value-external"],
"type-internal",
"value-internal",
["type-parent", "type-sibling", "type-index"],
["value-parent", "value-sibling", "value-index"],
"unknown"
]
}
}import { defineConfig } from "oxfmt";
export default defineConfig({
sortImports: {
groups: [
"type-import",
["value-builtin", "value-external"],
"type-internal",
"value-internal",
["type-parent", "type-sibling", "type-index"],
["value-parent", "value-sibling", "value-index"],
"unknown",
],
},
});Используйте "newlinesBetween": false на верхнем уровне, чтобы отключить переносы между группами, затем { "newlinesBetween": true } внутри groups, чтобы вставить перенос в нужном месте.
{
"sortImports": {
"newlinesBetween": false,
"groups": [
["value-builtin", "value-external"],
["value-internal", "value-parent", "value-sibling", "value-index"],
{ "newlinesBetween": true },
"type-import",
"unknown"
]
}
}import { defineConfig } from "oxfmt";
export default defineConfig({
sortImports: {
newlinesBetween: false,
groups: [
["value-builtin", "value-external"],
["value-internal", "value-parent", "value-sibling", "value-index"],
{ newlinesBetween: true },
"type-import",
"unknown",
],
},
});Через customGroups задаются собственные группы для сопоставления импортов. У каждой пользовательской группы есть groupName, на который можно ссылаться в groups. В elementNamePattern задаются glob-шаблоны для источников импорта.
{
"sortImports": {
"customGroups": [
{
"groupName": "react-libs",
"elementNamePattern": ["react", "react-**"]
}
],
"groups": [
"react-libs",
["value-builtin", "value-external"],
"value-internal",
["value-parent", "value-sibling", "value-index"],
"unknown"
]
}
}import { defineConfig } from "oxfmt";
export default defineConfig({
sortImports: {
customGroups: [
{
groupName: "react-libs",
elementNamePattern: ["react", "react-**"],
},
],
groups: [
"react-libs",
["value-builtin", "value-external"],
"value-internal",
["value-parent", "value-sibling", "value-index"],
"unknown",
],
},
});Сортировка классов Tailwind CSS
Сортирует утилитарные классы Tailwind.
На основе prettier-plugin-tailwindcss.
По умолчанию выключено.
Пример конфигурации
{
"sortTailwindcss": {
"stylesheet": "./path/to/stylesheet.css",
"functions": ["clsx", "cn"],
"preserveWhitespace": true
}
}import { defineConfig } from "oxfmt";
export default defineConfig({
sortTailwindcss: {
stylesheet: "./path/to/stylesheet.css",
functions: ["clsx", "cn"],
preserveWhitespace: true,
},
});Шаблоны regex для attributes и functions не поддерживаются.
Сортировка полей package.json
Сортирует ключи в package.json по выбранному порядку.
Подробности см. в описании порядка полей.
По умолчанию включено.
Пример конфигурации
Отключить:
{
"sortPackageJson": false
}import { defineConfig } from "oxfmt";
export default defineConfig({
sortPackageJson: false,
});Сортировать scripts по алфавиту:
{
"sortPackageJson": {
"sortScripts": true
}
}import { defineConfig } from "oxfmt";
export default defineConfig({
sortPackageJson: {
sortScripts: true,
},
});