From d8d22b15bc024036d2ad4a7f56195b56bccff3ea Mon Sep 17 00:00:00 2001 From: Ben Jackson Date: Sat, 20 Jul 2019 19:58:19 +0100 Subject: [PATCH] Allow variables to reference other variables in other layers --- python3/vimspector/debug_session.py | 6 ++++-- python3/vimspector/utils.py | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/python3/vimspector/debug_session.py b/python3/vimspector/debug_session.py index 3ad4a77..5be9f4d 100644 --- a/python3/vimspector/debug_session.py +++ b/python3/vimspector/debug_session.py @@ -113,9 +113,11 @@ class DebugSession( object ): 'gadgetDir': install.GetGadgetDir( VIMSPECTOR_HOME, install.GetOS() ) } self._variables.update( - utils.ParseVariables( adapter.get( 'variables', {} ) ) ) + utils.ParseVariables( adapter.get( 'variables', {} ), + self._variables ) ) self._variables.update( - utils.ParseVariables( configuration.get( 'variables', {} ) ) ) + utils.ParseVariables( configuration.get( 'variables', {} ), + self._variables ) ) self._variables.update( launch_variables ) utils.ExpandReferencesInDict( configuration, self._variables ) diff --git a/python3/vimspector/utils.py b/python3/vimspector/utils.py index 06f7dbe..d303d08 100644 --- a/python3/vimspector/utils.py +++ b/python3/vimspector/utils.py @@ -343,7 +343,7 @@ def ExpandReferencesInDict( obj, mapping, **kwargs ): obj[ k ] = expand_refs_in_object( obj[ k ] ) -def ParseVariables( variables ): +def ParseVariables( variables, mapping, **kwargs ): new_variables = {} for n, v in variables.items(): if isinstance( v, dict ): @@ -353,7 +353,7 @@ def ParseVariables( variables ): new_v = v.copy() # Bit of a hack. Allows environment variables to be used. - ExpandReferencesInDict( new_v, {} ) + ExpandReferencesInDict( new_v, mapping, **kwargs ) env = os.environ.copy() env.update( new_v.get( 'env' ) or {} )