Skip to content

Support Set-PSBreakpoint showing breakpoints in the editor #1091

@TylerLeonhardt

Description

@TylerLeonhardt
Member

By creating a Proxy function of Set-PSBreakpoint, we can fire the breakpoint event as seen in the DAP spec to notify the client that a breakpoint has been added.

This is the really the final feature needed to provide the "console debugging in PSES experience" that feels totally integrated.

Creating a Proxy cmdlet is easy with:

$Metadata = [System.Management.Automation.CommandMetaData]::new((Get-Command Set-PSBreakpoint))
[System.Management.Automation.ProxyCommand]::Create($Metadata)

Then we'll need a way to give the EditorObject the state of the debugger... but mainly the JsonRpcServer object so that we can use it to send the SendNotification( method to send the breakpoint information to the client.

Then we take that proxy function and add something like:

$psEditor.Components
    .GetService([OmniSharp.Extensions.LanguageServer.Protocol.Server.ILanguageServer])
    .SendNotification("breakpoint", [OmniSharp.Extensions.DebugAdapter.Protocol.Events.BreakpointEvent]::new(<#...#>))

with some error handling and we should be good to go.

Activity

ghost added
Needs: TriageMaintainer attention needed!
on Nov 4, 2019
SeeminglyScience

SeeminglyScience commented on Nov 4, 2019

@SeeminglyScience
Collaborator

SMA's Debugger also has a BreakpointUpdated event that might be a little bit more sturdy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @TylerLeonhardt@SeeminglyScience

        Issue actions

          Support Set-PSBreakpoint showing breakpoints in the editor · Issue #1091 · PowerShell/PowerShellEditorServices