モナコ エディターとアプリのKusto 照会言語サポートを統合する

モナコ エディターとKusto 照会言語サポート (monaco-kusto) をアプリに統合できます。 monaco-kusto をアプリに統合すると、入力候補、色付け、リファクタリング、名前変更、定義変換などの編集エクスペリエンスが提供されます。 認証、クエリ実行、結果表示、およびスキーマ探索のためのソリューションを構築する必要があります。 ニーズに合ったユーザー エクスペリエンスを柔軟にファッションできます。

この記事では、モナコ エディターに monaco-kusto を追加し、それをアプリに統合する方法について説明します。 パッケージは GitHubnpm で入手できます。

次の手順を使用して、npm を使用して monaco-kusto をアプリに統合します。

手順 1: monaco-kusto パッケージをインストールする

手順 2: monaco-kusto パッケージを使用するようにアプリを設定する

手順 3: データベース スキーマをエディターに追加する

サンプル プロジェクトとの統合をお試しください。

前提条件

monaco-kusto パッケージをインストールする

  1. モナコ エディター npm パッケージをインストールします。

    npm i monaco-editor
    

    注意

    ネイティブのモナコ エディターをカスタマイズするには、「 Monaco Editor GitHub リポジトリ」を参照してください。

  2. monaco-kusto npm パッケージをインストールします。

    npm i @kusto/monaco-kusto
    

monaco-kusto パッケージを使用するようにアプリを設定する

次のいずれかの方法を使用して 、monaco-kusto を使用するようにアプリを設定できます。

  1. index.html ファイルなど、モナコ エディターが使用されているページに次の 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>
    
  2. 静的ファイルを モナコ および モナコ kusto パッケージから Web サーバー上 の monaco-editor フォルダーにコピーします。 アプリは、これらの静的ファイルにアクセスする必要があります。

  3. モナコを使用してそれらを読み込みます。 例については、 サンプルを参照してください。

データベース スキーマをエディターに追加する

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);
    });
  });
}

データベース スキーマは、次のいずれかの方法で取得できます。

  1. Azure Data Explorer Web UI の左側のメニューで、[クエリ] を選択します

  2. スキーマを作成するデータベースを選択します。

  3. クエリ ウィンドウで、次のクエリを実行します。

    .show schema as json
    
  4. クエリの結果をコピーし、 スキーマ 定数として貼り付けます。 クエリの結果は、データベースの一覧です (schema.ts ファイルのインターフェイスResultを参照)。

  5. メソッドを setSchemaFromShowSchema() 使用して、エディターでスキーマを設定します。 また、クラスター URI と、エディターで使用するデータベースの名前も指定する必要があります。

サンプル プロジェクト

monaco-kusto パッケージを使用するサンプル プロジェクトを見つけることができます。 サンプルを使用するには、 monaco-kusto GitHub リポジトリを複製します。 サンプルは samples /react フォルダーにあります。

サンプル プロジェクトを設定してテストする

複製されたリポジトリのルートから次のコマンドを実行します。

  1. 依存関係をインストールし、プロジェクトをビルドします。

    npm install
    
  2. プロジェクトが動作していることを確認します。 成功した場合は、 index.html が開きます。

    npm run watch