Add up and down frame mappings
This commit is contained in:
parent
e99559f6ad
commit
81fa79ce58
4 changed files with 63 additions and 0 deletions
|
|
@ -234,6 +234,20 @@ function! vimspector#GoToFrame() abort
|
||||||
py3 _vimspector_session.ExpandFrameOrThread()
|
py3 _vimspector_session.ExpandFrameOrThread()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! vimspector#UpFrame() abort
|
||||||
|
if !s:Enabled()
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
py3 _vimspector_session.UpFrame()
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! vimspector#DownFrame() abort
|
||||||
|
if !s:Enabled()
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
py3 _vimspector_session.DownFrame()
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! vimspector#AddWatch( ... ) abort
|
function! vimspector#AddWatch( ... ) abort
|
||||||
if !s:Enabled()
|
if !s:Enabled()
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,11 @@ nnoremap <silent> <Plug>VimspectorBalloonEval
|
||||||
xnoremap <silent> <Plug>VimspectorBalloonEval
|
xnoremap <silent> <Plug>VimspectorBalloonEval
|
||||||
\ :<c-u>call vimspector#ShowEvalBalloon( 1 )<CR>
|
\ :<c-u>call vimspector#ShowEvalBalloon( 1 )<CR>
|
||||||
|
|
||||||
|
nnoremap <silent> <Plug>VimspectorUpFrame
|
||||||
|
\ :<c-u>call vimspector#UpFrame()<CR>
|
||||||
|
nnoremap <silent> <Plug>VimspectorDownFrame
|
||||||
|
\ :<c-u>call vimspector#DownFrame()<CR>
|
||||||
|
|
||||||
if s:mappings ==# 'VISUAL_STUDIO'
|
if s:mappings ==# 'VISUAL_STUDIO'
|
||||||
nmap <F5> <Plug>VimspectorContinue
|
nmap <F5> <Plug>VimspectorContinue
|
||||||
nmap <S-F5> <Plug>VimspectorStop
|
nmap <S-F5> <Plug>VimspectorStop
|
||||||
|
|
|
||||||
|
|
@ -577,6 +577,14 @@ class DebugSession( object ):
|
||||||
def ExpandFrameOrThread( self ):
|
def ExpandFrameOrThread( self ):
|
||||||
self._stackTraceView.ExpandFrameOrThread()
|
self._stackTraceView.ExpandFrameOrThread()
|
||||||
|
|
||||||
|
@IfConnected()
|
||||||
|
def UpFrame( self ):
|
||||||
|
self._stackTraceView.UpFrame()
|
||||||
|
|
||||||
|
@IfConnected
|
||||||
|
def DownFrame( self ):
|
||||||
|
self._stackTraceView.DownCFrame()
|
||||||
|
|
||||||
def ToggleLog( self ):
|
def ToggleLog( self ):
|
||||||
if self._HasUI():
|
if self._HasUI():
|
||||||
return self.ShowOutput( 'Vimspector' )
|
return self.ShowOutput( 'Vimspector' )
|
||||||
|
|
|
||||||
|
|
@ -367,6 +367,42 @@ class StackTraceView( object ):
|
||||||
self._JumpToFrame( frame )
|
self._JumpToFrame( frame )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def _GetFrameOffset( self, delta ):
|
||||||
|
thread: Thread
|
||||||
|
for thread in self._threads:
|
||||||
|
if thread != self._current_thread:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if not thread.stacktrace:
|
||||||
|
return
|
||||||
|
|
||||||
|
frame_idx = None
|
||||||
|
for index, frame in enumerate( thread.stacktrace ):
|
||||||
|
if frame == self._current_frame:
|
||||||
|
frame_idx = index
|
||||||
|
break
|
||||||
|
|
||||||
|
if frame_idx is not None:
|
||||||
|
target_idx = frame_idx + delta
|
||||||
|
if target_idx >= 0 and target_idx < len( thread.stacktrace ):
|
||||||
|
return thread.stacktrace[ target_idx ]
|
||||||
|
|
||||||
|
break
|
||||||
|
|
||||||
|
|
||||||
|
def UpFrame( self ):
|
||||||
|
frame = self._GetFrameOffset( self, -1 )
|
||||||
|
if frame:
|
||||||
|
self._JumpToFrame( frame, 'up' )
|
||||||
|
|
||||||
|
|
||||||
|
def DownFrame( self ):
|
||||||
|
frame = self._GetFrameOffset( self, 1 )
|
||||||
|
if frame:
|
||||||
|
self._JumpToFrame( frame, 'down' )
|
||||||
|
|
||||||
|
|
||||||
def AnyThreadsRunning( self ):
|
def AnyThreadsRunning( self ):
|
||||||
for thread in self._threads:
|
for thread in self._threads:
|
||||||
if thread.state != Thread.TERMINATED:
|
if thread.state != Thread.TERMINATED:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue