Skip to content

Commit

Permalink
Fix quirk during language server initialization
Browse files Browse the repository at this point in the history
  • Loading branch information
TwitchBronBron committed Nov 13, 2020
1 parent d8c38f6 commit 95be1cd
Showing 1 changed file with 13 additions and 8 deletions.
21 changes: 13 additions & 8 deletions src/LanguageServerManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,6 @@ export class LanguageServerManager {
this.context = context;
this.definitionRepository = definitionRepository;

if (this.isLanguageServerEnabledInSettings()) {
return this.enableLanguageServer();
}
//dynamically enable or disable the language server based on user settings
vscode.workspace.onDidChangeConfiguration((configuration) => {
if (this.isLanguageServerEnabledInSettings()) {
Expand All @@ -54,6 +51,12 @@ export class LanguageServerManager {
this.disableLanguageServer();
}
});

if (this.isLanguageServerEnabledInSettings()) {
return this.enableLanguageServer();
} else {
this.disableLanguageServer();
}
}

private deferred: Deferred<any>;
Expand All @@ -74,19 +77,20 @@ export class LanguageServerManager {

private async enableLanguageServer() {
try {

//if we already have a language server, nothing more needs to be done
if (this.client) {
return this.ready();
}

//disable the simple providers (the language server will handle all of these)
this.disableSimpleProviders();

let newDeferred = new Deferred<any>();
//chain any pending promises to this new deferred
this.deferred.resolve(newDeferred.promise);
this.deferred = newDeferred;

//disable the simple providers (the language server will handle all of these)
this.disableSimpleProviders();

// The server is implemented in node
let serverModule = this.context.asAbsolutePath(
path.join('dist', 'LanguageServerRunner.js')
Expand Down Expand Up @@ -173,9 +177,9 @@ export class LanguageServerManager {
this.buildStatusStatusBar.dispose();
this.buildStatusStatusBar = undefined;
this.client = undefined;
//enable the simple providers (since there is no language server)
this.enableSimpleProviders();
}
//enable the simple providers (since there is no language server)
this.enableSimpleProviders();
}

private simpleSubscriptions = [] as Disposable[];
Expand Down Expand Up @@ -216,6 +220,7 @@ export class LanguageServerManager {
sub.dispose();
}
}
this.simpleSubscriptions = [];
}
}

Expand Down

0 comments on commit 95be1cd

Please sign in to comment.