@@ -24,12 +24,18 @@ internal class GetVersionHandler : IGetVersionHandler
24
24
private readonly ILogger < GetVersionHandler > _logger ;
25
25
private readonly PowerShellContextService _powerShellContextService ;
26
26
private readonly ILanguageServer _languageServer ;
27
+ private readonly ConfigurationService _configurationService ;
27
28
28
- public GetVersionHandler ( ILoggerFactory factory , PowerShellContextService powerShellContextService , ILanguageServer languageServer )
29
+ public GetVersionHandler (
30
+ ILoggerFactory factory ,
31
+ PowerShellContextService powerShellContextService ,
32
+ ILanguageServer languageServer ,
33
+ ConfigurationService configurationService )
29
34
{
30
35
_logger = factory . CreateLogger < GetVersionHandler > ( ) ;
31
36
_powerShellContextService = powerShellContextService ;
32
37
_languageServer = languageServer ;
38
+ _configurationService = configurationService ;
33
39
}
34
40
35
41
public async Task < PowerShellVersion > Handle ( GetVersionParams request , CancellationToken cancellationToken )
@@ -49,6 +55,29 @@ public async Task<PowerShellVersion> Handle(GetVersionParams request, Cancellati
49
55
}
50
56
}
51
57
58
+ if ( VersionUtils . IsPS5 && _configurationService . CurrentSettings . PromptToUpdatePackageManagement )
59
+ {
60
+ await CheckPackageManagement ( ) ;
61
+ }
62
+
63
+ return new PowerShellVersion
64
+ {
65
+ Version = VersionUtils . PSVersionString ,
66
+ Edition = VersionUtils . PSEdition ,
67
+ DisplayVersion = VersionUtils . PSVersion . ToString ( 2 ) ,
68
+ Architecture = architecture . ToString ( )
69
+ } ;
70
+ }
71
+
72
+ private enum PowerShellProcessArchitecture
73
+ {
74
+ Unknown ,
75
+ X86 ,
76
+ X64
77
+ }
78
+
79
+ private async Task CheckPackageManagement ( )
80
+ {
52
81
PSCommand getModule = new PSCommand ( ) . AddCommand ( "Get-Module" ) . AddParameter ( "ListAvailable" ) . AddParameter ( "Name" , "PackageManagement" ) ;
53
82
foreach ( PSModuleInfo module in await _powerShellContextService . ExecuteCommandAsync < PSModuleInfo > ( getModule ) )
54
83
{
@@ -117,21 +146,6 @@ public async Task<PowerShellVersion> Handle(GetVersionParams request, Cancellati
117
146
}
118
147
}
119
148
}
120
-
121
- return new PowerShellVersion
122
- {
123
- Version = VersionUtils . PSVersionString ,
124
- Edition = VersionUtils . PSEdition ,
125
- DisplayVersion = VersionUtils . PSVersion . ToString ( 2 ) ,
126
- Architecture = architecture . ToString ( )
127
- } ;
128
- }
129
-
130
- private enum PowerShellProcessArchitecture
131
- {
132
- Unknown ,
133
- X86 ,
134
- X64
135
149
}
136
150
}
137
151
}
0 commit comments