@@ -11,6 +11,7 @@ import {
1111 SignatureHelpContext ,
1212 TextDocument
1313} from 'vscode' ;
14+ import { ServerCapabilities } from 'vscode-languageserver-protocol' ;
1415// tslint:disable-next-line: import-name
1516import { IWorkspaceService } from '../../common/application/types' ;
1617import { isTestExecution } from '../../common/constants' ;
@@ -26,7 +27,7 @@ import {
2627import { IServiceManager } from '../../ioc/types' ;
2728import { PythonEnvironment } from '../../pythonEnvironments/info' ;
2829import { JediExtensionActivator } from '../jedi' ;
29- import { ILanguageServerActivator , ILanguageServerManager } from '../types' ;
30+ import { ILanguageServerActivator , ILanguageServerConnection , ILanguageServerManager } from '../types' ;
3031import { JediLanguageServerActivator } from './activator' ;
3132
3233/**
@@ -40,7 +41,9 @@ import { JediLanguageServerActivator } from './activator';
4041@injectable ( )
4142export class MultiplexingJediLanguageServerActivator implements ILanguageServerActivator {
4243 private realLanguageServerPromise : Promise < ILanguageServerActivator > ;
44+
4345 private realLanguageServer : ILanguageServerActivator | undefined ;
46+
4447 private onDidChangeCodeLensesEmitter = new EventEmitter < void > ( ) ;
4548
4649 constructor (
@@ -64,37 +67,43 @@ export class MultiplexingJediLanguageServerActivator implements ILanguageServerA
6467 return this . realLanguageServer ;
6568 } ) ;
6669 }
70+
6771 public async start ( resource : Resource , interpreter : PythonEnvironment | undefined ) : Promise < void > {
6872 const realServer = await this . realLanguageServerPromise ;
6973 if ( ! isTestExecution ( ) ) {
7074 this . proposePylancePopup . showBanner ( ) . ignoreErrors ( ) ;
7175 }
7276 return realServer . start ( resource , interpreter ) ;
7377 }
78+
7479 public activate ( ) : void {
7580 if ( this . realLanguageServer ) {
7681 this . realLanguageServer . activate ( ) ;
7782 }
7883 }
84+
7985 public deactivate ( ) : void {
8086 if ( this . realLanguageServer ) {
8187 this . realLanguageServer . deactivate ( ) ;
8288 }
8389 }
90+
8491 public get onDidChangeCodeLenses ( ) : Event < void > {
8592 return this . onDidChangeCodeLensesEmitter . event ;
8693 }
8794
88- public get connection ( ) {
95+ public get connection ( ) : ILanguageServerConnection | undefined {
8996 if ( this . realLanguageServer ) {
9097 return this . realLanguageServer . connection ;
9198 }
99+ return undefined ;
92100 }
93101
94- public get capabilities ( ) {
102+ public get capabilities ( ) : ServerCapabilities | undefined {
95103 if ( this . realLanguageServer ) {
96104 return this . realLanguageServer . capabilities ;
97105 }
106+ return undefined ;
98107 }
99108
100109 public async provideRenameEdits (
@@ -106,14 +115,17 @@ export class MultiplexingJediLanguageServerActivator implements ILanguageServerA
106115 const server = await this . realLanguageServerPromise ;
107116 return server . provideRenameEdits ( document , position , newName , token ) ;
108117 }
118+
109119 public async provideDefinition ( document : TextDocument , position : Position , token : CancellationToken ) {
110120 const server = await this . realLanguageServerPromise ;
111121 return server . provideDefinition ( document , position , token ) ;
112122 }
123+
113124 public async provideHover ( document : TextDocument , position : Position , token : CancellationToken ) {
114125 const server = await this . realLanguageServerPromise ;
115126 return server . provideHover ( document , position , token ) ;
116127 }
128+
117129 public async provideReferences (
118130 document : TextDocument ,
119131 position : Position ,
@@ -123,6 +135,7 @@ export class MultiplexingJediLanguageServerActivator implements ILanguageServerA
123135 const server = await this . realLanguageServerPromise ;
124136 return server . provideReferences ( document , position , context , token ) ;
125137 }
138+
126139 public async provideCompletionItems (
127140 document : TextDocument ,
128141 position : Position ,
@@ -132,14 +145,17 @@ export class MultiplexingJediLanguageServerActivator implements ILanguageServerA
132145 const server = await this . realLanguageServerPromise ;
133146 return server . provideCompletionItems ( document , position , token , context ) ;
134147 }
148+
135149 public async provideCodeLenses ( document : TextDocument , token : CancellationToken ) {
136150 const server = await this . realLanguageServerPromise ;
137151 return server . provideCodeLenses ( document , token ) ;
138152 }
153+
139154 public async provideDocumentSymbols ( document : TextDocument , token : CancellationToken ) {
140155 const server = await this . realLanguageServerPromise ;
141156 return server . provideDocumentSymbols ( document , token ) ;
142157 }
158+
143159 public async provideSignatureHelp (
144160 document : TextDocument ,
145161 position : Position ,
@@ -149,6 +165,7 @@ export class MultiplexingJediLanguageServerActivator implements ILanguageServerA
149165 const server = await this . realLanguageServerPromise ;
150166 return server . provideSignatureHelp ( document , position , token , context ) ;
151167 }
168+
152169 public dispose ( ) : void {
153170 if ( this . realLanguageServer ) {
154171 this . realLanguageServer . dispose ( ) ;
0 commit comments