Skip to content

Commit

Permalink
Merge plugin config provider into plugin manager
Browse files Browse the repository at this point in the history
  • Loading branch information
mjbvz committed Nov 16, 2018
1 parent 5da4d11 commit 71f86e5
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 25 deletions.
8 changes: 4 additions & 4 deletions extensions/typescript-language-features/src/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
import * as vscode from 'vscode';
import * as nls from 'vscode-nls';
import TypeScriptServiceClientHost from './typeScriptServiceClientHost';
import { nulToken } from './utils/cancellation';
import { Command } from './utils/commandManager';
import { Lazy } from './utils/lazy';
import { PluginManager } from './utils/plugins';
import { isImplicitProjectConfigFile, openOrCreateConfigFile } from './utils/tsconfig';
import { nulToken } from './utils/cancellation';
import { PluginConfigProvider } from './utils/plugins';

const localize = nls.loadMessageBundle();

Expand Down Expand Up @@ -108,11 +108,11 @@ export class ConfigurePluginCommand implements Command {
public readonly id = '_typescript.configurePlugin';

public constructor(
private readonly pluginConfigProvider: PluginConfigProvider,
private readonly pluginManager: PluginManager,
) { }

public execute(pluginId: string, configuration: any) {
this.pluginConfigProvider.set(pluginId, configuration);
this.pluginManager.set(pluginId, configuration);
}
}

Expand Down
13 changes: 5 additions & 8 deletions extensions/typescript-language-features/src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { standardLanguageDescriptions } from './utils/languageDescription';
import { lazy, Lazy } from './utils/lazy';
import LogDirectoryProvider from './utils/logDirectoryProvider';
import ManagedFileContextManager from './utils/managedFileContext';
import { PluginConfigProvider, PluginManager } from './utils/plugins';
import { PluginManager } from './utils/plugins';
import * as ProjectStatus from './utils/projectStatus';
import { Surveyor } from './utils/surveyor';

