void () { try { XDebugSession session = XDebugView.getSession(getTree()); final XSourcePosition mainPosition; final XSourcePosition altPosition; if (session instanceof XDebugSessionImpl) { XStackFrame currentFrame = session.getCurrentStackFrame(); mainPosition = ((XDebugSessionImpl)session).getFrameSourcePosition(currentFrame, XSourceKind.MAIN); altPosition = ((XDebugSessionImpl)session).getFrameSourcePosition(currentFrame, XSourceKind.ALTERNATIVE); } else { mainPosition = session == null ? null : session.getCurrentPosition(); altPosition = null; } if (mainPosition == null && altPosition == null) { return; } final XInlineDebuggerDataCallback callback = new XInlineDebuggerDataCallback() { @Override public void computed(XSourcePosition position) { if (isObsolete() || position == null) return; VirtualFile file = position.getFile(); // filter out values from other files VirtualFile mainFile = mainPosition != null ? mainPosition.getFile() : null; VirtualFile altFile = altPosition != null ? altPosition.getFile() : null; if (!Comparing.equal(mainFile, file) && !Comparing.equal(altFile, file)) { return; } final Document document = FileDocumentManager.getInstance().getDocument(file); if (document == null) return; if (position.getLine() >= 0) { XDebuggerInlayUtil.getInstance(session.getProject()).createLineEndInlay(XValueNodeImpl.this, session, position); } } }; if (getValueContainer().computeInlineDebuggerData(callback) == ThreeState.UNSURE) { getValueContainer().computeSourcePosition(callback::computed); } } catch (Exception ignore) { } }