File tree Expand file tree Collapse file tree 3 files changed +31
-4
lines changed
test/common/configSettings Expand file tree Collapse file tree 3 files changed +31
-4
lines changed Original file line number Diff line number Diff line change @@ -188,7 +188,6 @@ export class LanguageServerExtensionActivationService
188
188
// Configuration is non-default, so `languageServer` should be present.
189
189
const configurationService = this . serviceContainer . get < IConfigurationService > ( IConfigurationService ) ;
190
190
const lstType = configurationService . getSettings ( this . resource ) . languageServer ;
191
- this . sendTelemetryForChosenLanguageServer ( lstType ) . ignoreErrors ( ) ;
192
191
return lstType === LanguageServerType . Jedi ;
193
192
}
194
193
@@ -253,6 +252,8 @@ export class LanguageServerExtensionActivationService
253
252
break ;
254
253
}
255
254
255
+ this . sendTelemetryForChosenLanguageServer ( serverType ) . ignoreErrors ( ) ;
256
+
256
257
await this . logStartup ( serverType ) ;
257
258
let server = this . serviceContainer . get < ILanguageServerActivator > ( ILanguageServerActivator , serverType ) ;
258
259
try {
Original file line number Diff line number Diff line change @@ -231,11 +231,12 @@ export class PythonSettings implements IPythonSettings {
231
231
pythonSettings . get < boolean > ( 'autoUpdateLanguageServer' , true )
232
232
) ! ;
233
233
234
- let ls = pythonSettings . get < LanguageServerType > ( 'languageServer' ) ;
235
- if ( ! ls ) {
234
+ let ls = pythonSettings . get < LanguageServerType > ( 'languageServer' ) ?? LanguageServerType . Jedi ;
235
+ ls = systemVariables . resolveAny ( ls ) ;
236
+ if ( ! Object . values ( LanguageServerType ) . includes ( ls ) ) {
236
237
ls = LanguageServerType . Jedi ;
237
238
}
238
- this . languageServer = systemVariables . resolveAny ( ls ) ! ;
239
+ this . languageServer = ls ;
239
240
240
241
// tslint:disable-next-line:no-backbone-get-set-outside-model no-non-null-assertion
241
242
this . jediPath = systemVariables . resolveAny ( pythonSettings . get < string > ( 'jediPath' ) ) ! ;
Original file line number Diff line number Diff line change @@ -193,6 +193,31 @@ suite('Python Settings', async () => {
193
193
config . verifyAll ( ) ;
194
194
} ) ;
195
195
196
+ function testLanguageServer ( languageServer : LanguageServerType , expectedValue : LanguageServerType ) {
197
+ test ( languageServer , ( ) => {
198
+ expected . pythonPath = 'python3' ;
199
+ expected . languageServer = languageServer ;
200
+ initializeConfig ( expected ) ;
201
+ config
202
+ . setup ( ( c ) => c . get < LanguageServerType > ( 'languageServer' ) )
203
+ . returns ( ( ) => expected . languageServer )
204
+ . verifiable ( TypeMoq . Times . once ( ) ) ;
205
+
206
+ settings . update ( config . object ) ;
207
+
208
+ expect ( settings . languageServer ) . to . be . equal ( expectedValue ) ;
209
+ config . verifyAll ( ) ;
210
+ } ) ;
211
+ }
212
+
213
+ suite ( 'languageServer settings' , async ( ) => {
214
+ Object . values ( LanguageServerType ) . forEach ( async ( languageServer ) => {
215
+ testLanguageServer ( languageServer , languageServer ) ;
216
+ } ) ;
217
+
218
+ testLanguageServer ( 'invalid' as LanguageServerType , LanguageServerType . Jedi ) ;
219
+ } ) ;
220
+
196
221
function testExperiments ( enabled : boolean ) {
197
222
expected . pythonPath = 'python3' ;
198
223
// tslint:disable-next-line:no-any
You can’t perform that action at this time.
0 commit comments