in src/clientHandler.ts [57:94]
private async createTerraformClient(): Promise<TerraformLanguageClient> {
const commandPrefix = this.shortUid.seq();
const initializationOptions = this.getInitializationOptions(commandPrefix);
const serverOptions = await this.getServerOptions();
const documentSelector: DocumentSelector = [{ scheme: 'file', language: 'terraform' }];
const clientOptions: LanguageClientOptions = {
documentSelector: documentSelector,
initializationOptions: initializationOptions,
initializationFailedHandler: (error) => {
this.reporter.sendTelemetryErrorEvent('initializationFailed', {
err: `${error}`,
});
return false;
},
outputChannel: this.outputChannel,
revealOutputChannelOn: RevealOutputChannelOn.Never,
};
const id = `terraform`;
const client = new LanguageClient(id, serverOptions, clientOptions);
if (vscode.env.isTelemetryEnabled) {
client.registerFeature(new TelemetryFeature(client, this.reporter));
}
client.onDidChangeState((event) => {
console.log(`Client: ${State[event.oldState]} --> ${State[event.newState]}`);
if (event.newState === State.Stopped) {
this.reporter.sendRawTelemetryEvent('stopClient');
}
});
return { commandPrefix, client };
}