@@ -58,6 +58,8 @@ public void Initialize()
5858 this . AddRequestHandler ( ShowOnlineHelpRequest . Type , this . HandleShowOnlineHelpRequest ) ;
5959
6060 this . AddRequestHandler ( FindModuleRequest . Type , this . HandleFindModuleRequest ) ;
61+ this . AddRequestHandler ( GetInstalledModuleRequest . Type , this . HandleGetInstalledModuleRequest ) ;
62+ this . AddRequestHandler ( ExpandAliasRequest . Type , this . HandleExpandAliasRequest ) ;
6163
6264 this . AddRequestHandler ( DebugAdapterMessages . EvaluateRequest . Type , this . HandleEvaluateRequest ) ;
6365 }
@@ -155,7 +157,7 @@ await editorSession.PowerShellContext.ExecuteCommand<object>(
155157 }
156158
157159 private async Task HandleFindModuleRequest (
158- string helpParams ,
160+ string param ,
159161 EditorSession editorSession ,
160162 RequestContext < object , object > requestContext )
161163 {
@@ -178,6 +180,71 @@ private async Task HandleFindModuleRequest(
178180 await requestContext . SendResult ( new PSModuleResponse { ModuleList = moduleList } ) ;
179181 }
180182
183+ private async Task HandleGetInstalledModuleRequest (
184+ string param ,
185+ EditorSession editorSession ,
186+ RequestContext < object , object > requestContext )
187+ {
188+ var psCommand = new PSCommand ( ) ;
189+ psCommand . AddScript ( "Get-InstalledModule | Select Name, Description" ) ;
190+
191+ var modules = await editorSession . PowerShellContext . ExecuteCommand < PSObject > (
192+ psCommand ) ;
193+
194+ var moduleList = new List < PSModuleMessage > ( ) ;
195+
196+ if ( modules != null )
197+ {
198+ foreach ( dynamic m in modules )
199+ {
200+ moduleList . Add ( new PSModuleMessage { Name = m . Name , Description = m . Description } ) ;
201+ }
202+ }
203+
204+ await requestContext . SendResult ( new PSModuleResponse { ModuleList = moduleList } ) ;
205+ }
206+
207+
208+ private async Task HandleExpandAliasRequest (
209+ string content ,
210+ EditorSession editorSession ,
211+ RequestContext < object , object > requestContext )
212+ {
213+ var psCommand = new PSCommand ( ) ;
214+ var script = @"
215+ function Expand-Alias {
216+
217+ param($targetScript)
218+
219+ [ref]$errors=$null
220+
221+ $tokens = [System.Management.Automation.PsParser]::Tokenize($targetScript, $errors).Where({$_.type -eq 'command'}) |
222+ Sort Start -Descending
223+
224+ foreach ($token in $tokens) {
225+ $definition=(Get-Command ('`'+$token.Content) -CommandType Alias -ErrorAction SilentlyContinue).Definition
226+
227+ if($definition) {
228+ $lhs=$targetScript.Substring(0, $token.Start)
229+ $rhs=$targetScript.Substring($token.Start + $token.Length)
230+
231+ $targetScript=$lhs + $definition + $rhs
232+ }
233+ }
234+
235+ $targetScript
236+ }
237+ M
238+ Expand-Alias @'" + "\r \n " + content + "\r \n '@" ;
239+
240+ psCommand . AddScript ( script ) ;
241+
242+ var result = await editorSession . PowerShellContext . ExecuteCommand < PSObject > (
243+ psCommand ) ;
244+
245+ await requestContext . SendResult ( result . First ( ) . ToString ( ) ) ;
246+ }
247+
181248 protected Task HandleExitNotification (
182249 object exitParams ,
183250 EditorSession editorSession ,
0 commit comments