CraftHub для VS Code: редактируй JSON как таблицу прямо в редакторе

от автора

Первая часть истории — про десктопный клиент — вот здесь. Рекомендую прочитать, чтобы понять откуда всё началось.


Когда я выложил десктопный CraftHub, честно говоря, не ожидал особой реакции. Инструмент делался под конкретную боль — редактировать JSON-конфиги не как текст, а как таблицу. Удобно для меня и моей команды, может пригодится ещё кому-то.

Но появился запрос:

«А extension для VS Code планируется?» «Было бы круто прямо в редакторе, не переключаясь» «Можно как-то проще?»


Проблема, которую это решает — теперь острее

В десктопной версии проблема была сформулирована так: JSON — неудобный формат для активного редактирования табличных данных. Это правда, и это решалось отдельным приложением.

Но оказалось, что есть ещё один слой боли, который я недооценил.

Контекст-свитчинг убивает концентрацию.

Вы работаете в VS Code. Видите, что нужно поправить конфиг. Открываете CraftHub. Загружаете файл. Редактируете. Сохраняете. Переключаетесь обратно. Продолжаете работу.

Это не катастрофа. Но это трение. И оно накапливается.

Особенно когда конфиг правится не раз в день, а постоянно. Особенно когда в команде не все знают про CraftHub и кто-то всё равно правит JSON руками. Особенно когда хочется просто не выходить из редактора.


Что получилось

CraftHub теперь живёт прямо внутри VS Code.

Открываете .json файл с массивом объектов — и у вас появляется кнопка переключения в табличный режим. Никакого отдельного приложения, никакого импорта-экспорта, никаких лишних действий.

VsCodeScreen

VsCodeScreen

Всё, что вы делаете в таблице — мгновенно пишется обратно в файл. Добавили строку — файл обновился. Переименовали колонку — все ключи переименованы. Переключились обратно в текстовый редактор — видите тот же JSON, только уже поправленный.


Всё, что было в десктопе — теперь здесь

Я старался не срезать углы. Функционал таблицы портирован полностью.

Управление колонками

  • Добавить — выбираете имя и тип (string, number, bool, object, array). Поле появляется во всех строках с дефолтным значением.

  • Переименовать — кнопка ✎ в заголовке. Ключ переименовывается во всех строках, порядок полей сохраняется.

  • Удалить — кнопка ✕. Поле исчезает из всей таблицы.

Управление строками

  • Добавить новую пустую строку

  • Удалить одну или несколько выбранных

  • Дублировать — вставить копию сразу после или в конец

  • Вырезать / скопировать / вставить — с внутренним буфером обмена

  • Скопировать как JSON-массив или как отдельные объекты


Редактирование вложенных структур

JSON редко бывает плоским. Обычно это объекты внутри массивов внутри объектов. В текстовом редакторе вы в этом буквально тонете.

В CraftHub для VS Code ячейки с объектом или массивом показывают компактный превью и кнопку редактировать. Нажимаете — открывается вложенный редактор, который сам по себе является полноценной таблицей:

  • Массивы — те же строки и колонки, те же операции

  • Объекты — поля и значения в едином представлении

И главное: вложенность не ограничена. Объект внутри массива внутри объекта внутри массива? Открываете слой за слоем. Кнопка ← Back возвращает назад без потери несохранённых изменений.


Поиск

Иногда таблица большая. Очень большая. Найти конкретное значение глазами — не вариант.

Поиск работает по всем ячейкам сразу: вводите текст, совпадения подсвечиваются. Enter / Shift + Enter — следующее / предыдущее совпадение. Счётчик показывает позицию: 3 / 12.


Переключение режимов в один клик

Таблица — не замена текстовому редактору. Иногда нужно посмотреть сырую структуру, сделать bulk-правку регулярками или просто убедиться в формате.

Кнопка в тулбаре переключает между режимами мгновенно. Туда и обратно. Данные всегда синхронизированы.


Чего нет — и почему

В десктопной версии есть генерация C#-классов. В расширении её нет.

Это осознанное решение. Функция была сделана под Unity-разработчиков с конкретным workflow: описал схему → экспортировал класс → кинул в проект. Но в контексте VS Code, где Unity-проекты открываются в отдельном окне, а C# разработка идёт со своими инструментами — эта фича выглядела бы чужеродно. Лишняя кнопка без чёткого места в процессе.

Лучше меньше, но точнее.


Попробовать

Расширение открытое, исходники и установка:

github.com/c3n9/CraftHubExtension

https://marketplace.visualstudio.com/items?itemName=c3n9.crafthub

Десктопный клиент:

github.com/c3n9/CraftHub


Не ожидал, что первая статья вызовет столько отклика. Это мотивирует. Если есть идеи, баги или просто «было бы круто если бы…» — issue и комментарии открыты.

Звёздочка на GitHub — лучший способ сказать, что инструмент нужен.

ссылка на оригинал статьи https://habr.com/ru/articles/1030994/