mod: для NPM-сборки облегченного CodeMirror (без лишних модулей)

This commit is contained in:
2026-01-16 01:00:40 +03:00
parent 9870c93aaa
commit 2cf74519a1

View File

@@ -1,35 +1,68 @@
// Реэкспорт всех необходимых модулей для использования в браузере (через <script type="module">)
// =============================================================================
// Сборка CodeMirror 6 для проекта ETPGRF
// =============================================================================
// Этот файл служит точкой входа для esbuild.
// Мы экспортируем только те модули, которые реально используются в index.html.
// esbuild автоматически выбросит весь неиспользуемый код (Tree Shaking -- перетряхивание дерева).
// --- ЯДРО (State) ---
export {
EditorState,
Compartment
EditorState, // Хранит состояние редактора (текст, выделение, конфигурацию).
Compartment, // Позволяет динамически менять части конфигурации (например, тему).
} from "@codemirror/state";
// --- ВИД (View) ---
export {
EditorView,
lineNumbers,
highlightActiveLineGutter,
highlightWhitespace,
highlightTrailingWhitespace,
drawSelection,
highlightSpecialChars,
keymap,
ViewPlugin,
Decoration,
MatchDecorator,
WidgetType
EditorView, // Отвечает за отрисовку редактора в DOM.
// Расширения интерфейса:
lineNumbers, // Номера строк слева
highlightActiveLineGutter, // Подсветка номера текущей строки
highlightWhitespace, // Подсветка обычных пробелов (точками)
highlightTrailingWhitespace,// Подсветка пробелов в конце строк
drawSelection, // Отрисовка выделения текста
highlightSpecialChars, // Подсветка спецсимволов (NBSP, SHY и т.д.)
keymap, // Обработчик горячих клавиш
// --- УДАЛЕННЫЕ МОДУЛИ (для справки) ---
// ViewPlugin, // Для создания плагинов, реагирующих на изменения вида (не нужно, используем готовые)
// Decoration, // Для декорирования текста (цвета, виджеты) вручную (не нужно)
// MatchDecorator, // Для поиска и декорирования по регуляркам (используется внутри highlightSpecialChars)
// WidgetType, // Для вставки HTML-элементов в текст (не нужно)
// dropCursor, // Показывает место вставки при Drag&Drop (редактор read-only)
// rectangularSelection, // Выделение прямоугольником (Alt+Drag) (избыточно)
// crosshairCursor, // Курсор-перекрестие (избыточно)
} from "@codemirror/view";
// --- ЯЗЫКОВЫЕ СРЕДСТВА (Language) ---
export {
syntaxHighlighting,
defaultHighlightStyle,
bracketMatching
syntaxHighlighting, // Механизм раскраски кода
defaultHighlightStyle, // Стандартная цветовая схема для токенов
bracketMatching, // Подсветка парных скобок
// --- УДАЛЕННЫЕ МОДУЛИ ---
// foldGutter, // Сворачивание кода (стрелочки слева) (не нужно для коротких текстов)
// foldKeymap, // Горячие клавиши для сворачивания
} from "@codemirror/language";
// --- ПОДДЕРЖКА HTML ---
// Парсер и подсветка для HTML
export { html } from "@codemirror/lang-html";
export { defaultKeymap, history, historyKeymap } from "@codemirror/commands";
// --- КОМАНДЫ (Commands) ---
// Стандартные сочетания клавиш (стрелки, Home/End и т.д.)
export {
defaultKeymap,
// --- УДАЛЕННЫЕ МОДУЛИ ---
// history, // История изменений (Undo/Redo) (не нужно, так как read-only)
// historyKeymap, // Горячие клавиши Ctrl+Z / Ctrl+Y
} from "@codemirror/commands";
// --- ТЕМЫ (Themes) ---
// Темная тема One Dark
export { oneDark } from "@codemirror/theme-one-dark";
// Можно оставить и фабрику, если пригодится для быстрого старта
export function createReadOnlyEditor(parent, text) {
// ... (код фабрики можно оставить или убрать, он не мешает)
}
// --- ДОПОЛНИТЕЛЬНО (Удалено) ---
// export { searchKeymap, highlightSelectionMatches } from "@codemirror/search"; // Поиск по тексту (Ctrl+F)
// export { autocomplete, completionKeymap } from "@codemirror/autocomplete"; // Автодополнение
// export { lintKeymap } from "@codemirror/lint"; // Линтинг (проверка ошибок)