mirror of
https://github.com/Microsoft/vscode
synced 2024-08-28 05:19:39 +00:00
Use object parameter for services
This commit is contained in:
parent
feadf5183d
commit
0a7364f005
|
@ -55,7 +55,14 @@ export function activate(
|
|||
'/builtin-extension/typescript-language-features/dist/browser/typescript-web/tsserver.js',
|
||||
API.v400));
|
||||
|
||||
const lazyClientHost = createLazyClientHost(context, false, pluginManager, commandManager, noopLogDirectoryProvider, noopRequestCancellerFactory, versionProvider, WorkerServerProcess, item => {
|
||||
const lazyClientHost = createLazyClientHost(context, false, {
|
||||
pluginManager,
|
||||
commandManager,
|
||||
logDirectoryProvider: noopLogDirectoryProvider,
|
||||
cancellerFactory: noopRequestCancellerFactory,
|
||||
versionProvider,
|
||||
processFactory: WorkerServerProcess
|
||||
}, item => {
|
||||
onCompletionAccepted.fire(item);
|
||||
});
|
||||
|
||||
|
|
|
@ -35,7 +35,14 @@ export function activate(
|
|||
|
||||
context.subscriptions.push(new LanguageConfigurationManager());
|
||||
|
||||
const lazyClientHost = createLazyClientHost(context, onCaseInsenitiveFileSystem(), pluginManager, commandManager, logDirectoryProvider, nodeRequestCancellerFactory, versionProvider, ChildServerProcess, item => {
|
||||
const lazyClientHost = createLazyClientHost(context, onCaseInsenitiveFileSystem(), {
|
||||
pluginManager,
|
||||
commandManager,
|
||||
logDirectoryProvider,
|
||||
cancellerFactory: nodeRequestCancellerFactory,
|
||||
versionProvider,
|
||||
processFactory: ChildServerProcess,
|
||||
}, item => {
|
||||
onCompletionAccepted.fire(item);
|
||||
});
|
||||
|
||||
|
|
|
@ -20,12 +20,14 @@ import { PluginManager } from './utils/plugins';
|
|||
export function createLazyClientHost(
|
||||
context: vscode.ExtensionContext,
|
||||
onCaseInsenitiveFileSystem: boolean,
|
||||
pluginManager: PluginManager,
|
||||
commandManager: CommandManager,
|
||||
logDirectoryProvider: ILogDirectoryProvider,
|
||||
cancellerFactory: OngoingRequestCancellerFactory,
|
||||
versionProvider: ITypeScriptVersionProvider,
|
||||
processFactory: TsServerProcessFactory,
|
||||
services: {
|
||||
pluginManager: PluginManager,
|
||||
commandManager: CommandManager,
|
||||
logDirectoryProvider: ILogDirectoryProvider,
|
||||
cancellerFactory: OngoingRequestCancellerFactory,
|
||||
versionProvider: ITypeScriptVersionProvider,
|
||||
processFactory: TsServerProcessFactory,
|
||||
},
|
||||
onCompletionAccepted: (item: vscode.CompletionItem) => void,
|
||||
): Lazy<TypeScriptServiceClientHost> {
|
||||
return lazy(() => {
|
||||
|
@ -33,12 +35,7 @@ export function createLazyClientHost(
|
|||
standardLanguageDescriptions,
|
||||
context.workspaceState,
|
||||
onCaseInsenitiveFileSystem,
|
||||
pluginManager,
|
||||
commandManager,
|
||||
logDirectoryProvider,
|
||||
cancellerFactory,
|
||||
versionProvider,
|
||||
processFactory,
|
||||
services,
|
||||
onCompletionAccepted);
|
||||
|
||||
context.subscriptions.push(clientHost);
|
||||
|
@ -57,7 +54,7 @@ export function createLazyClientHost(
|
|||
export function lazilyActivateClient(
|
||||
lazyClientHost: Lazy<TypeScriptServiceClientHost>,
|
||||
pluginManager: PluginManager,
|
||||
) {
|
||||
): vscode.Disposable {
|
||||
const disposables: vscode.Disposable[] = [];
|
||||
|
||||
const supportedLanguage = flatten([
|
||||
|
|
|
@ -10,7 +10,7 @@ import type * as Proto from '../protocol';
|
|||
import { NodeRequestCanceller } from '../tsServer/cancellation.electron';
|
||||
import { ProcessBasedTsServer, TsServerProcess } from '../tsServer/server';
|
||||
import { nulToken } from '../utils/cancellation';
|
||||
import Logger from '../utils/logger';
|
||||
import { Logger } from '../utils/logger';
|
||||
import { TelemetryReporter } from '../utils/telemetry';
|
||||
import Tracer from '../utils/tracer';
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import { OngoingRequestCancellerFactory } from '../tsServer/cancellation';
|
|||
import { ClientCapabilities, ClientCapability } from '../typescriptService';
|
||||
import API from '../utils/api';
|
||||
import { SeparateSyntaxServerConfiguration, TsServerLogLevel, TypeScriptServiceConfiguration } from '../utils/configuration';
|
||||
import Logger from '../utils/logger';
|
||||
import { Logger } from '../utils/logger';
|
||||
import { TypeScriptPluginPathsProvider } from '../utils/pluginPathsProvider';
|
||||
import { PluginManager } from '../utils/plugins';
|
||||
import { TelemetryReporter } from '../utils/telemetry';
|
||||
|
|
|
@ -58,29 +58,31 @@ export default class TypeScriptServiceClientHost extends Disposable {
|
|||
|
||||
private reportStyleCheckAsWarnings: boolean = true;
|
||||
|
||||
private readonly commandManager: CommandManager;
|
||||
|
||||
constructor(
|
||||
descriptions: LanguageDescription[],
|
||||
workspaceState: vscode.Memento,
|
||||
onCaseInsenitiveFileSystem: boolean,
|
||||
pluginManager: PluginManager,
|
||||
private readonly commandManager: CommandManager,
|
||||
logDirectoryProvider: ILogDirectoryProvider,
|
||||
cancellerFactory: OngoingRequestCancellerFactory,
|
||||
versionProvider: ITypeScriptVersionProvider,
|
||||
processFactory: TsServerProcessFactory,
|
||||
services: {
|
||||
pluginManager: PluginManager,
|
||||
commandManager: CommandManager,
|
||||
logDirectoryProvider: ILogDirectoryProvider,
|
||||
cancellerFactory: OngoingRequestCancellerFactory,
|
||||
versionProvider: ITypeScriptVersionProvider,
|
||||
processFactory: TsServerProcessFactory,
|
||||
},
|
||||
onCompletionAccepted: (item: vscode.CompletionItem) => void,
|
||||
) {
|
||||
super();
|
||||
|
||||
const allModeIds = this.getAllModeIds(descriptions, pluginManager);
|
||||
this.commandManager = services.commandManager;
|
||||
|
||||
const allModeIds = this.getAllModeIds(descriptions, services.pluginManager);
|
||||
this.client = this._register(new TypeScriptServiceClient(
|
||||
workspaceState,
|
||||
onCaseInsenitiveFileSystem,
|
||||
pluginManager,
|
||||
logDirectoryProvider,
|
||||
cancellerFactory,
|
||||
versionProvider,
|
||||
processFactory,
|
||||
services,
|
||||
allModeIds));
|
||||
|
||||
this.client.onDiagnosticsReceived(({ kind, resource, diagnostics }) => {
|
||||
|
@ -90,7 +92,7 @@ export default class TypeScriptServiceClientHost extends Disposable {
|
|||
this.client.onConfigDiagnosticsReceived(diag => this.configFileDiagnosticsReceived(diag), null, this._disposables);
|
||||
this.client.onResendModelsRequested(() => this.populateService(), null, this._disposables);
|
||||
|
||||
this._register(new VersionStatus(this.client, commandManager));
|
||||
this._register(new VersionStatus(this.client, services.commandManager));
|
||||
this._register(new AtaProgressReporter(this.client));
|
||||
this.typingsStatus = this._register(new TypingsStatus(this.client));
|
||||
this.fileConfigurationManager = this._register(new FileConfigurationManager(this.client, onCaseInsenitiveFileSystem));
|
||||
|
@ -111,7 +113,7 @@ export default class TypeScriptServiceClientHost extends Disposable {
|
|||
this.client.ensureServiceStarted();
|
||||
this.client.onReady(() => {
|
||||
const languages = new Set<string>();
|
||||
for (const plugin of pluginManager.plugins) {
|
||||
for (const plugin of services.pluginManager.plugins) {
|
||||
if (plugin.configNamespace && plugin.languages.length) {
|
||||
this.registerExtensionLanguageProvider({
|
||||
id: plugin.configNamespace,
|
||||
|
|
|
@ -22,7 +22,7 @@ import API from './utils/api';
|
|||
import { TsServerLogLevel, TypeScriptServiceConfiguration } from './utils/configuration';
|
||||
import { Disposable } from './utils/dispose';
|
||||
import * as fileSchemes from './utils/fileSchemes';
|
||||
import Logger from './utils/logger';
|
||||
import { Logger } from './utils/logger';
|
||||
import { isWeb } from './utils/platform';
|
||||
import { TypeScriptPluginPathsProvider } from './utils/pluginPathsProvider';
|
||||
import { PluginManager } from './utils/plugins';
|
||||
|
@ -119,17 +119,32 @@ export default class TypeScriptServiceClient extends Disposable implements IType
|
|||
public readonly bufferSyncSupport: BufferSyncSupport;
|
||||
public readonly diagnosticsManager: DiagnosticsManager;
|
||||
|
||||
public readonly pluginManager: PluginManager;
|
||||
private readonly logDirectoryProvider: ILogDirectoryProvider;
|
||||
private readonly cancellerFactory: OngoingRequestCancellerFactory;
|
||||
private readonly versionProvider: ITypeScriptVersionProvider;
|
||||
private readonly processFactory: TsServerProcessFactory;
|
||||
|
||||
constructor(
|
||||
private readonly workspaceState: vscode.Memento,
|
||||
onCaseInsenitiveFileSystem: boolean,
|
||||
public readonly pluginManager: PluginManager,
|
||||
private readonly logDirectoryProvider: ILogDirectoryProvider,
|
||||
private readonly cancellerFactory: OngoingRequestCancellerFactory,
|
||||
private readonly versionProvider: ITypeScriptVersionProvider,
|
||||
private readonly processFactory: TsServerProcessFactory,
|
||||
services: {
|
||||
pluginManager: PluginManager,
|
||||
logDirectoryProvider: ILogDirectoryProvider,
|
||||
cancellerFactory: OngoingRequestCancellerFactory,
|
||||
versionProvider: ITypeScriptVersionProvider,
|
||||
processFactory: TsServerProcessFactory,
|
||||
},
|
||||
allModeIds: readonly string[]
|
||||
) {
|
||||
super();
|
||||
|
||||
this.pluginManager = services.pluginManager;
|
||||
this.logDirectoryProvider = services.logDirectoryProvider;
|
||||
this.cancellerFactory = services.cancellerFactory;
|
||||
this.versionProvider = services.versionProvider;
|
||||
this.processFactory = services.processFactory;
|
||||
|
||||
this.pathSeparator = path.sep;
|
||||
this.lastStart = Date.now();
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ const localize = nls.loadMessageBundle();
|
|||
|
||||
type LogLevel = 'Trace' | 'Info' | 'Error';
|
||||
|
||||
export default class Logger {
|
||||
export class Logger {
|
||||
|
||||
@memoize
|
||||
private get output(): vscode.OutputChannel {
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
import * as vscode from 'vscode';
|
||||
import type * as Proto from '../protocol';
|
||||
import Logger from './logger';
|
||||
import { Logger } from './logger';
|
||||
|
||||
enum Trace {
|
||||
Off,
|
||||
|
|
Loading…
Reference in a new issue