diff --git a/python3/vimspector/breakpoints.py b/python3/vimspector/breakpoints.py index 52fee86..ede8a62 100644 --- a/python3/vimspector/breakpoints.py +++ b/python3/vimspector/breakpoints.py @@ -98,6 +98,12 @@ class ProjectBreakpoints( object ): def ClearBreakpoints( self ): # These are the user-entered breakpoints. + for file_name, breakpoints in self._line_breakpoints.items(): + for bp in breakpoints: + if 'sign_id' in bp: + vim.command( 'sign unplace {0} group=VimspectorBP'.format( + bp[ 'sign_id' ] ) ) + self._line_breakpoints = defaultdict( list ) self._func_breakpoints = [] self._exceptionBreakpoints = None @@ -177,14 +183,14 @@ class ProjectBreakpoints( object ): for file_name, line_breakpoints in self._line_breakpoints.items(): breakpoints = [] for bp in line_breakpoints: - if bp[ 'state' ] != 'ENABLED': - continue - if 'sign_id' in bp: vim.command( 'sign unplace {0} group=VimspectorBP'.format( bp[ 'sign_id' ] ) ) del bp[ 'sign_id' ] + if bp[ 'state' ] != 'ENABLED': + continue + breakpoints.append( { 'line': bp[ 'line' ] } ) source = { diff --git a/python3/vimspector/code.py b/python3/vimspector/code.py index a69cfcf..5074291 100644 --- a/python3/vimspector/code.py +++ b/python3/vimspector/code.py @@ -128,23 +128,11 @@ class CodeView( object ): # Not found. Assume new self.AddBreakpoints( None, [ bp ] ) - def DeleteBreakpoint( self, bp ): - if 'id' not in bp: - return - - for _, breakpoint_list in self._breakpoints.items(): - for index, breakpoint in enumerate( breakpoint_list ): - if 'id' in breakpoint and breakpoint[ 'id' ] == bp[ 'id' ]: - del breakpoint_list[ index ] - return - - # Not found. Shrug. - def _UndisplaySigns( self ): for sign_id in self._signs[ 'breakpoints' ]: vim.command( 'sign unplace {} group=VimspectorCode'.format( sign_id ) ) - self._signs[ 'breakpoints' ].clear() + self._signs[ 'breakpoints' ] = [] def ClearBreakpoints( self ): self._UndisplaySigns() @@ -169,7 +157,7 @@ class CodeView( object ): sign_id, breakpoint[ 'line' ], 'vimspectorBP' if breakpoint[ 'verified' ] - else 'vimspectorBPDisabled', + else 'vimspectorBPDisabled', file_name ) ) diff --git a/python3/vimspector/debug_session.py b/python3/vimspector/debug_session.py index d00ead9..95d2800 100644 --- a/python3/vimspector/debug_session.py +++ b/python3/vimspector/debug_session.py @@ -776,6 +776,9 @@ class DebugSession( object ): return self._breakpoints.ToggleBreakpoint() def ClearBreakpoints( self ): + if self._connection: + self._codeView.ClearBreakpoints() + return self._breakpoints.ClearBreakpoints() def AddFunctionBreakpoint( self, function ):