Я использую VSCode
для проекта Node.js и настроил свой редактор на автоматическую сортировку файлов JSON при сохранении, используя следующий параметр в моем settings.json
:
"editor.codeActionsOnSave": {
"source.sort.json": "always"
}
Я хочу исключить автоматическую сортировку package.json
при сохранении, сохранив при этом функцию auto-sort
для других файлов JSON в моем проекте. Есть ли способ специально исключить package.json
из правила editor.codeActionsOnSave
или какой-либо другой обходной путь, который позволил бы мне добиться такого поведения?
Я заглянул в VSCode documentation
и попытался найти похожие проблемы, но не смог найти прямого решения. Любые предложения или альтернативные подходы приветствуются.
"editor.defaultFormatter": "esbenp.prettier-vscode"
Хорошо, я нашел наполовину приличный способ интеграции без взлома.
settings.json
, чтобы она не применялась глобально ко всем файлам. Вот что вам следует удалить:"editor.codeActionsOnSave": {
"source.sort.json": "always"
}
"[json]": {
"editor.codeActionsOnSave": {
"source.sort.json": "always"
},
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
package.json
как jsonc
(JSON с комментариями), на который не распространяется настройка автосортировки. Добавьте это в свой settings.json
:"files.associations": {
"package.json": "jsonc"
}
auto-sort
:"[jsonc]": {
"editor.codeActionsOnSave": {
"source.sort.json": "never"
},
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
Пока разработчиками VSCode не будет реализовано более удобное решение, вы можете использовать это решение здесь.
Каждый JSON будет отсортирован, а каждый JSONC — нет. Вы можете расширить этот список ниже:
"files.associations": {
"package.json": "jsonc",
"settings.json": "json"
}
При такой настройке функция автосортировки package.json
остаётся нетронутой, в то время как файлы типа settings.json
продолжают сортироваться. Это различие зависит от расширения файла — json
для сортировки, jsonc
для отсутствия сортировки.
Обратите внимание на последнюю букву c
Другой пример
"files.associations": {
"de.json": "json", // sort
"en.json": "json", // sort
"fr.json": "json", // sort
"nx.json": "jsonc", // do not sort
"package.json": "jsonc", // do not sort
"project.json": "jsonc", // do not sort
"settings.json": "json", // sort
"tsconfig.app.json": "jsonc", // do not sort
"tsconfig.base.json": "jsonc", // do not sort
"tsconfig.e2e.json": "jsonc", // do not sort
"tsconfig.editor.json": "jsonc", // do not sort
"tsconfig.json": "jsonc", // do not sort
"tsconfig.lib.json": "jsonc", // do not sort
"tsconfig.spec.json": "jsonc" // do not sort
},
Вы используете для этого расширение?