|
1 | 1 | // Copyright (c) Microsoft Corporation. All rights reserved.
|
2 | 2 | // Licensed under the MIT License.
|
3 | 3 |
|
4 |
| -import { IJupyterExtensionDependencyManager } from '../common/application/types'; |
5 |
| -import { IDisposableRegistry, IExtensions } from '../common/types'; |
6 | 4 | import { IServiceContainer } from '../ioc/types';
|
7 | 5 | import { sendTelemetryEvent } from '../telemetry';
|
8 |
| -import { createHidingMiddleware } from './hidingMiddleware'; |
9 | 6 |
|
10 | 7 | import { LanguageClientMiddlewareBase } from './languageClientMiddlewareBase';
|
11 | 8 | import { LanguageServerType } from './types';
|
12 | 9 |
|
13 | 10 | export class LanguageClientMiddleware extends LanguageClientMiddlewareBase {
|
14 |
| - public constructor( |
15 |
| - serviceContainer: IServiceContainer, |
16 |
| - private readonly serverType: LanguageServerType, |
17 |
| - serverVersion?: string, |
18 |
| - ) { |
| 11 | + public constructor(serviceContainer: IServiceContainer, serverType: LanguageServerType, serverVersion?: string) { |
19 | 12 | super(serviceContainer, serverType, sendTelemetryEvent, serverVersion);
|
20 | 13 | }
|
21 |
| - |
22 |
| - /** |
23 |
| - * Creates the HidingMiddleware if needed and sets up code to do so if needed after |
24 |
| - * Jupyter is installed. |
25 |
| - * |
26 |
| - * This method should be called from the constructor of derived classes. It is separated |
27 |
| - * from the constructor to allow derived classes to initialize before it is called. |
28 |
| - */ |
29 |
| - protected setupHidingMiddleware(serviceContainer: IServiceContainer) { |
30 |
| - const jupyterDependencyManager = serviceContainer.get<IJupyterExtensionDependencyManager>( |
31 |
| - IJupyterExtensionDependencyManager, |
32 |
| - ); |
33 |
| - const disposables = serviceContainer.get<IDisposableRegistry>(IDisposableRegistry) || []; |
34 |
| - const extensions = serviceContainer.get<IExtensions>(IExtensions); |
35 |
| - |
36 |
| - // Enable notebook support if jupyter support is installed |
37 |
| - if (this.shouldCreateHidingMiddleware(jupyterDependencyManager)) { |
38 |
| - this.notebookAddon = createHidingMiddleware(); |
39 |
| - } |
40 |
| - |
41 |
| - disposables.push( |
42 |
| - extensions?.onDidChange(async () => { |
43 |
| - await this.onExtensionChange(jupyterDependencyManager); |
44 |
| - }), |
45 |
| - ); |
46 |
| - } |
47 |
| - |
48 |
| - protected shouldCreateHidingMiddleware(jupyterDependencyManager: IJupyterExtensionDependencyManager): boolean { |
49 |
| - return ( |
50 |
| - jupyterDependencyManager && |
51 |
| - jupyterDependencyManager.isJupyterExtensionInstalled && |
52 |
| - (this.serverType == LanguageServerType.Microsoft || this.serverType == LanguageServerType.Node) |
53 |
| - ); |
54 |
| - } |
55 |
| - |
56 |
| - protected async onExtensionChange(jupyterDependencyManager: IJupyterExtensionDependencyManager): Promise<void> { |
57 |
| - if (jupyterDependencyManager) { |
58 |
| - if (this.notebookAddon && !this.shouldCreateHidingMiddleware(jupyterDependencyManager)) { |
59 |
| - this.notebookAddon = undefined; |
60 |
| - } else if (!this.notebookAddon && this.shouldCreateHidingMiddleware(jupyterDependencyManager)) { |
61 |
| - this.notebookAddon = createHidingMiddleware(); |
62 |
| - } |
63 |
| - } |
64 |
| - } |
65 | 14 | }
|
0 commit comments