Hook up PSES events to PSEventManager
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Beginne damit, die vorhandenen IMessageHandlers in der Komponentenregistrierung nachzuverfolgen und das vorgeschlagene Verhalten von Register-EditorEvent mit Register-EngineEvent, PSEventSubscriber und PSEngineEvent zu vergleichen. Definiere die Konstanten für Ereignisnamen, die Subscriber-Registrierung, den Handler-Versand, das Einreihen in die runspace-Warteschlange und das EventArgs-Ausgabeverhalten; als abgeschlossen gilt die Aufgabe, wenn mehrere Handler aus PowerShell und kompilierten Sprachen koexistieren können, ohne vorhandene Handler zu ersetzen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Right now the only way to register event/request handlers is to override them via IMessageHandlers from the component registry. This has a few issues
-
As far as I can tell this only allows you to override handlers, not add to them. Doing this as part of an extension module would break existing functionality.
-
These delegates are invoked from a thread that doesn't have a default runspace. This means if the delegate is a converted script block it will fail (and crash PSES)
I propose we add the following:
-
Function or cmdlet
Register-EditorEvent. This should work likeRegister-EngineEvent. It would take aSourceIdentifieras the event name and script block to register as aPSEventSubscriber. Ideally this would also include argument completion for event names. -
A class that holds constants with event names (see
PSEngineEvent) -
Additional logic to existing handlers and other events to check for relevant event subscribers and if found generate the event.
-
If the event/handler typically returns a value, a property would need to be added to the
EventArgsto handle output (PowerShell eventing doesn't handle delegate output)
This would solve a few issues
-
Extension modules could register additional handlers the same way in PowerShell and compiled languages
-
Eventing should take care of all the runspace management and queuing of commands that would normally make this a huge pain. This would also allow the events to be ran in between sequence points of an in progress command.
-
Allow multiple handlers for a single request/event
- Vorherrschende Sprache
- C#
- Sterne
- 767
- Forks
- 266
- Ø Merge
- 3 T. 16 Std.
- Gemergte PRs (30 T.)
- 1
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus PowerShell/PowerShellEditorServices
-
[Bug] None of the string overloads of `EditorExtensionServiceProvider.GetService()` work on .NET. Offen
PowerShell/PowerShellEditorServices#2331 · 1 Reaktion · 2 zugewiesene Personen ·
-
Area-Language Server Issue-Enhancement
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
PowerShell/PowerShellEditorServices#2315 · 1 Kommentar ·
-
Area-Debugging Issue-Enhancement
PowerShell/PowerShellEditorServices#2294 · 1 Reaktion · 2 zugewiesene Personen ·
-
Issue-Bug Needs: Triage
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
PowerShell/PowerShellEditorServices#2293 · 1 Kommentar ·
-
PowerShell/PowerShellEditorServices#2282 · 1 Kommentar · 1 Reaktion · 2 zugewiesene Personen ·
Alle Issues in PowerShell/PowerShellEditorServices
Ähnliche Issues
-
Documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
cake-build/cake#5024 ·
-
Frontend status/draft TechnicalDebt
Schwierigkeit 2/5 1-2 Tage Anfängerfreundlichkeit 75/100
Altinn/altinn-auth#4143 ·
-
.NET Flaky Test Testing Tests
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
getsentry/sentry-dotnet#5617 · 1 Kommentar ·
-
:watch: Not Triaged dotnet-fsharp/svc
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
-
Client customer-reported needs-team-attention question Service Attention WebPubSub
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Azure/azure-sdk-for-net#63292 · 3 Kommentare · 1 Reaktion ·