Unregister-EditorCommand doesn't remove command from list
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- powershell, typescript
- Ambito
- devtools
Direzione di ricerca
Inizia riproducendo la sequenza «register, list, unregister, list», quindi traccia la gestione dell’elenco dei comandi a partire dal problema in ExtensionService.cs alla riga 146 e in InvokeExtensionCommandHandler.cs alla riga 27. Il lavoro è completato quando un comando non registrato non appare più in Additional Commands e la sua invocazione non produce alcuna eccezione dovuta a una voce obsoleta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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"}
- Lingua principale
- TypeScript
- Stelle
- 1.9k
- Fork
- 548
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di PowerShell/vscode-powershell
-
agentic-workflows
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
PowerShell/vscode-powershell#5599 · 3 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
PowerShell/vscode-powershell#5592 · 2 commenti · 1 reazione ·
-
agentic-workflows
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
PowerShell/vscode-powershell#5583 · 1 commento ·
-
powershell.scriptAnalysis.settingsPath (Description): Warning Message Should Provide A Workaround ApertaArea-Code Formatting Issue-Enhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
PowerShell/vscode-powershell#4653 · 3 commenti · 4 reazioni ·
-
nothing ApertaIssue-Bug Needs: Triage
Difficoltà 5/5 Più di una settimana Idoneità per principianti 5/100
PowerShell/vscode-powershell#5603 · 1 reazione ·
Tutte le issue di PowerShell/vscode-powershell
Issue simili
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 76/100
-
code-quality refactoring
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
langchain-ai/deepagents#6450 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
vercel/react-tweet#225 ·