Первая часть истории — про десктопный клиент — вот здесь. Рекомендую прочитать, чтобы понять откуда всё началось.
Когда я выложил десктопный CraftHub, честно говоря, не ожидал особой реакции. Инструмент делался под конкретную боль — редактировать JSON-конфиги не как текст, а как таблицу. Удобно для меня и моей команды, может пригодится ещё кому-то.
Но появился запрос:
«А extension для VS Code планируется?» «Было бы круто прямо в редакторе, не переключаясь» «Можно как-то проще?»
Проблема, которую это решает — теперь острее
В десктопной версии проблема была сформулирована так: JSON — неудобный формат для активного редактирования табличных данных. Это правда, и это решалось отдельным приложением.
Но оказалось, что есть ещё один слой боли, который я недооценил.
Контекст-свитчинг убивает концентрацию.
Вы работаете в VS Code. Видите, что нужно поправить конфиг. Открываете CraftHub. Загружаете файл. Редактируете. Сохраняете. Переключаетесь обратно. Продолжаете работу.
Это не катастрофа. Но это трение. И оно накапливается.
Особенно когда конфиг правится не раз в день, а постоянно. Особенно когда в команде не все знают про CraftHub и кто-то всё равно правит JSON руками. Особенно когда хочется просто не выходить из редактора.
Что получилось
CraftHub теперь живёт прямо внутри VS Code.
Открываете .json файл с массивом объектов — и у вас появляется кнопка переключения в табличный режим. Никакого отдельного приложения, никакого импорта-экспорта, никаких лишних действий.
Всё, что вы делаете в таблице — мгновенно пишется обратно в файл. Добавили строку — файл обновился. Переименовали колонку — все ключи переименованы. Переключились обратно в текстовый редактор — видите тот же 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
Десктопный клиент:
Не ожидал, что первая статья вызовет столько отклика. Это мотивирует. Если есть идеи, баги или просто «было бы круто если бы…» — issue и комментарии открыты.
Звёздочка на GitHub — лучший способ сказать, что инструмент нужен.
ссылка на оригинал статьи https://habr.com/ru/articles/1030994/