diff --git a/python3/vimspector/debug_session.py b/python3/vimspector/debug_session.py index b78b785..44b285d 100644 --- a/python3/vimspector/debug_session.py +++ b/python3/vimspector/debug_session.py @@ -39,7 +39,7 @@ class DebugSession( object ): self._uiTab = None self._threadsBuffer = None # TODO: Move to stack trace - self._outputBuffer = None + self._outputBuffer = None # TODO: Need something less terrible here self._stackTraceView = None self._variablesView = None diff --git a/python3/vimspector/variables.py b/python3/vimspector/variables.py index 89261c9..9fbfe79 100644 --- a/python3/vimspector/variables.py +++ b/python3/vimspector/variables.py @@ -140,16 +140,25 @@ class VariablesView( object ): return variable = self._line_to_variable[ current_line ] + if '_variables' in variable: + # Collapse del variable[ '_variables' ] self._DrawScopesAndWatches() - else: - self._connection.DoRequest( partial( self._ConsumeVariables, variable ), { - 'command': 'variables', - 'arguments': { - 'variablesReference': variable[ 'variablesReference' ] - }, - } ) + return + + # Expand. (only if there is anything to expand) + if 'variablesReference' not in variable: + return + if variable[ 'variablesReference' ] <= 0: + return + + self._connection.DoRequest( partial( self._ConsumeVariables, variable ), { + 'command': 'variables', + 'arguments': { + 'variablesReference': variable[ 'variablesReference' ] + }, + } ) def _DrawVariables( self, variables, indent ): for variable in variables: