Add basic support for conditional breakpoints

This is the minimal required for a user to use conditional breakpoint -
we add an options dict to each breakpoint (line and function) and allow
the condition to be supplied. We add a plug mapping and a default
shortcut (<leader><F9>) to add one where we ask the user to enter the
condition and hit expression. This isn't great but it works.

We don't check the capabilities, so they would just be ignored if used
on a server that doesn't support them. We also ask for a hit expression
which most users won't understand so this isn't ideal either.

No tests yet.
This commit is contained in:
Ben Jackson 2020-04-25 19:30:16 +01:00
commit 7a70519b03
5 changed files with 69 additions and 37 deletions

View file

@ -982,8 +982,8 @@ class DebugSession( object ):
def ListBreakpoints( self ):
return self._breakpoints.ListBreakpoints()
def ToggleBreakpoint( self ):
return self._breakpoints.ToggleBreakpoint()
def ToggleBreakpoint( self, options ):
return self._breakpoints.ToggleBreakpoint( options )
def ClearBreakpoints( self ):
if self._connection:
@ -991,8 +991,8 @@ class DebugSession( object ):
return self._breakpoints.ClearBreakpoints()
def AddFunctionBreakpoint( self, function ):
return self._breakpoints.AddFunctionBreakpoint( function )
def AddFunctionBreakpoint( self, function, options ):
return self._breakpoints.AddFunctionBreakpoint( function, options )
def PathsToAllGadgetConfigs( vimspector_base, current_file ):