diff --git a/autoload/vimspector/internal/neopopup.vim b/autoload/vimspector/internal/neopopup.vim index 9f35914..eb5a0dc 100644 --- a/autoload/vimspector/internal/neopopup.vim +++ b/autoload/vimspector/internal/neopopup.vim @@ -103,8 +103,10 @@ function! vimspector#internal#neopopup#Confirm( confirm_id, let result = -1 endtry - " Map the results to what popup_menu_filter would return (ok s:ConfirmCallback - " in popup.vim) + " Map the results to what the vim popup stuff would return (s:ConfirmCallback + " in popup.vim), i.e.: + " - 1-based index of selected item, or + " - -1 or 0 for cancellation if result == '' " User pressed ESC/ctrl-c let result = -1 @@ -115,10 +117,10 @@ function! vimspector#internal#neopopup#Confirm( confirm_id, let result = index break endif - let index += 2 + let index += 1 endfor - if index >= len( a:keys ) + if index > len( a:keys ) let result = -1 endif endif diff --git a/python3/vimspector/debug_session.py b/python3/vimspector/debug_session.py index 156cbfd..2f132f9 100644 --- a/python3/vimspector/debug_session.py +++ b/python3/vimspector/debug_session.py @@ -916,7 +916,9 @@ class DebugSession( object ): self._logger.info( 'Debug Adapter Started' ) def _StopDebugAdapter( self, interactive = False, callback = None ): - def disconnect( arguments = {} ): + arguments = {} + + def disconnect(): self._splash_screen = utils.DisplaySplash( self._api_prefix, self._splash_screen, @@ -936,7 +938,7 @@ class DebugSession( object ): self._connection.DoRequest( handler, { 'command': 'disconnect', - 'arguments': {}, + 'arguments': arguments, }, failure_handler = handler, timeout = 5000 ) if not interactive: @@ -947,7 +949,6 @@ class DebugSession( object ): disconnect() else: def handle_choice( choice ): - arguments = {} if choice == 1: # yes arguments[ 'terminateDebuggee' ] = True @@ -959,7 +960,7 @@ class DebugSession( object ): return # Else, use server default - disconnect( arguments ) + disconnect() utils.Confirm( self._api_prefix, "Terminate debuggee?",