From f55dc8cd8e008577270333a756c82d582d480835 Mon Sep 17 00:00:00 2001 From: Ben Jackson Date: Sun, 20 May 2018 16:18:40 +0100 Subject: [PATCH] StepOut and Continue --- autoload/vimspector.vim | 9 ++++++++- python3/vimspector/debug_adapter_connection.py | 18 ++++++++++++++++++ support/test/cpp/simple_c_program/test_c.cpp | 2 +- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/autoload/vimspector.vim b/autoload/vimspector.vim index 375c47e..c8546fa 100644 --- a/autoload/vimspector.vim +++ b/autoload/vimspector.vim @@ -103,7 +103,6 @@ function! s:_Send( msg ) abort endfunction - function! vimspector#StopDebugSession() abort py3 _session.Stop() @@ -136,6 +135,14 @@ function! vimspector#StepInto() abort py3 _session.StepInto() endfunction +function! vimspector#StepOut() abort + py3 _session.StepOut() +endfunction + +function! vimspector#Continue() abort + py3 _session.Continue() +endfunction + " Boilerplate {{{ let &cpo=s:save_cpo unlet s:save_cpo diff --git a/python3/vimspector/debug_adapter_connection.py b/python3/vimspector/debug_adapter_connection.py index ca25580..c62211d 100644 --- a/python3/vimspector/debug_adapter_connection.py +++ b/python3/vimspector/debug_adapter_connection.py @@ -78,8 +78,10 @@ class DebugSession( object ): self._uiTab = vim.current.tabpage self._codeWindow = vim.current.window + vim.command( 'nnoremenu WinBar.Continute :call vimspector#Continue()' ) vim.command( 'nnoremenu WinBar.Next :call vimspector#StepOver()' ) vim.command( 'nnoremenu WinBar.Step :call vimspector#StepInto()' ) + vim.command( 'nnoremenu WinBar.Finish :call vimspector#StepOut()' ) vim.command( 'vspl' ) vim.command( 'enew' ) @@ -142,6 +144,22 @@ class DebugSession( object ): }, } ) + def StepOut( self ): + self._DoRequest( None, { + 'command': 'stepOut', + 'arguments': { + 'threadId': self._currentThread + }, + } ) + + def Continue( self ): + self._DoRequest( None, { + 'command': 'continue', + 'arguments': { + 'threadId': self._currentThread + }, + } ) + def _DoRequest( self, handler, msg ): this_id = self._next_message_id diff --git a/support/test/cpp/simple_c_program/test_c.cpp b/support/test/cpp/simple_c_program/test_c.cpp index 708e9b2..1532080 100644 --- a/support/test/cpp/simple_c_program/test_c.cpp +++ b/support/test/cpp/simple_c_program/test_c.cpp @@ -17,7 +17,7 @@ namespace Test void bar( TestStruct b ) { std::string s; - s += b.isInt ? b.something.somethingInt : b.something.somethingChar; + s += b.isInt ? "An int" : "A char"; std::cout << s << '\n'; }