@@ -122,24 +122,38 @@ internal virtual void OnConnected() { }
122
122
internal virtual void OnAttach ( ) { }
123
123
internal virtual void OnDetach ( ) { }
124
124
125
+ private PythonProjectNode GetAssociatedPythonProject ( InterpreterConfiguration interpreter = null ) {
126
+ var moniker = ProjectMoniker ;
127
+ if ( interpreter == null ) {
128
+ interpreter = Configuration ? . Interpreter ;
129
+ }
130
+
131
+ if ( string . IsNullOrEmpty ( moniker ) && interpreter != null ) {
132
+ var interpreterService = _serviceProvider . GetComponentModel ( ) . GetService < IInterpreterRegistryService > ( ) ;
133
+ moniker = interpreterService . GetProperty ( interpreter . Id , "ProjectMoniker" ) as string ;
134
+ }
135
+
136
+ if ( string . IsNullOrEmpty ( moniker ) ) {
137
+ return null ;
138
+ }
139
+
140
+ return _serviceProvider . GetProjectFromFile ( moniker ) ;
141
+ }
142
+
143
+
125
144
public VsProjectAnalyzer Analyzer {
126
145
get {
127
146
if ( _analyzer != null ) {
128
147
return _analyzer ;
129
148
}
130
149
131
- var interpreterService = _serviceProvider . GetComponentModel ( ) . GetService < IInterpreterRegistryService > ( ) ;
132
150
var config = Configuration ;
133
151
134
152
if ( config == null ) {
135
153
_analyzer = _serviceProvider . GetPythonToolsService ( ) . DefaultAnalyzer ;
136
154
} else {
137
- Build . Evaluation . Project projectFile = null ;
138
- var moniker = ProjectMoniker ??
139
- interpreterService . GetProperty ( config . Interpreter . Id , "ProjectMoniker" ) as string ;
140
- if ( ! string . IsNullOrEmpty ( moniker ) ) {
141
- projectFile = _serviceProvider . GetProjectFromFile ( moniker ) ? . BuildProject ;
142
- }
155
+ var projectFile = GetAssociatedPythonProject ( config . Interpreter ) ? . BuildProject ;
156
+ var interpreterService = _serviceProvider . GetComponentModel ( ) . GetService < IInterpreterRegistryService > ( ) ;
143
157
_analyzer = new VsProjectAnalyzer (
144
158
_serviceProvider ,
145
159
interpreterService . FindInterpreter ( config . Interpreter . Id ) ,
@@ -359,18 +373,7 @@ protected virtual async Task ExecuteStartupScripts(string scriptsPath) {
359
373
}
360
374
361
375
internal void UpdatePropertiesFromProjectMoniker ( ) {
362
- var moniker = ProjectMoniker ;
363
- var interpreter = Configuration ? . Interpreter ;
364
- if ( interpreter != null && string . IsNullOrEmpty ( moniker ) ) {
365
- var interpreterService = _serviceProvider . GetComponentModel ( ) . GetService < IInterpreterRegistryService > ( ) ;
366
- moniker = interpreterService ? . GetProperty ( Configuration . Interpreter . Id , "ProjectMoniker" ) as string ;
367
- }
368
-
369
- if ( string . IsNullOrEmpty ( moniker ) ) {
370
- return ;
371
- }
372
-
373
- var pyProj = _serviceProvider . GetProjectFromFile ( moniker ) ? . GetPythonProject ( ) ;
376
+ var pyProj = GetAssociatedPythonProject ( ) ;
374
377
if ( pyProj == null ) {
375
378
return ;
376
379
}
0 commit comments