mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-11-15 09:27:27 +00:00
Export lc.LanguageClient from VSCode extension
This commit is contained in:
parent
1db66b96c8
commit
d607c1b558
1 changed files with 12 additions and 3 deletions
|
@ -1,4 +1,5 @@
|
||||||
import * as vscode from 'vscode';
|
import * as vscode from 'vscode';
|
||||||
|
import * as lc from 'vscode-languageclient/node';
|
||||||
import * as os from "os";
|
import * as os from "os";
|
||||||
|
|
||||||
import * as commands from './commands';
|
import * as commands from './commands';
|
||||||
|
@ -14,16 +15,20 @@ let ctx: Ctx | undefined;
|
||||||
|
|
||||||
const RUST_PROJECT_CONTEXT_NAME = "inRustProject";
|
const RUST_PROJECT_CONTEXT_NAME = "inRustProject";
|
||||||
|
|
||||||
export async function activate(context: vscode.ExtensionContext) {
|
export interface RustAnalyzerExtensionApi {
|
||||||
|
client: lc.LanguageClient;
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function activate(context: vscode.ExtensionContext): Promise<RustAnalyzerExtensionApi> {
|
||||||
// VS Code doesn't show a notification when an extension fails to activate
|
// VS Code doesn't show a notification when an extension fails to activate
|
||||||
// so we do it ourselves.
|
// so we do it ourselves.
|
||||||
await tryActivate(context).catch(err => {
|
return await tryActivate(context).catch(err => {
|
||||||
void vscode.window.showErrorMessage(`Cannot activate rust-analyzer: ${err.message}`);
|
void vscode.window.showErrorMessage(`Cannot activate rust-analyzer: ${err.message}`);
|
||||||
throw err;
|
throw err;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async function tryActivate(context: vscode.ExtensionContext) {
|
async function tryActivate(context: vscode.ExtensionContext): Promise<RustAnalyzerExtensionApi> {
|
||||||
const config = new Config(context);
|
const config = new Config(context);
|
||||||
const state = new PersistentState(context.globalState);
|
const state = new PersistentState(context.globalState);
|
||||||
const serverPath = await bootstrap(context, config, state).catch(err => {
|
const serverPath = await bootstrap(context, config, state).catch(err => {
|
||||||
|
@ -62,6 +67,10 @@ async function tryActivate(context: vscode.ExtensionContext) {
|
||||||
null,
|
null,
|
||||||
ctx.subscriptions,
|
ctx.subscriptions,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
return {
|
||||||
|
client: ctx.client
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
async function initCommonContext(context: vscode.ExtensionContext, ctx: Ctx) {
|
async function initCommonContext(context: vscode.ExtensionContext, ctx: Ctx) {
|
||||||
|
|
Loading…
Reference in a new issue