Интеграция редактора Monaco с поддержкой язык запросов Kusto в приложении
Вы можете интегрировать редактор Monaco с поддержкой язык запросов Kusto (monaco-kusto) в приложение. Интеграция monaco-kusto в приложение обеспечивает возможности редактирования, такие как завершение, раскрашивание, рефакторинг, переименование и переход к определению. Для этого требуется создать решение для проверки подлинности, выполнения запросов, отображения результатов и изучения схемы. Он обеспечивает полную гибкость для создания пользовательского интерфейса в соответствии с вашими потребностями.
Из этой статьи вы узнаете, как добавить monaco-kusto в редактор Monaco и интегрировать его в приложение. Пакет доступен на сайте GitHub и npm.
Выполните следующие действия, чтобы интегрировать monaco-kusto в приложение с помощью npm.
Шаг 1. Установка пакета monaco-kusto
Шаг 2. Настройка приложения для использования пакета monaco-kusto
Шаг 3. Добавление схемы базы данных в редактор
Попробуйте интеграцию с нашим примером проекта!
Предварительные требования
- Node.js (версия 6.10.3 или более поздняя)
Установка пакета monaco-kusto
Установите пакет npm редактора Monaco:
npm i monaco-editor
Примечание
Сведения о настройке собственного редактора Monaco см. в репозитории GitHub редактора Monaco.
Установите пакет npm monaco-kusto :
npm i @kusto/monaco-kusto
Настройка приложения для использования пакета monaco-kusto
Вы можете настроить приложение для использования monaco-kusto одним из следующих способов:
Добавьте следующий HTML-код на страницы, где используется редактор Monaco, например файл index.html . Они необходимы из-за зависимости пакета
kusto-language-service
от .<script src="%PUBLIC_URL%/monaco-editor/min/vs/language/kusto/bridge.min.js"></script> <script src="%PUBLIC_URL%/monaco-editor/min/vs/language/kusto/kusto.javascript.client.min.js"></script> <script src="%PUBLIC_URL%/monaco-editor/min/vs/language/kusto/newtonsoft.json.min.js"></script> <script src="%PUBLIC_URL%/monaco-editor/min/vs/language/kusto/Kusto.Language.Bridge.min.js"></script>
Скопируйте статические файлы из пакетов monaco и monaco-kusto в папку monaco-editor на веб-сервере. Приложению потребуется доступ к этим статическим файлам.
Используйте monaco для их загрузки. Примеры см. в примерах.
Добавление схемы базы данных в редактор
Пакет monaco-kusto позволяет добавить схему базы данных в редактор. Схема позволяет редактору предоставлять предложения автозавершения и другие функции.
Чтобы определить схему, используйте следующую структуру:
const schema = {... <YOUR_DATABASE_SCHEMA> ...};
export function setSchema(editor) {
window.monaco.languages.kusto.getKustoWorker().then((workerAccessor) => {
const model = editor.getModel();
workerAccessor(model.uri).then((worker) => {
//EITHER: Set schema from a show schema command
// worker.setSchemaFromShowSchema(
// schema,
// clusterURI,
// database
// );
//OR: Set schema from a manually created schema
// worker.setSchema(schema);
});
});
}
Схему базы данных можно получить одним из следующих способов:
В пользовательском веб-интерфейсе Azure Data Explorer в меню слева выберите Запрос.
Выберите базу данных, для которой требуется создать схему.
В окне запроса выполните следующий запрос:
.show schema as json
Скопируйте результат запроса и вставьте его как константу схемы . Результатом запроса является список баз данных (см. интерфейс
Result
в файле schema.ts ).Используйте метод ,
setSchemaFromShowSchema()
чтобы задать схему в редакторе. Кроме того, необходимо указать универсальный код ресурса (URI) кластера и имя базы данных, используемой в редакторе.
Пример проекта
Вы можете найти пример проекта, использующего пакет monaco-kusto . Чтобы использовать пример, клонируйте репозиторий monaco-kusto GitHub. Пример можно найти в папке samples/react .
Настройка и тестирование примера проекта
Выполните следующие команды из корня клонированного репозитория:
Установите зависимости и выполните сборку проекта:
npm install
Убедитесь, что проект работает. В случае успеха откроетсяindex.html .
npm run watch
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по