Mengintegrasikan Editor Monako dengan dukungan Bahasa Kueri Kusto di aplikasi Anda

Anda dapat mengintegrasikan Monaco Editor dengan dukungan Bahasa Kueri Kusto (monaco-kusto) ke dalam aplikasi Anda. Mengintegrasikan monaco-kusto ke dalam aplikasi Anda menawarkan pengalaman pengeditan seperti penyelesaian, pewarnaan, pemfaktoran ulang, penggantian nama, dan masuk ke definisi. Ini mengharuskan Anda untuk membangun solusi untuk autentikasi, eksekusi kueri, tampilan hasil, dan eksplorasi skema. Ini menawarkan fleksibilitas penuh untuk membuat pengalaman pengguna yang sesuai dengan kebutuhan Anda.

Dalam artikel ini, Anda akan mempelajari cara menambahkan monaco-kusto ke Editor Monako dan mengintegrasikannya ke dalam aplikasi Anda. Paket tersedia di GitHub dan pada npm.

Gunakan langkah-langkah berikut untuk mengintegrasikan monaco-kusto ke dalam aplikasi Anda menggunakan npm.

Langkah 1: Instal paket monaco-kusto

Langkah 2: Siapkan aplikasi Anda untuk menggunakan paket monaco-kusto

Langkah 3: Menambahkan skema database Anda ke editor

Cobalah integrasi dengan proyek Sampel kami!

Prasyarat

  • Node.js (v6.10.3 atau yang lebih baru)

Menginstal paket monaco-kusto

  1. Instal paket npm Editor Monaco:

    npm i monaco-editor
    

    Catatan

    Untuk menyesuaikan Editor Monako asli, lihat Repositori GitHub Editor Monaco.

  2. Instal paket npm monaco-kusto :

    npm i @kusto/monaco-kusto
    

Menyiapkan aplikasi Anda untuk menggunakan paket monaco-kusto

Anda dapat menyiapkan aplikasi untuk menggunakan monaco-kusto menggunakan salah satu metode berikut:

  1. Tambahkan HTML berikut ke halaman tempat Editor Monako digunakan, seperti file index.html Anda. Mereka diperlukan karena dependensi yang dimiliki paket pada 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. Salin file statis dari paket monaco dan monaco-kusto ke folder monaco-editor di server web Anda. Aplikasi Anda harus mengakses file statis ini.

  3. Gunakan monako untuk memuatnya. Misalnya, lihat sampel.

Menambahkan skema database Anda ke editor

Paket monaco-kusto menyediakan cara untuk menambahkan skema database Anda ke editor. Skema ini memungkinkan editor untuk memberikan saran lengkapi otomatis dan fitur lainnya.

Gunakan struktur berikut untuk menentukan skema:

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

Anda bisa mendapatkan skema database Anda menggunakan salah satu metode berikut:

  1. Di antarmuka pengguna web Azure Data Explorer, di menu sebelah kiri, pilih Kueri.

  2. Pilih database yang ingin Anda buat skemanya.

  3. Di jendela kueri, jalankan kueri berikut ini:

    .show schema as json
    
  4. Salin hasil kueri dan tempelkan sebagai konstanta skema . Hasil kueri adalah daftar database (lihat antarmuka Result dalam file schema.ts ).

  5. setSchemaFromShowSchema() Gunakan metode untuk mengatur skema di editor. Anda juga harus menentukan URI kluster dan nama database yang akan digunakan di editor.

Sampel proyek

Anda dapat menemukan proyek sampel yang menggunakan paket monaco-kusto . Untuk menggunakan sampel, kloning repositori GitHub monaco-kusto. Anda akan menemukan sampel di folder samples/react .

Menyiapkan dan menguji proyek sampel Anda

Jalankan perintah berikut dari akar repositori kloning:

  1. Instal dependensi dan bangun proyek:

    npm install
    
  2. Verifikasi bahwa proyek berfungsi. Jika berhasil, index.html akan terbuka.

    npm run watch