@@ -21,11 +21,12 @@ import { sendSettingTelemetry } from '../telemetry/envFileTelemetry';
21
21
import { ITestingSettings } from '../testing/configuration/types' ;
22
22
import { IWorkspaceService } from './application/types' ;
23
23
import { WorkspaceService } from './application/workspace' ;
24
- import { DEFAULT_INTERPRETER_SETTING , isTestExecution } from './constants' ;
24
+ import { DEFAULT_INTERPRETER_SETTING , isTestExecution , PYREFLY_EXTENSION_ID } from './constants' ;
25
25
import {
26
26
IAutoCompleteSettings ,
27
27
IDefaultLanguageServer ,
28
28
IExperiments ,
29
+ IExtensions ,
29
30
IInterpreterPathService ,
30
31
IInterpreterSettings ,
31
32
IPythonSettings ,
@@ -140,6 +141,7 @@ export class PythonSettings implements IPythonSettings {
140
141
workspace : IWorkspaceService ,
141
142
private readonly interpreterPathService : IInterpreterPathService ,
142
143
private readonly defaultLS : IDefaultLanguageServer | undefined ,
144
+ private readonly extensions : IExtensions ,
143
145
) {
144
146
this . workspace = workspace || new WorkspaceService ( ) ;
145
147
this . workspaceRoot = workspaceFolder ;
@@ -152,6 +154,7 @@ export class PythonSettings implements IPythonSettings {
152
154
workspace : IWorkspaceService ,
153
155
interpreterPathService : IInterpreterPathService ,
154
156
defaultLS : IDefaultLanguageServer | undefined ,
157
+ extensions : IExtensions ,
155
158
) : PythonSettings {
156
159
workspace = workspace || new WorkspaceService ( ) ;
157
160
const workspaceFolderUri = PythonSettings . getSettingsUriAndTarget ( resource , workspace ) . uri ;
@@ -164,6 +167,7 @@ export class PythonSettings implements IPythonSettings {
164
167
workspace ,
165
168
interpreterPathService ,
166
169
defaultLS ,
170
+ extensions ,
167
171
) ;
168
172
PythonSettings . pythonSettings . set ( workspaceFolderKey , settings ) ;
169
173
settings . onDidChange ( ( event ) => PythonSettings . debounceConfigChangeNotification ( event ) ) ;
@@ -275,8 +279,14 @@ export class PythonSettings implements IPythonSettings {
275
279
userLS === 'Microsoft' ||
276
280
! Object . values ( LanguageServerType ) . includes ( userLS as LanguageServerType )
277
281
) {
278
- this . languageServer = this . defaultLS ?. defaultLSType ?? LanguageServerType . None ;
279
- this . languageServerIsDefault = true ;
282
+ if (
283
+ this . extensions . getExtension ( PYREFLY_EXTENSION_ID ) &&
284
+ pythonSettings . get < WorkspaceConfiguration > ( 'pyrefly' ) ?. get < boolean > ( 'disableLanguageServices' ) !== true ) {
285
+ this . languageServer = LanguageServerType . None ;
286
+ } else {
287
+ this . languageServer = this . defaultLS ?. defaultLSType ?? LanguageServerType . None ;
288
+ }
289
+ this . languageServerIsDefault = true ;
280
290
} else if ( userLS === 'JediLSP' ) {
281
291
// Switch JediLSP option to Jedi.
282
292
this . languageServer = LanguageServerType . Jedi ;
0 commit comments