Unregister-EditorCommand doesn't remove command from list
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- powershell, typescript
- Área
- devtools
Línea de trabajo
Comienza reproduciendo la secuencia «register, list, unregister, list» y, a continuación, sigue el manejo de la lista de comandos desde el fallo de ExtensionService.cs en la línea 146 y de InvokeExtensionCommandHandler.cs en la línea 27. La tarea estará terminada cuando un comando no registrado ya no aparezca en Additional Commands y al invocarlo no se produzca ninguna excepción por una entrada obsoleta.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Prerequisites
- I have written a descriptive issue title.
- I have searched all open and closed issues to ensure it has not already been reported.
- I have read the troubleshooting guide.
- I am sure this issue is with the extension itself and does not reproduce in a standalone PowerShell instance.
- I have verified that I am using the latest version of Visual Studio Code and the PowerShell extension.
- If this is a security issue, I have read the security issue reporting guidance.
Summary
When calling Unregister-EditorCommand or $psEditor.UnregisterCommand(), the command remains in the Additional Commands list, leading to duplicate entries when my profile module is re-loaded. When trying to invoke the command afterwards, an exception is thrown, so the command is being unregistered, but it remains on the list.
PowerShell Version
Name Value
---- -----
PSVersion 7.5.3
PSEdition Core
GitCommitId 7.5.3
OS Microsoft Windows 10.0.22631
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
Name : Visual Studio Code Host
Version : 2025.3.1
InstanceId : db3b07b7-3b3b-40bb-8b54-c57ae4548a21
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled : True
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
Visual Studio Code Version
1.104.1
0f0d87fa9e96c856c5212fc86db137ac0d783365
x64
Extension Version
ironmansoftware.powershellprotools@2024.12.0
martinfliegner.dark-powershell-theme@1.0.0
ms-vscode.powershell@2025.3.1
tylerleonhardt.vscode-inline-values-powershell@0.0.7
xkoloblicin.powershell-ise-dark@1.0.1
(note: PowerShell Pro Tools is disabled in my current workspace)
Steps to Reproduce
- Register any simple command, like `Register-EditorCommand -Name MyCommand -DisplayName "Test Command" -ScriptBlock {$psEditor.Window.ShowInformationMessage("I came from Register-EditorCommand.")}
- View registered commands with
Shift+Alt+Sor "PowerShell: Show Additional Commands from PowerShell Modules" to ensure the command is registered - Invoke the command to verify it works
- Unregister the command with
Unregister-EditorCommand -Name MyCommandor$psEditor.UnregisterCommand("MyCommand") - View registered commands again to find if the command remains
Visuals
Logs
For whatever reason, even setting "powershell.developer.editorServicesLogLevel": "Trace" and "powershell.trace.server": "verbose", the PowerShell output log looks about the same as when it's set to "Information", despite the Integrated Terminal showing trace information (e.g. "DEBUG: [Trace] Logging started", etc.). Nothing showed up about registering commands or loading modules.
The only thing I could find after unregistering the command and executing it from the list is from the Extension Host log:
2025-09-18 15:29:28.824 [error] Error: Internal Error - System.Collections.Generic.KeyNotFoundException: Editor command not found: 'ConvertComment3Center'
at Microsoft.PowerShell.EditorServices.Services.Extension.ExtensionService.InvokeCommandAsync(String commandName, EditorContext editorContext, CancellationToken cancellationToken) in C:\__w\1\s\src\PowerShellEditorServices\Services\Extension\ExtensionService.cs:line 146
at Microsoft.PowerShell.EditorServices.Services.Extension.InvokeExtensionCommandHandler.Handle(InvokeExtensionCommandParams request, CancellationToken cancellationToken) in C:\__w\1\s\src\PowerShellEditorServices\Services\Extension\Handlers\InvokeExtensionCommandHandler.cs:line 27
at OmniSharp.Extensions.LanguageServer.Server.Pipelines.SemanticTokensDeltaPipeline`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at OmniSharp.Extensions.LanguageServer.Server.Pipelines.ResolveCommandPipeline`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at MediatR.Pipeline.RequestPreProcessorBehavior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at MediatR.Pipeline.RequestPostProcessorBehavior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at MediatR.Pipeline.RequestExceptionProcessorBehavior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at MediatR.Pipeline.RequestExceptionProcessorBehavior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at MediatR.Pipeline.RequestExceptionActionProcessorBehavior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at MediatR.Pipeline.RequestExceptionActionProcessorBehavior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at OmniSharp.Extensions.JsonRpc.RequestRouterBase`1.<RouteRequest>g__InnerRoute|7_0(IServiceScopeFactory serviceScopeFactory, Request request, TDescriptor descriptor, Object params, CancellationToken token, ILogger logger)
at OmniSharp.Extensions.JsonRpc.RequestRouterBase`1.RouteRequest(IRequestDescriptor`1 descriptors, Request request, CancellationToken token)
at OmniSharp.Extensions.JsonRpc.DefaultRequestInvoker.<>c__DisplayClass10_0.<<RouteRequest>b__5>d.MoveNext()
at handleResponse (c:\Users\e.dunhjo\.vscode\extensions\ms-vscode.powershell-2025.3.1\dist\extension.js:30293:40)
at handleMessage (c:\Users\e.dunhjo\.vscode\extensions\ms-vscode.powershell-2025.3.1\dist\extension.js:30103:11)
at processMessageQueue (c:\Users\e.dunhjo\.vscode\extensions\ms-vscode.powershell-2025.3.1\dist\extension.js:30118:13)
at Immediate.<anonymous> (c:\Users\e.dunhjo\.vscode\extensions\ms-vscode.powershell-2025.3.1\dist\extension.js:30094:11)
at processImmediate (node:internal/timers:485:21)
at process.callbackTrampoline (node:internal/async_hooks:130:17) PowerShell.ShowAdditionalCommands {"value":"ms-vscode.powershell","_lower":"ms-vscode.powershell"}
- Lenguaje dominante
- TypeScript
- Estrellas
- 1.9k
- Forks
- 548
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de PowerShell/vscode-powershell
-
[aw] Agentic Issue Triage failed Abiertoagentic-workflows
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
PowerShell/vscode-powershell#5599 · 3 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
PowerShell/vscode-powershell#5592 · 2 comentarios · 1 reacción ·
-
[aw] Agentic Issue Triage failed Abiertoagentic-workflows
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
PowerShell/vscode-powershell#5583 · 1 comentario ·
-
powershell.scriptAnalysis.settingsPath (Description): Warning Message Should Provide A Workaround AbiertoArea-Code Formatting Issue-Enhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
PowerShell/vscode-powershell#4653 · 3 comentarios · 4 reacciones ·
-
nothing AbiertoIssue-Bug Needs: Triage
Dificultad 5/5 Más de una semana Aptitud para principiantes 5/100
PowerShell/vscode-powershell#5603 · 1 reacción ·
Todos los issues de PowerShell/vscode-powershell
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
area:tools bug good first issue help wanted priority:P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
TaewoooPark/Motifcode#14 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
newrelic-experimental/preflight#793 · 1 comentario ·
-
bug 🐞
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
[Bounty proposal] fix(web): memory insights count an evening memory on the next day ($25 proposed) Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
BasedHardware/omi#15320 ·