forked from microsoft/vscode-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserviceRegistry.ts
More file actions
238 lines (234 loc) · 12.1 KB
/
serviceRegistry.ts
File metadata and controls
238 lines (234 loc) · 12.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
import { IExtensionSingleActivationService } from '../activation/types';
import {
IExperimentService,
IFileDownloader,
IHttpClient,
IInterpreterPathService,
IToolExecutionPath,
ToolExecutionPath,
} from '../common/types';
import { IServiceManager } from '../ioc/types';
import { JupyterExtensionDependencyManager } from '../jupyter/jupyterExtensionDependencyManager';
import { ImportTracker } from '../telemetry/importTracker';
import { IImportTracker } from '../telemetry/types';
import { ActiveResourceService } from './application/activeResource';
import { ApplicationEnvironment } from './application/applicationEnvironment';
import { ApplicationShell } from './application/applicationShell';
import { ClipboardService } from './application/clipboard';
import { CommandManager } from './application/commandManager';
import { ReloadVSCodeCommandHandler } from './application/commands/reloadCommand';
import { ReportIssueCommandHandler } from './application/commands/reportIssueCommand';
import { DebugService } from './application/debugService';
import { DebugSessionTelemetry } from './application/debugSessionTelemetry';
import { DocumentManager } from './application/documentManager';
import { Extensions } from './application/extensions';
import { LanguageService } from './application/languageService';
import { VSCodeNotebook } from './application/notebook';
import { TerminalManager } from './application/terminalManager';
import {
IActiveResourceService,
IApplicationEnvironment,
IApplicationShell,
IClipboard,
ICommandManager,
IDebugService,
IDocumentManager,
IJupyterExtensionDependencyManager,
ILanguageService,
ITerminalManager,
IVSCodeNotebook,
IWorkspaceService,
} from './application/types';
import { WorkspaceService } from './application/workspace';
import { AsyncDisposableRegistry } from './asyncDisposableRegistry';
import { ConfigurationService } from './configuration/service';
import { PipEnvExecutionPath } from './configuration/executionSettings/pipEnvExecution';
import { CryptoUtils } from './crypto';
import { EditorUtils } from './editor';
import { ExperimentsManager } from './experiments/manager';
import { ExperimentService } from './experiments/service';
import {
ExtensionInsidersDailyChannelRule,
ExtensionInsidersOffChannelRule,
ExtensionInsidersWeeklyChannelRule,
} from './insidersBuild/downloadChannelRules';
import { ExtensionChannelService } from './insidersBuild/downloadChannelService';
import { InsidersExtensionPrompt } from './insidersBuild/insidersExtensionPrompt';
import { InsidersExtensionService } from './insidersBuild/insidersExtensionService';
import {
ExtensionChannel,
IExtensionChannelRule,
IExtensionChannelService,
IInsiderExtensionPrompt,
} from './insidersBuild/types';
import { ProductInstaller } from './installer/productInstaller';
import { InterpreterPathService } from './interpreterPathService';
import { BrowserService } from './net/browser';
import { FileDownloader } from './net/fileDownloader';
import { HttpClient } from './net/httpClient';
import { NugetService } from './nuget/nugetService';
import { INugetService } from './nuget/types';
import { PersistentStateFactory } from './persistentState';
import { IS_WINDOWS } from './platform/constants';
import { PathUtils } from './platform/pathUtils';
import { CurrentProcess } from './process/currentProcess';
import { ProcessLogger } from './process/logger';
import { IProcessLogger } from './process/types';
import { CodeCssGenerator } from './startPage/codeCssGenerator';
import { StartPage } from './startPage/startPage';
import { ThemeFinder } from './startPage/themeFinder';
import { ICodeCssGenerator, IStartPage, IThemeFinder } from './startPage/types';
import { TerminalActivator } from './terminal/activator';
import { PowershellTerminalActivationFailedHandler } from './terminal/activator/powershellFailedHandler';
import { Bash } from './terminal/environmentActivationProviders/bash';
import { CommandPromptAndPowerShell } from './terminal/environmentActivationProviders/commandPrompt';
import { CondaActivationCommandProvider } from './terminal/environmentActivationProviders/condaActivationProvider';
import { PipEnvActivationCommandProvider } from './terminal/environmentActivationProviders/pipEnvActivationProvider';
import { PyEnvActivationCommandProvider } from './terminal/environmentActivationProviders/pyenvActivationProvider';
import { TerminalServiceFactory } from './terminal/factory';
import { TerminalHelper } from './terminal/helper';
import { SettingsShellDetector } from './terminal/shellDetectors/settingsShellDetector';
import { TerminalNameShellDetector } from './terminal/shellDetectors/terminalNameShellDetector';
import { UserEnvironmentShellDetector } from './terminal/shellDetectors/userEnvironmentShellDetector';
import { VSCEnvironmentShellDetector } from './terminal/shellDetectors/vscEnvironmentShellDetector';
import {
IShellDetector,
ITerminalActivationCommandProvider,
ITerminalActivationHandler,
ITerminalActivator,
ITerminalHelper,
ITerminalServiceFactory,
TerminalActivationProviders,
} from './terminal/types';
import {
IAsyncDisposableRegistry,
IBrowserService,
IConfigurationService,
ICryptoUtils,
ICurrentProcess,
IEditorUtils,
IExperimentsManager,
IExtensions,
IInstaller,
IPathUtils,
IPersistentStateFactory,
IRandom,
IsWindows,
} from './types';
import { IMultiStepInputFactory, MultiStepInputFactory } from './utils/multiStepInput';
import { Random } from './utils/random';
export function registerTypes(serviceManager: IServiceManager) {
serviceManager.addSingletonInstance<boolean>(IsWindows, IS_WINDOWS);
serviceManager.addSingleton<IActiveResourceService>(IActiveResourceService, ActiveResourceService);
serviceManager.addSingleton<IInterpreterPathService>(IInterpreterPathService, InterpreterPathService);
serviceManager.addSingleton<IExtensions>(IExtensions, Extensions);
serviceManager.addSingleton<IRandom>(IRandom, Random);
serviceManager.addSingleton<IPersistentStateFactory>(IPersistentStateFactory, PersistentStateFactory);
serviceManager.addBinding(IPersistentStateFactory, IExtensionSingleActivationService);
serviceManager.addSingleton<ITerminalServiceFactory>(ITerminalServiceFactory, TerminalServiceFactory);
serviceManager.addSingleton<IPathUtils>(IPathUtils, PathUtils);
serviceManager.addSingleton<IApplicationShell>(IApplicationShell, ApplicationShell);
serviceManager.addSingleton<IVSCodeNotebook>(IVSCodeNotebook, VSCodeNotebook);
serviceManager.addSingleton<IClipboard>(IClipboard, ClipboardService);
serviceManager.addSingleton<ICurrentProcess>(ICurrentProcess, CurrentProcess);
serviceManager.addSingleton<IInstaller>(IInstaller, ProductInstaller);
serviceManager.addSingleton<IJupyterExtensionDependencyManager>(
IJupyterExtensionDependencyManager,
JupyterExtensionDependencyManager,
);
serviceManager.addSingleton<ICommandManager>(ICommandManager, CommandManager);
serviceManager.addSingleton<IConfigurationService>(IConfigurationService, ConfigurationService);
serviceManager.addSingleton<IWorkspaceService>(IWorkspaceService, WorkspaceService);
serviceManager.addSingleton<IProcessLogger>(IProcessLogger, ProcessLogger);
serviceManager.addSingleton<IDocumentManager>(IDocumentManager, DocumentManager);
serviceManager.addSingleton<ITerminalManager>(ITerminalManager, TerminalManager);
serviceManager.addSingleton<IDebugService>(IDebugService, DebugService);
serviceManager.addSingleton<IApplicationEnvironment>(IApplicationEnvironment, ApplicationEnvironment);
serviceManager.addSingleton<ILanguageService>(ILanguageService, LanguageService);
serviceManager.addSingleton<IBrowserService>(IBrowserService, BrowserService);
serviceManager.addSingleton<IHttpClient>(IHttpClient, HttpClient);
serviceManager.addSingleton<IFileDownloader>(IFileDownloader, FileDownloader);
serviceManager.addSingleton<IEditorUtils>(IEditorUtils, EditorUtils);
serviceManager.addSingleton<INugetService>(INugetService, NugetService);
serviceManager.addSingleton<ITerminalActivator>(ITerminalActivator, TerminalActivator);
serviceManager.addSingleton<ITerminalActivationHandler>(
ITerminalActivationHandler,
PowershellTerminalActivationFailedHandler,
);
serviceManager.addSingleton<ICryptoUtils>(ICryptoUtils, CryptoUtils);
serviceManager.addSingleton<IExperimentsManager>(IExperimentsManager, ExperimentsManager);
serviceManager.addSingleton<IExperimentService>(IExperimentService, ExperimentService);
serviceManager.addSingleton<ITerminalHelper>(ITerminalHelper, TerminalHelper);
serviceManager.addSingleton<ITerminalActivationCommandProvider>(
ITerminalActivationCommandProvider,
Bash,
TerminalActivationProviders.bashCShellFish,
);
serviceManager.addSingleton<ITerminalActivationCommandProvider>(
ITerminalActivationCommandProvider,
CommandPromptAndPowerShell,
TerminalActivationProviders.commandPromptAndPowerShell,
);
serviceManager.addSingleton<ITerminalActivationCommandProvider>(
ITerminalActivationCommandProvider,
PyEnvActivationCommandProvider,
TerminalActivationProviders.pyenv,
);
serviceManager.addSingleton<ITerminalActivationCommandProvider>(
ITerminalActivationCommandProvider,
CondaActivationCommandProvider,
TerminalActivationProviders.conda,
);
serviceManager.addSingleton<ITerminalActivationCommandProvider>(
ITerminalActivationCommandProvider,
PipEnvActivationCommandProvider,
TerminalActivationProviders.pipenv,
);
serviceManager.addSingleton<IToolExecutionPath>(IToolExecutionPath, PipEnvExecutionPath, ToolExecutionPath.pipenv);
serviceManager.addSingleton<IAsyncDisposableRegistry>(IAsyncDisposableRegistry, AsyncDisposableRegistry);
serviceManager.addSingleton<IMultiStepInputFactory>(IMultiStepInputFactory, MultiStepInputFactory);
serviceManager.addSingleton<IImportTracker>(IImportTracker, ImportTracker);
serviceManager.addBinding(IImportTracker, IExtensionSingleActivationService);
serviceManager.addSingleton<IShellDetector>(IShellDetector, TerminalNameShellDetector);
serviceManager.addSingleton<IShellDetector>(IShellDetector, SettingsShellDetector);
serviceManager.addSingleton<IShellDetector>(IShellDetector, UserEnvironmentShellDetector);
serviceManager.addSingleton<IShellDetector>(IShellDetector, VSCEnvironmentShellDetector);
serviceManager.addSingleton<IInsiderExtensionPrompt>(IInsiderExtensionPrompt, InsidersExtensionPrompt);
serviceManager.addSingleton<IExtensionSingleActivationService>(
IExtensionSingleActivationService,
InsidersExtensionService,
);
serviceManager.addSingleton<IExtensionSingleActivationService>(
IExtensionSingleActivationService,
ReloadVSCodeCommandHandler,
);
serviceManager.addSingleton<IExtensionSingleActivationService>(
IExtensionSingleActivationService,
ReportIssueCommandHandler,
);
serviceManager.addSingleton<IExtensionChannelService>(IExtensionChannelService, ExtensionChannelService);
serviceManager.addSingleton<IExtensionChannelRule>(
IExtensionChannelRule,
ExtensionInsidersOffChannelRule,
ExtensionChannel.off,
);
serviceManager.addSingleton<IExtensionChannelRule>(
IExtensionChannelRule,
ExtensionInsidersDailyChannelRule,
ExtensionChannel.daily,
);
serviceManager.addSingleton<IExtensionChannelRule>(
IExtensionChannelRule,
ExtensionInsidersWeeklyChannelRule,
ExtensionChannel.weekly,
);
serviceManager.addSingleton<IExtensionSingleActivationService>(
IExtensionSingleActivationService,
DebugSessionTelemetry,
);
serviceManager.addSingleton<IStartPage>(IStartPage, StartPage, undefined, [IExtensionSingleActivationService]);
serviceManager.addSingleton<ICodeCssGenerator>(ICodeCssGenerator, CodeCssGenerator);
serviceManager.addSingleton<IThemeFinder>(IThemeFinder, ThemeFinder);
}