Ensure we send file configuration before running organize imports

This commit is contained in:
Matt Bierner
2018-05-08 13:29:20 -07:00
parent cc68aad98f
commit 04255d26e1
2 changed files with 7 additions and 3 deletions

View File

@@ -9,6 +9,7 @@ import * as Proto from '../protocol';
import { ITypeScriptServiceClient } from '../typescriptService';
import { Command, CommandManager } from '../utils/commandManager';
import * as typeconverts from '../utils/typeConverters';
import FileConfigurationManager from './fileConfigurationManager';
const localize = nls.loadMessageBundle();
@@ -48,7 +49,8 @@ class OrganizeImportsCommand implements Command {
export class OrganizeImportsCodeActionProvider implements vscode.CodeActionProvider {
public constructor(
private readonly client: ITypeScriptServiceClient,
commandManager: CommandManager
commandManager: CommandManager,
private readonly fileConfigManager: FileConfigurationManager,
) {
commandManager.register(new OrganizeImportsCommand(client));
}
@@ -61,7 +63,7 @@ export class OrganizeImportsCodeActionProvider implements vscode.CodeActionProvi
document: vscode.TextDocument,
_range: vscode.Range,
_context: vscode.CodeActionContext,
_token: vscode.CancellationToken
token: vscode.CancellationToken
): vscode.CodeAction[] {
if (!this.client.apiVersion.has280Features()) {
return [];
@@ -72,6 +74,8 @@ export class OrganizeImportsCodeActionProvider implements vscode.CodeActionProvi
return [];
}
this.fileConfigManager.ensureConfigurationForDocument(document, token);
const action = new vscode.CodeAction(
localize('oraganizeImportsAction.title', "Organize Imports"),
vscode.CodeActionKind.SourceOrganizeImports);

View File

@@ -249,7 +249,7 @@ export default class LanguageProvider {
}
if (this.client.apiVersion.has280Features()) {
const organizeImportsProvider = new (await import('./features/organizeImports')).OrganizeImportsCodeActionProvider(this.client, this.commandManager);
const organizeImportsProvider = new (await import('./features/organizeImports')).OrganizeImportsCodeActionProvider(this.client, this.commandManager, this.fileConfigurationManager);
this.versionDependentDisposables.push(languages.registerCodeActionsProvider(selector, organizeImportsProvider, organizeImportsProvider.metadata));
}
}