From 804b49928645f9ef77cb7dc59fb1e1e33827d70f Mon Sep 17 00:00:00 2001 From: Ben Jackson Date: Thu, 25 Feb 2021 21:52:27 +0000 Subject: [PATCH] Allow setting the value via the api --- autoload/vimspector.vim | 8 ++++++-- plugin/vimspector.vim | 1 + python3/vimspector/debug_session.py | 4 ++-- python3/vimspector/variables.py | 9 +++++---- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/autoload/vimspector.vim b/autoload/vimspector.vim index 168a239..41d30dd 100644 --- a/autoload/vimspector.vim +++ b/autoload/vimspector.vim @@ -209,11 +209,15 @@ function! vimspector#ExpandVariable() abort py3 _vimspector_session.ExpandVariable() endfunction -function! vimspector#SetVariableValue() abort +function! vimspector#SetVariableValue( ... ) abort if !s:Enabled() return endif - py3 _vimspector_session.SetVariableValue() + if a:0 == 0 + py3 _vimspector_session.SetVariableValue() + else + py3 _vimspector_session.SetVariableValue( new_value = vim.eval( 'a:1' ) ) + endif endfunction function! vimspector#DeleteWatch() abort diff --git a/plugin/vimspector.vim b/plugin/vimspector.vim index c69414b..53855ef 100644 --- a/plugin/vimspector.vim +++ b/plugin/vimspector.vim @@ -129,6 +129,7 @@ augroup VimspectorUserAutoCmds autocmd user VimspectorDebugEnded silent augroup END +" FIXME: Only register this _while_ debugging is active augroup Vimspector autocmd! autocmd BufNew * call vimspector#OnBufferCreated( expand( '' ) ) diff --git a/python3/vimspector/debug_session.py b/python3/vimspector/debug_session.py index f5a62df..6fb0b16 100644 --- a/python3/vimspector/debug_session.py +++ b/python3/vimspector/debug_session.py @@ -526,8 +526,8 @@ class DebugSession( object ): self._variablesView.ExpandVariable( buf, line_num ) @IfConnected() - def SetVariableValue( self, buf = None, line_num = None ): - self._variablesView.SetVariableValue( buf, line_num ) + def SetVariableValue( self, new_value = None, buf = None, line_num = None ): + self._variablesView.SetVariableValue( new_value, buf, line_num ) @IfConnected() def AddWatch( self, expression ): diff --git a/python3/vimspector/variables.py b/python3/vimspector/variables.py index fb9080e..d225af0 100644 --- a/python3/vimspector/variables.py +++ b/python3/vimspector/variables.py @@ -518,7 +518,7 @@ class VariablesView( object ): }, } ) - def SetVariableValue( self, buf = None, line_num = None ): + def SetVariableValue( self, new_value = None, buf = None, line_num = None ): variable: Variable view: View @@ -532,9 +532,10 @@ class VariablesView( object ): if not variable.IsContained(): return - new_value = utils.AskForInput( 'New Value: ', - variable.variable.get( 'value', '' ), - completion = 'expr' ) + if new_value is None: + new_value = utils.AskForInput( 'New Value: ', + variable.variable.get( 'value', '' ), + completion = 'expr' ) if new_value is None: return