Expand All @@ -34,19 +34,18 @@ export function activate(
context: vscode.ExtensionContext
): Api {
const pluginManager = new PluginManager();
const pluginConfigProvider = new PluginConfigProvider();

const commandManager = new CommandManager();
context.subscriptions.push(commandManager);

const onCompletionAccepted = new vscode.EventEmitter();
context.subscriptions.push(onCompletionAccepted);

const lazyClientHost = createLazyClientHost(context, pluginManager, pluginConfigProvider, commandManager, item => {
const lazyClientHost = createLazyClientHost(context, pluginManager, commandManager, item => {
onCompletionAccepted.fire(item);
});

registerCommands(commandManager, lazyClientHost, pluginConfigProvider);
registerCommands(commandManager, lazyClientHost, pluginManager);
context.subscriptions.push(new TypeScriptTaskProviderManager(lazyClientHost.map(x => x.serviceClient)));
context.subscriptions.push(new LanguageConfigurationManager());

Expand Down Expand Up @@ -94,7 +93,6 @@ export function activate(
function createLazyClientHost(
context: vscode.ExtensionContext,
pluginManager: PluginManager,
pluginConfigProvider: PluginConfigProvider,
commandManager: CommandManager,
onCompletionAccepted: (item: vscode.CompletionItem) => void,
): Lazy<TypeScriptServiceClientHost> {
Expand All @@ -105,7 +103,6 @@ function createLazyClientHost(
standardLanguageDescriptions,
context.workspaceState,
pluginManager,
pluginConfigProvider,
commandManager,
logDirectoryProvider,
onCompletionAccepted);
Expand All @@ -129,7 +126,7 @@ function createLazyClientHost(
function registerCommands(
commandManager: CommandManager,
lazyClientHost: Lazy<TypeScriptServiceClientHost>,
pluginConfigProvider: PluginConfigProvider,
pluginManager: PluginManager,
) {
commandManager.register(new commands.ReloadTypeScriptProjectsCommand(lazyClientHost));
commandManager.register(new commands.ReloadJavaScriptProjectsCommand(lazyClientHost));
Expand All @@ -138,7 +135,7 @@ function registerCommands(
commandManager.register(new commands.RestartTsServerCommand(lazyClientHost));
commandManager.register(new commands.TypeScriptGoToProjectConfigCommand(lazyClientHost));
commandManager.register(new commands.JavaScriptGoToProjectConfigCommand(lazyClientHost));
commandManager.register(new commands.ConfigurePluginCommand(pluginConfigProvider));
commandManager.register(new commands.ConfigurePluginCommand(pluginManager));
}

function isSupportedDocument(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import { CommandManager } from './utils/commandManager';
import { Disposable } from './utils/dispose';
import { DiagnosticLanguage, LanguageDescription } from './utils/languageDescription';
import LogDirectoryProvider from './utils/logDirectoryProvider';
import { PluginConfigProvider, PluginManager } from './utils/plugins';
import { PluginManager } from './utils/plugins';
import * as typeConverters from './utils/typeConverters';
import TypingsStatus, { AtaProgressReporter } from './utils/typingsStatus';
import VersionStatus from './utils/versionStatus';
Expand Down Expand Up @@ -49,7 +49,6 @@ export default class TypeScriptServiceClientHost extends Disposable {
descriptions: LanguageDescription[],
workspaceState: vscode.Memento,
pluginManager: PluginManager,
pluginConfigProvider: PluginConfigProvider,
private readonly commandManager: CommandManager,
logDirectoryProvider: LogDirectoryProvider,
onCompletionAccepted: (item: vscode.CompletionItem) => void,
Expand All @@ -74,7 +73,6 @@ export default class TypeScriptServiceClientHost extends Disposable {
workspaceState,
version => this.versionStatus.onDidChangeTypeScriptVersion(version),
pluginManager,
pluginConfigProvider,
logDirectoryProvider,
allModeIds));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import * as is from './utils/is';
import LogDirectoryProvider from './utils/logDirectoryProvider';
import Logger from './utils/logger';
import { TypeScriptPluginPathsProvider } from './utils/pluginPathsProvider';
import { PluginConfigProvider, PluginManager } from './utils/plugins';
import { PluginManager } from './utils/plugins';
import TelemetryReporter from './utils/telemetry';
import Tracer from './utils/tracer';
import { inferredProjectConfig } from './utils/tsconfig';
Expand Down Expand Up @@ -75,7 +75,6 @@ export default class TypeScriptServiceClient extends Disposable implements IType
private readonly workspaceState: vscode.Memento,
private readonly onDidChangeTypeScriptVersion: (version: TypeScriptVersion) => void,
public readonly pluginManager: PluginManager,
private readonly pluginConfigProvider: PluginConfigProvider,
private readonly logDirectoryProvider: LogDirectoryProvider,
allModeIds: string[]
) {
Expand Down Expand Up @@ -134,7 +133,7 @@ export default class TypeScriptServiceClient extends Disposable implements IType

this.typescriptServerSpawner = new TypeScriptServerSpawner(this.versionProvider, this.logDirectoryProvider, this.pluginPathsProvider, this.logger, this.telemetryReporter, this.tracer);

this._register(this.pluginConfigProvider.onDidUpdateConfig(update => {
this._register(this.pluginManager.onDidUpdateConfig(update => {
this.configurePlugin(update.pluginId, update.config);
}));
}
Expand Down Expand Up @@ -413,7 +412,7 @@ export default class TypeScriptServiceClient extends Disposable implements IType
}

// Reconfigure any plugins
for (const [config, pluginName] of this.pluginConfigProvider.entries()) {
for (const [config, pluginName] of this.pluginManager.config()) {
this.configurePlugin(config, pluginName);
}
}
Expand Down
10 changes: 4 additions & 6 deletions extensions/typescript-language-features/src/utils/plugins.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ export interface TypeScriptServerPlugin {
readonly languages: ReadonlyArray<string>;
}

export class PluginManager {
export class PluginManager extends Disposable {
private readonly _config = new Map<string, {}>();

@memoize
public get plugins(): ReadonlyArray<TypeScriptServerPlugin> {
const plugins: TypeScriptServerPlugin[] = [];
Expand All @@ -31,10 +33,6 @@ export class PluginManager {
}
return plugins;
}
}

export class PluginConfigProvider extends Disposable {
private readonly _config = new Map<string, {}>();

private readonly _onDidUpdateConfig = this._register(new vscode.EventEmitter<{ pluginId: string, config: {} }>());
public readonly onDidUpdateConfig = this._onDidUpdateConfig.event;
Expand All @@ -44,7 +42,7 @@ export class PluginConfigProvider extends Disposable {
this._onDidUpdateConfig.fire({ pluginId, config });
}

public entries(): IterableIterator<[string, {}]> {
public config(): IterableIterator<[string, {}]> {
return this._config.entries();
}
}

0 comments on commit 71f86e5

Please sign in to comment.