← Ко всем open source проектам

Monaco Editor

microsoft/monaco-editor

Monaco Editor — браузерный редактор кода от VS Code с моделями документов, URI и несколькими экземплярами редактора.

Форки 4,081
Автор microsoft
Язык JavaScript
Лицензия MIT
Обновлено 2026-06-27

Что это такое

Monaco Editor — полнофункциональный редактор кода для браузера, лежащий в основе редакторного опыта VS Code.

Проект появился как возможность встроить сильный редактор кода прямо в веб-приложение: песочница, песочницы, IDE-подобные панели, онлайн-редакторы и обучающие среды.

Главная задача Monaco Editor — дать веб-продукту редактор с подсветкой, моделями, несколькими экземплярами и богатой API-поверхностью.

Что внутри репозитория

Материалы Monaco Editor покрывают установку, локализацию, ключевые понятия, модели документов, URI и работу с несколькими редакторами.

песочница указан как лучший способ изучать редактор, пробовать версии и собирать минимальные воспроизводимые примеры для bug reports.

Как это обычно используют

Monaco используют в браузерных IDE, no-code/low-code продуктах, редакторах конфигураций, учебных платформах и внутренних инструментах.

Обычный сценарий: установить пакет, создать editor в DOM-элементе, выбрать язык и связать value с данными приложения.

Создание редактора в DOM

Пример показывает базовый путь: контейнер на странице превращается в редактор кода.

Язык: JavaScript
monaco.editor.create(document.getElementById('editor'), {
  value: 'console.log("hello")',
  language: 'javascript',
});

Что получается на практике

Сильная сторона проекта — зрелость редакторной модели VS Code. Пользователь получает привычное поведение, а команда — мощный API.

Еще одно преимущество — поддержка модели и URI: можно работать не только с одним textarea, а с несколькими виртуальными файлами.

Ограничения и аккуратные места

Ограничение в том, что Monaco тяжелее обычного текстового поля. Его нужно правильно грузить, настраивать bundler и не вставлять без необходимости в простые формы.

Также редактор кода не заменяет язык-сервер и доменную логику: автодополнение и проверка зависят от интеграции.

Кому подойдет

Monaco Editor лучше всего подходит продуктам, где редактирование кода или конфигураций является центральной функцией.

В каталоге Monaco Editor важен как проект, который принес качество desktop-редактора в браузерную среду.

Для хорошего результата важно продумать не только сам редактор, но и файловую модель, сохранение, ошибки, горячие клавиши и доступность интерфейса.

Monaco хорошо раскрывается в продуктах, где текст — это не просто поле формы, а рабочий материал: код, запрос, конфигурация, правило, шаблон. Тогда важны несколько моделей, отдельные URI, своя подсветка, подсказки и сохранение состояния. Но вместе с редактором появляется ответственность за весь опыт вокруг него: загрузка больших файлов, ошибки синтаксиса, горячие клавиши, мобильные ограничения и доступность. Без этого мощный редактор легко превращается в тяжелый виджет.

Хорошая интеграция Monaco обычно начинается с малого: один файл, одно состояние сохранения, понятная ошибка. Уже потом добавляют несколько документов, автодополнение, темы и связи с серверной частью. Так редактор остается инструментом, а не отдельным сложным продуктом внутри продукта.