From c2082cffaeb9b9ebbbcd7f7306d462ad098432ed Mon Sep 17 00:00:00 2001 From: Ben Jackson Date: Wed, 24 Feb 2021 17:23:30 +0000 Subject: [PATCH] Support setting from the balloon --- autoload/vimspector/internal/balloon.vim | 12 ++++++++---- python3/vimspector/debug_session.py | 5 ++--- python3/vimspector/variables.py | 4 ++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/autoload/vimspector/internal/balloon.vim b/autoload/vimspector/internal/balloon.vim index 4d6aca2..1622d10 100644 --- a/autoload/vimspector/internal/balloon.vim +++ b/autoload/vimspector/internal/balloon.vim @@ -124,8 +124,6 @@ function! vimspector#internal#balloon#MouseFilter( winid, key ) abort " expand the variable if we got double click if a:key ==? "\<2-leftmouse>" - " forward line number to python, since vim does not allow us to focus - " the correct window call py3eval( '_vimspector_session.ExpandVariable(' \ . 'buf = vim.buffers[ ' . winbufnr( a:winid ) . ' ],' \ . 'line_num = ' . line( '.', a:winid ) @@ -138,13 +136,17 @@ endfunction function! vimspector#internal#balloon#CursorFilter( winid, key ) abort if a:key ==? "\" - " forward line number to python, since vim does not allow us to focus - " the correct window call py3eval( '_vimspector_session.ExpandVariable(' \ . 'buf = vim.buffers[ ' . winbufnr( a:winid ) . ' ],' \ . 'line_num = ' . line( '.', a:winid ) \ . ')' ) return 1 + elseif a:key ==? "\" + call py3eval( '_vimspector_session.SetVariableValue(' + \ . 'buf = vim.buffers[ ' . winbufnr( a:winid ) . ' ],' + \ . 'line_num = ' . line( '.', a:winid ) + \ . ')' ) + return 1 elseif index( [ "\", "\<2-LeftMouse>" ], a:key ) >= 0 return vimspector#internal#balloon#MouseFilter( a:winid, a:key ) endif @@ -293,6 +295,8 @@ function! s:CreateNeovimTooltip( body ) abort nnoremap \ call vimspector#ExpandVariable() + nnoremap + \ call vimspector#SetVariableValue() nnoremap \ quit nnoremap <2-LeftMouse> diff --git a/python3/vimspector/debug_session.py b/python3/vimspector/debug_session.py index 95524c5..f5a62df 100644 --- a/python3/vimspector/debug_session.py +++ b/python3/vimspector/debug_session.py @@ -526,9 +526,8 @@ class DebugSession( object ): self._variablesView.ExpandVariable( buf, line_num ) @IfConnected() - def SetVariableValue( self ): - # TODO: , buf = None, line_num = None ): - self._variablesView.SetVariableValue() + def SetVariableValue( self, buf = None, line_num = None ): + self._variablesView.SetVariableValue( buf, line_num ) @IfConnected() def AddWatch( self, expression ): diff --git a/python3/vimspector/variables.py b/python3/vimspector/variables.py index 123aa54..9b9b372 100644 --- a/python3/vimspector/variables.py +++ b/python3/vimspector/variables.py @@ -515,11 +515,11 @@ class VariablesView( object ): }, } ) - def SetVariableValue( self ): + def SetVariableValue( self, buf = None, line_num = None ): variable: Variable view: View - variable, view = self._GetVariable( buf = None, line_num = None ) + variable, view = self._GetVariable( buf, line_num ) if variable is None: return