Skip to content

Журнал изменений: История версий и запись изменений

Чему вы научитесь

  • Отслеживать эволюцию версий плагина
  • Узнавать о новых функциях и исправлениях в каждой версии
  • Освоить известные ограничения и технические детали
  • Понять возможные будущие улучшения функциональности

[0.1.0] - 2025-01-07

Новые возможности

Это начальный релиз opencode-md-table-formatter, содержащий следующие основные функции:

  • Автоматическое форматирование таблиц: Автоматическое форматирование Markdown-таблиц, сгенерированных ИИ, через хук experimental.text.complete
  • Поддержка скрытого режима: Правильная обработка скрытых Markdown-символов (например, **, *) при вычислении ширины
  • Обработка вложенного Markdown: Поддержка вложенного Markdown-синтаксиса произвольной глубины с использованием многошагового алгоритма удаления
  • Защита блоков кода: Markdown-символы внутри встроенного кода (`code`) сохраняются в буквальном виде и не участвуют в вычислении ширины
  • Поддержка выравнивания: Поддержка левого выравнивания (--- или :---), центрирования (:---:), правого выравнивания (---:)
  • Оптимизация кеширования ширины: Кеширование результатов вычисления ширины отображения строк для повышения производительности
  • Проверка неверных таблиц: Автоматическая проверка структуры таблиц, недействительные таблицы получают комментарии об ошибках
  • Поддержка нескольких символов: Поддержка Emoji, Unicode-символов, пустых ячеек, сверхдлинного содержимого
  • Тихая обработка ошибок: Ошибки форматирования не прерывают рабочий процесс OpenCode

Технические детали

Эта версия содержит примерно 230 строк производственного кода на TypeScript:

  • 12 функций: Чёткое разделение обязанностей, хорошая изоляция
  • Безопасность типов: Правильное использование интерфейса Hooks
  • Интеллектуальная очистка кеша: Очистка срабатывает при превышении 100 операций или 1000 записей в кеше
  • Многошаговая обработка регулярными выражениями: Поддержка удаления Markdown-символов произвольной вложенности

Механизм кеширования

Кеш разработан для оптимизации вычисления ширины повторяющегося содержимого. Например, когда один и тот же текст ячейки появляется в таблице несколько раз, ширина вычисляется только один раз, а последующие чтения берутся из кеша.

Известные ограничения

Эта версия не поддерживает следующие сценарии:

  • HTML-таблицы: Поддерживаются только Markdown-таблицы с разделителями (Pipe Table)
  • Многострочные ячейки: Ячейки, содержащие теги <br>, не поддерживаются
  • Таблицы без строки-разделителя: Таблица должна содержать строку-разделитель (|---|) для форматирования
  • Требования к зависимостям: Требуется @opencode-ai/plugin >= 0.13.7 (используется неопубликованный хук experimental.text.complete)

Требования к версии

Плагин требует OpenCode >= 1.0.137 и @opencode-ai/plugin >= 0.13.7 для правильной работы.


Будущие планы

Следующие функции планируются к реализации в будущих версиях:

  • Параметры конфигурации: Поддержка пользовательских минимальной/максимальной ширины столбцов, отключение определённых функций
  • Поддержка таблиц без заголовка: Форматирование таблиц без строки заголовка
  • Оптимизация производительности: Анализ и оптимизация производительности для очень больших таблиц (100+ строк)
  • Больше вариантов выравнивания: Расширение синтаксиса и функциональности выравнивания

Участие в разработке

Если у вас есть предложения по функциональности или вы хотите внести код, пожалуйста, поделитесь своими идеями в GitHub Issues.


Описание формата журнала изменений

Журнал изменений этого проекта следует формату Keep a Changelog, а номера версий следуют Семантической спецификации версий (Semantic Versioning).

Формат номера версии: MAJOR.MINOR.PATCH

  • MAJOR: Несовместимые изменения API
  • MINOR: Новая функциональность с обратной совместимостью
  • PATCH: Исправления с обратной совместимостью

Типы изменений:

  • Added: Добавленные функции
  • Changed: Изменения существующей функциональности
  • Deprecated: Функции, которые будут удалены
  • Removed: Удалённые функции
  • Fixed: Исправления проблем
  • Security: Исправления, связанные с безопасностью

Рекомендуемый порядок чтения

Если вы новый пользователь, рекомендуем изучать в следующем порядке:

  1. Быстрый старт: Установка и конфигурация — Быстрое начало работы
  2. Обзор функций: Магия автоматического форматирования — Понимание основных функций
  3. Часто задаваемые вопросы: Что делать, если таблица не форматируется — Устранение неполадок
  4. Известные ограничения: Где находятся границы плагина — Понимание ограничений