Проекты и пакетный режим
Реестр известных проектов позволяет sync/status пройтись по всем сразу через --all, вместо одного проекта за раз через --cwd.
Реестр проектов
lintsync projects add/remove/list — управление глобальным реестром.
lintsync projects add vuecraft ~/dev/vuecraft --tags type:site
lintsync projects add use-viewport ~/dev/npm/use-viewport --tags type:npm-package
lintsync projects list
lintsync projects list --tag type:site
lintsync projects remove vuecraftПуть проекта хранится ровно как задан (~/dev/vuecraft сохраняется буквально, вместе с тильдой) и разворачивается в реальный путь файловой системы только в момент реальной работы с проектом — во время sync --all/status --all, а не при добавлении. Регистрация уже занятого имени — ошибка. Ни одна из подкоманд projects не принимает --cwd — сам реестр привязан к машине, а не к какой-то конкретной директории проекта.
add <name> <path>
--tags <tags>
Теги проекта через запятую, например --tags type:site,team:frontend.
--registry <path>
Путь к реестру проектов, если не дефолтный.
--json
Машиночитаемый вывод.
remove <name>
--registry <path>
Путь к реестру проектов, если не дефолтный.
--json
Машиночитаемый вывод.
list
--tag <tag>
Ограничить список проектами с этим тегом.
--registry <path>
Путь к реестру проектов, если не дефолтный.
--json
Машиночитаемый вывод.
Пакетный режим
Передайте --all в sync или status вместо --cwd, чтобы пройтись по всем зарегистрированным проектам:
lintsync sync --all # все зарегистрированные проекты
lintsync sync --all --tag type:site # только проекты с тегом type:site
lintsync status --all--tag/--registry что-то делают только вместе с --all — передача любого из них без --all молча ничего не даёт, это не ошибка. Пакетные запуски всегда неинтерактивны: конфликт фиксируется в отчёте по каждому проекту, TUI никогда не открывается.
Итоговый код возврата — 0, если все проекты завершились успешно, тот же общий код, если все провалились одинаково, или 3, если проекты разошлись в результате — так CI-скрипт может отличить «единообразный результат» от «нужно посмотреть JSON», не разбирая результат каждого проекта по отдельности.
Глобальный конфиг и хранилище
Два файла хранят состояние, общее для всей машины, а не для конкретного проекта — реестр проектов и локально сохранённые пресеты. По умолчанию оба лежат в стандартной для ОС директории конфигов пользователя, не внутри самого LintSync и не в текущем проекте:
| ОС | Директория по умолчанию |
|---|---|
| Windows | %APPDATA%\lintsync\Config |
| macOS | ~/Library/Preferences/lintsync |
| Linux | $XDG_CONFIG_HOME/lintsync (обычно ~/.config/lintsync) |
Внутри: projects.json (реестр проектов), presets.json (локально сохранённые пресеты) и config.json — собственный основной конфиг LintSync, который редактируется вручную:
{
"presetsPath": "/somewhere/else/presets.json",
"registryPath": "/somewhere/else/projects.json"
}Оба поля опциональны; задавайте только то, что хотите перенести. Сам config.json ищется в таком порядке: флаг --config <path>, переменная окружения LINTSYNC_CONFIG, затем стандартная для ОС директория выше. --config работает в любой позиции командной строки — до или после имени подкоманды.
Приоритет того, где реально лежат projects.json/presets.json, от высшего к низшему: собственный флаг --registry/--presets команды для этого конкретного запуска → registryPath/presetsPath в config.json → стандартное для ОС расположение. Отсутствующий config.json (или отсутствующий/нечитаемый projects.json/presets.json) — не ошибка, LintSync просто стартует с пустого/дефолтного состояния.