private createRulesProvider()

in package/src/languageServiceManager/kustoLanguageService.ts [2017:2064]


    private createRulesProvider(
        schema: k.KustoIntelliSenseQuerySchema | CmSchema | undefined,
        clusterType: s.ClusterType
    ) {
        let queryParameters: any = new (List(String))();
        let availableClusters: any = new (List(String))();
        this._parser = new k.CslCommandParser();

        if (clusterType == 'Engine') {
            const engineSchema = schema as k.KustoIntelliSenseQuerySchema;
            this._rulesProvider =
                this._languageSettings && this._languageSettings.includeControlCommands
                    ? new k.CslIntelliSenseRulesProvider.$ctor1(
                          engineSchema.Cluster,
                          engineSchema,
                          queryParameters,
                          availableClusters,
                          null,
                          true,
                          true
                      )
                    : new k.CslQueryIntelliSenseRulesProvider.$ctor1(
                          engineSchema.Cluster,
                          engineSchema,
                          queryParameters,
                          availableClusters,
                          null,
                          null,
                          null
                      );
            return;
        }

        if (clusterType === 'DataManagement') {
            this._rulesProvider = new k.DataManagerIntelliSenseRulesProvider(null);
            return;
        }

        // This is a cluster manger
        const { accounts, services, connectionString } = schema as CmSchema;
        new k.KustoIntelliSenseAccountEntity();
        new k.KustoIntelliSenseServiceEntity();
        this._rulesProvider = new k.ClusterManagerIntelliSenseRulesProvider.$ctor1(
            new Bridge.ArrayEnumerable(accounts),
            new Bridge.ArrayEnumerable(services),
            connectionString
        );
    }