Monaco Düzenleyicisi'ni uygulamanızda Kusto Sorgu Dili desteğiyle tümleştirme

Monako Düzenleyicisi'ni Kusto Sorgu Dili desteğiyle (monaco-kusto) uygulamanıza tümleştirebilirsiniz. Monaco-kusto'yu uygulamanızla tümleştirerek tamamlama, renklendirme, yeniden düzenleme, yeniden adlandırma ve tanıma gitme gibi bir düzenleme deneyimi sunar. Kimlik doğrulaması, sorgu yürütme, sonuç görüntüleme ve şema keşfi için bir çözüm oluşturmanız gerekir. İhtiyaçlarınıza uygun kullanıcı deneyimine tam esneklik sunar.

Bu makalede Monaco Düzenleyicisi'ne monaco-kusto eklemeyi ve uygulamanıza tümleştirmeyi öğreneceksiniz. Paket GitHub'da ve npm'de kullanılabilir.

monaco-kusto'yunpm kullanarak uygulamanızla tümleştirmek için aşağıdaki adımları kullanın.

1. Adım: Monaco-kusto paketini yükleme

2. Adım: Uygulamanızı monaco-kusto paketini kullanacak şekilde ayarlama

3. Adım: Veritabanı şemanızı düzenleyiciye ekleme

Örnek projemizle tümleştirmeyi deneyin!

Önkoşullar

monaco-kusto paketini yükleme

  1. Monaco Editor npm paketini yükleyin:

    npm i monaco-editor
    

    Not

    Yerel Monako Düzenleyicisi'ni özelleştirmek için bkz. Monaco Düzenleyicisi GitHub deposu.

  2. monaco-kusto npm paketini yükleyin:

    npm i @kusto/monaco-kusto
    

Uygulamanızı monaco-kusto paketini kullanacak şekilde ayarlama

Uygulamanızı aşağıdaki yöntemlerden birini kullanarak monaco-kusto kullanacak şekilde ayarlayabilirsiniz:

  1. index.html dosyanız gibi Monaco Düzenleyicisi'nin kullanıldığı sayfalara aşağıdaki HTML'yi ekleyin. Bunlar, paketin üzerinde kusto-language-servicesahip olduğu bir bağımlılık nedeniyle gereklidir.

    <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. Monaco ve monaco-kusto paketlerinden statik dosyaları web sunucunuzdaki monaco-editor klasörüne kopyalayın. Uygulamanızın bu statik dosyalara erişmesi gerekir.

  3. Bunları yüklemek için monaco kullanın. Örnekler için örneklere bakın.

Veritabanı şemanızı düzenleyiciye ekleme

monaco-kusto paketi, veritabanı şemanızı düzenleyiciye eklemek için bir yol sağlar. Şema, düzenleyicinin otomatik tamamlama önerileri ve diğer özellikleri sağlamasına olanak tanır.

Şemayı tanımlamak için aşağıdaki yapıyı kullanın:

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

Veritabanı şemanızı almak için aşağıdaki yöntemlerden birini kullanabilirsiniz:

  1. Azure Veri Gezgini web kullanıcı arabiriminin sol menüsünde Sorgu'yu seçin.

  2. Şema oluşturmak istediğiniz veritabanını seçin.

  3. Sorgu penceresinde aşağıdaki sorguyu çalıştırın:

    .show schema as json
    
  4. Sorgunun sonucunu kopyalayın ve şema sabiti olarak yapıştırın. Sorgunun sonucu veritabanlarının listesidir (schema.ts dosyasındaki arabirime Result bakın).

  5. Düzenleyicide setSchemaFromShowSchema() şemayı ayarlamak için yöntemini kullanın. Ayrıca düzenleyicide kullanılacak küme URI'sini ve veritabanının adını belirtmelisiniz.

Örnek proje

Monaco-kusto paketini kullanan örnek bir proje bulabilirsiniz. Örneği kullanmak için monaco-kusto GitHub deposunu kopyalayın. Örneği samples/react klasöründe bulabilirsiniz.

Örnek projenizi ayarlama ve test etme

Kopyalanan deponun kökünden aşağıdaki komutları çalıştırın:

  1. Bağımlılıkları yükleyin ve projeyi derleyin:

    npm install
    
  2. Projenin çalıştığını doğrulayın. Başarılı olursa index.html açılır.

    npm run watch