export async function getLanguageClient()

in vscode/qodana/src/core/client/index.ts [21:54]


export async function getLanguageClient(context: vscode.ExtensionContext): Promise<LanguageClient> {
    let serverOptions = await getServerOptions(context);
    if (!serverOptions) {
        return Promise.reject('Failed to initialize the extension: failed to get server options');
    }
    let clientId = 'qodana-vscode-lsclient';
    let clientName = 'Qodana LS Client';
    // Client options should support C#, JS, TS and Java files in documentSelector
    let clientOptions: LanguageClientOptions = {
        documentSelector: [
            {
                pattern: '**/*.*',
            },
        ],
        outputChannel: outputChannel,
        revealOutputChannelOn: RevealOutputChannelOn.Never,
    };
    let languageClient = new LanguageClient(
        clientId,
        clientName,
        serverOptions,
        clientOptions
    );
    const disposeDidChange = languageClient.onDidChangeState(
        async (stateChangeEvent) => {
            if (stateChangeEvent.newState === State.Stopped) {
                vscode.window.showErrorMessage(FAILED_TO_INITIALIZE);
            } else if (stateChangeEvent.newState === State.Running) {
                disposeDidChange.dispose();
            }
        }
    );
    return languageClient;
}