function setupLanguageClient()

in src/extension.ts [127:155]


function setupLanguageClient(ctx: vscode.ExtensionContext): LanguageClient {
    const executable: Executable = {
        command: ctx.asAbsolutePath("./bin/azurerm-lsp"),
        args: ["serve"],
    };

    const serverOptions: ServerOptions = {
        run: executable,
        debug: executable,
    };

    const clientOptions: LanguageClientOptions = {
        documentSelector: [{scheme: "file", language: "terraform"}],
        outputChannel: vscode.window.createOutputChannel("AzureRM LSP"),
    };

    const client = new LanguageClient("azurerm", serverOptions, clientOptions);

    client.start().catch((err) => {
        vscode.window.showErrorMessage(`Failed to start AzureRM LSP client: ${err.message}`);
        console.error("Failed to start AzureRM LSP client:", err);
    });

    client.onDidChangeState((event) => {
        console.log(`Client: ${event.newState}`);
    });

    return client;
}