@Override public PyDebugValue changeVariable( final String threadId, final String frameId, final PyDebugValue var, final String value) throws PyDebuggerException { setTempVariable(threadId, frameId, var); return doChangeVariable(threadId, frameId, var.getEvaluationExpression(), value); }
// todo: change variable in lists doesn't work - either fix in pydevd or format var name // appropriately private void setTempVariable( final String threadId, final String frameId, final PyDebugValue var) { final PyDebugValue topVar = var.getTopParent(); if (!myDebugProcess.canSaveToTemp(topVar.getName())) { return; } if (myTempVars.contains(threadId, frameId, topVar.getTempName())) { return; } topVar.setTempName(generateTempName()); try { doChangeVariable(threadId, frameId, topVar.getTempName(), topVar.getName()); myTempVars.put(threadId, frameId, topVar.getTempName()); } catch (PyDebuggerException e) { LOG.error(e); topVar.setTempName(null); } }