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 { export {
EditorState, EditorState, // Хранит состояние редактора (текст, выделение, конфигурацию).
Compartment Compartment, // Позволяет динамически менять части конфигурации (например, тему).
} from "@codemirror/state"; } from "@codemirror/state";
// --- ВИД (View) ---
export { export {
EditorView, EditorView, // Отвечает за отрисовку редактора в DOM.
lineNumbers, // Расширения интерфейса:
highlightActiveLineGutter, lineNumbers, // Номера строк слева
highlightWhitespace, highlightActiveLineGutter, // Подсветка номера текущей строки
highlightTrailingWhitespace, highlightWhitespace, // Подсветка обычных пробелов (точками)
drawSelection, highlightTrailingWhitespace,// Подсветка пробелов в конце строк
highlightSpecialChars, drawSelection, // Отрисовка выделения текста
keymap, highlightSpecialChars, // Подсветка спецсимволов (NBSP, SHY и т.д.)
ViewPlugin, keymap, // Обработчик горячих клавиш
Decoration,
MatchDecorator, // --- УДАЛЕННЫЕ МОДУЛИ (для справки) ---
WidgetType // ViewPlugin, // Для создания плагинов, реагирующих на изменения вида (не нужно, используем готовые)
// Decoration, // Для декорирования текста (цвета, виджеты) вручную (не нужно)
// MatchDecorator, // Для поиска и декорирования по регуляркам (используется внутри highlightSpecialChars)
// WidgetType, // Для вставки HTML-элементов в текст (не нужно)
// dropCursor, // Показывает место вставки при Drag&Drop (редактор read-only)
// rectangularSelection, // Выделение прямоугольником (Alt+Drag) (избыточно)
// crosshairCursor, // Курсор-перекрестие (избыточно)
} from "@codemirror/view"; } from "@codemirror/view";
// --- ЯЗЫКОВЫЕ СРЕДСТВА (Language) ---
export { export {
syntaxHighlighting, syntaxHighlighting, // Механизм раскраски кода
defaultHighlightStyle, defaultHighlightStyle, // Стандартная цветовая схема для токенов
bracketMatching bracketMatching, // Подсветка парных скобок
// --- УДАЛЕННЫЕ МОДУЛИ ---
// foldGutter, // Сворачивание кода (стрелочки слева) (не нужно для коротких текстов)
// foldKeymap, // Горячие клавиши для сворачивания
} from "@codemirror/language"; } from "@codemirror/language";
// --- ПОДДЕРЖКА HTML ---
// Парсер и подсветка для HTML
export { html } from "@codemirror/lang-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 { 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"; // Линтинг (проверка ошибок)