Редактор Monaco является полностью изготовленным редактором кода из VS Code. Проверьте документы VS -кода, чтобы увидеть некоторые поддерживаемые функции.

Попробуйте редактор и посмотрите на различные примеры в нашей интерактивной игровой площадке.
Игровая площадка - это лучший способ узнать, как использовать редактор, что функции являются поддержкой, опробовать разные версии и создать минимальные воспроизводимые примеры для отчетов об ошибках.
> npm install monaco-editor
Вы получите:
/esm : ESM -версия редактора (совместимая с EG Webpack)/dev : AMD в комплекте, а не мини -/min : AMD в комплекте и минимизировано/min-maps : карты источников для minmonaco.d.ts : Это определяет API редактора (это то, что на самом деле версия, все остальное считается частным и может сломаться с любым выпуском). Рекомендуется разработать против версии dev и в производстве, чтобы использовать версию min .
Monaco Editor наиболее известен тем, что является текстовым редактором, который поддерживает код. Тем не менее, это немного более нюансировано. Некоторое основное понимание основных понятий необходимо для эффективного использования редактора Monaco.
Модели лежат в основе редактора Monaco. Это то, с чем вы взаимодействуете при управлении контентом. Модель представляет файл, который был открыт. Это может представлять файл, который существует в файловой системе, но это не должно. Например, модель содержит текстовый контент, определяет язык контента и отслеживает историю редактирования контента.
Каждая модель идентифицирована URI. Вот почему у двух моделей невозможно иметь одинаковый URI. В идеале, когда вы представляете контент в Monaco Editor, вы должны подумать о виртуальной файловой системе, которая соответствует файлам, которые редактируют ваши пользователи. Например, вы можете использовать file:/// в качестве базового пути. Если модель создана без URI, ее URI будет inmemory://model/1 . Число увеличивается по мере создания большего количества моделей.
Редактор - это пользователь, обращенный к модели. Это то, что прикрепляется к DOM и то, что ваши пользователи визуально видят. Типичные операции редактора отображают модель, управление состоянием просмотра или выполнение действий или команд.
Провайдеры предоставляют интеллектуальные функции редактора. Например, это включает в себя информацию о завершении и наведении. Это не то же самое, что, но часто карты на функции протокола языкового сервера.
Провайдеры работают над моделями. Некоторые умные функции зависят от URI файла. Например, для того, чтобы TypeScript разрешал импорт или для JSON Intellisense, чтобы определить, какую схему JSON применить к какой модели. Поэтому важно выбрать правильную модель URI.
Многие объекты, связанные с Монако, часто реализуют метод .dispose() . Этот метод предназначен для выполнения очистки, когда ресурс больше не нужен. Например, Calling model.dispose() будет рассчитывать на его регистрацию, освобождая URI для новой модели. Редакторы должны быть утилизированы, чтобы освободить ресурсы и удалить своих модельных слушателей.
monaco.d.ts .Создайте проблемы в этом хранилище для всего, что связано с редактором Monaco. Пожалуйста, найдите существующие проблемы, чтобы избежать дубликатов.
❓ Какова взаимосвязь между кодом VS и редактором Monaco?
Редактор Monaco генерируется прямо из источников VS -кода с некоторыми прокладками вокруг сервисов, которые необходимо запустить в веб -браузере за пределами своего дома.
❓ Каковы отношения между версией VS Code и версией редактора Monaco?
Никто. Редактор Monaco - это библиотека, и он напрямую отражает исходный код.
❓ Я написал расширение для VS -кода, будет ли он работать над редактором Monaco в браузере?
Нет.
ПРИМЕЧАНИЕ. Если расширение полностью основано на LSP и если языковой сервер авторизован в JavaScript, то это будет возможно.
❓ Почему все эти веб -работники и почему я должен заботиться?
Языковые услуги создают веб -работников для вычисления тяжелых вещей вне потока пользовательского интерфейса. Они почти ничего не стоят с точки зрения накладных расходов ресурсов, и вы не должны слишком беспокоиться о них, если вы заставляете их работать (см. Выше поперечное дело).
❓ Что это за loader.js ? Могу ли я использовать require.js ?
Это загрузчик AMD, который мы используем в VS -коде. Да.
❓ Я вижу предупреждение «не мог создать веб -работника». Что я должен делать?
HTML5 не разрешает страницы, загруженные в file:// создавать веб -работники. Пожалуйста, загрузите редактор с помощью веб -сервера на http:// или https:// схемы.
❓ Поддерживается ли редактор в мобильных браузерах или мобильных веб -приложениях?
Нет.
❓ Почему редактор не поддерживает грамматики Textmate?
monaco-editor , vscode-oniguruma и vscode-textmate чтобы получить поддержку грамматики TM в редакторе. Мы приветствуем вклад сообщества! Пожалуйста, посмотрите, как подробно рассказывайте о том, как вы можете эффективно внести свой вклад, как вы можете запустить редактор из источников и как вы можете отлаживать и исправить проблемы.
Этот проект принял код поведения с открытым исходным кодом Microsoft. Для получения дополнительной информации см. Кодекс поведения FAQ или свяжитесь с [email protected] с любыми дополнительными вопросами или комментариями.
Лицензирован по лицензии MIT.