Integrare l'editor monaco con il supporto di Linguaggio di query Kusto nell'app

È possibile integrare l'editor monaco con Linguaggio di query Kusto supporto (monaco-kusto) nell'app. L'integrazione di monaco-kusto nell'app offre un'esperienza di modifica, ad esempio il completamento, la colorazione, il refactoring, la ridenominazione e la definizione go-to-definition. È necessario creare una soluzione per l'autenticazione, l'esecuzione di query, la visualizzazione dei risultati e l'esplorazione dello schema. Offre una flessibilità completa per modellare l'esperienza utente adatta alle proprie esigenze.

In questo articolo si apprenderà come aggiungere monaco-kusto all'editor di Monaco e integrarlo nell'app. Il pacchetto è disponibile in GitHub e in npm.

Seguire questa procedura per integrare monaco-kusto nell'app usando npm.

Passaggio 1: Installare il pacchetto monaco-kusto

Passaggio 2: Configurare l'app per usare il pacchetto monaco-kusto

Passaggio 3: Aggiungere lo schema del database all'editor

Provare l'integrazione con il progetto Di esempio!

Prerequisiti

  • Node.js (v6.10.3 o versione successiva)

Installare il pacchetto monaco-kusto

  1. Installare il pacchetto npm editor di Monaco:

    npm i monaco-editor
    

    Nota

    Per personalizzare l'editor di Monaco nativo, vedere Repository GitHub editor di Monaco.

  2. Installare il pacchetto monaco-kusto npm:

    npm i @kusto/monaco-kusto
    

Configurare l'app per usare il pacchetto monaco-kusto

È possibile configurare l'app per usare monaco-kusto usando uno dei metodi seguenti:

  1. Aggiungere il codice HTML seguente alle pagine in cui viene usato l'editor di Monaco, ad esempio il file index.html . Sono necessari a causa di una dipendenza che il pacchetto ha su 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. Copiare i file statici dai pacchetti monaco emonaco-kusto nella cartella monaco-editor nel server Web. L'app dovrà accedere a questi file statici.

  3. Usare monaco per caricarli. Per esempi, vedere gli esempi.

Aggiungere lo schema del database all'editor

Il pacchetto monaco-kusto consente di aggiungere lo schema del database all'editor. Lo schema consente all'editor di fornire suggerimenti completi automatici e altre funzionalità.

Usare la struttura seguente per definire lo schema:

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

È possibile ottenere lo schema del database usando uno dei metodi seguenti:

  1. Nel menu a sinistra dell'interfaccia utente Web di Azure Esplora dati selezionare Query.

  2. Selezionare il database per il quale si vuole creare uno schema.

  3. Nella finestra della query eseguire la query seguente:

    .show schema as json
    
  4. Copiare il risultato della query e incollarlo come costante dello schema . Il risultato della query è un elenco di database (vedere l'interfaccia Result nel file schema.ts ).

  5. Usare il metodo per impostare lo setSchemaFromShowSchema() schema nell'editor. È anche necessario specificare l'URI del cluster e il nome del database da usare nell'editor.

Progetto di esempio

È possibile trovare un progetto di esempio che usa il pacchetto monaco-kusto . Per usare l'esempio, clonare il repository GitHub monaco-kusto. Si troverà l'esempio nella cartella samples/react .

Configurare e testare il progetto di esempio

Eseguire i comandi seguenti dalla radice del repository clonato:

  1. Installare le dipendenze e compilare il progetto:

    npm install
    
  2. Verificare che il progetto funzioni. In caso di esito positivo, il index.html verrà aperto.

    npm run watch