void (@NotNull XExpression expression, int index, final boolean navigateToWatchNode, boolean noDuplicates) { ThreadingAssertions.assertEventDispatchThread(); XDebugSession session = getSession(getTree()); boolean found = false; if (noDuplicates) { for (WatchNode child : myRootNode.getWatchChildren()) { if (child.getExpression().equals(expression)) { TreeUtil.selectNode(getTree(), child); found = true; } } } if (!found) { myRootNode.addWatchExpression(session != null ? session.getCurrentStackFrame() : null, expression, index, navigateToWatchNode); updateSessionData(); } if (navigateToWatchNode && session != null) { XDebugSessionTab.showWatchesView((XDebugSessionImpl)session); } }