diff --git a/autoload/vimspector.vim b/autoload/vimspector.vim index 7cecca5..168a239 100644 --- a/autoload/vimspector.vim +++ b/autoload/vimspector.vim @@ -235,7 +235,9 @@ function! vimspector#AddWatch( ... ) abort return endif if a:0 == 0 - let expr = input( 'Enter watch expression: ' ) + let expr = input( 'Enter watch expression: ', + \ '', + \ 'custom,vimspector#CompleteExpr' ) else let expr = a:1 endif diff --git a/python3/vimspector/utils.py b/python3/vimspector/utils.py index 10da7e1..e7cb537 100644 --- a/python3/vimspector/utils.py +++ b/python3/vimspector/utils.py @@ -356,16 +356,21 @@ def SelectFromList( prompt, options ): return None -def AskForInput( prompt, default_value = None ): +def AskForInput( prompt, default_value = None, completion = None ): if default_value is None: - default_option = '' - else: - default_option = ", '{}'".format( Escape( default_value ) ) + default_value = '' + + args = [ prompt, default_value ] + + if completion is not None: + if completion == 'expr': + args.append( 'custom,vimspector#CompleteExpr' ) + else: + args.append( completion ) with InputSave(): try: - return vim.eval( "input( '{}' {} )".format( Escape( prompt ), - default_option ) ) + return Call( 'input', *args ) except ( KeyboardInterrupt, vim.error ): return None diff --git a/python3/vimspector/variables.py b/python3/vimspector/variables.py index 507c495..fb9080e 100644 --- a/python3/vimspector/variables.py +++ b/python3/vimspector/variables.py @@ -533,7 +533,8 @@ class VariablesView( object ): return new_value = utils.AskForInput( 'New Value: ', - variable.variable.get( 'value', '' ) ) + variable.variable.get( 'value', '' ), + completion = 'expr' ) if new_value is None: return