void (@NotNull XStackFrame frame, boolean focusOnEditor) { XSourcePosition position = frame.getSourcePosition(); if (position == null) return; VirtualFile file = position.getFile(); int line = position.getLine(); Project project = myDebugProcess.getProject(); OpenFileHyperlinkInfo info = new OpenFileHyperlinkInfo(project, file, line); OpenFileDescriptor descriptor = info.getDescriptor(); if (descriptor != null) { FileEditorManagerImpl manager = (FileEditorManagerImpl)FileEditorManager.getInstance(project); VirtualFile lastFile = myEditorState.myLastOpenedFile; if (myEditorState.myIsNeedToCloseLastOpenedFile && lastFile != null && manager.isFileOpen(lastFile) && !lastFile.equals(descriptor.getFile())) { manager.closeFile(myEditorState.myLastOpenedFile, false, true); } descriptor.setScrollType(ScrollType.CENTER); descriptor.setUseCurrentWindow(true); if (lastFile == null || !lastFile.equals(descriptor.getFile())) { myEditorState.myIsNeedToCloseLastOpenedFile = !manager.isFileOpen(descriptor.getFile()); } descriptor.navigateInEditor(project, focusOnEditor); FileEditor[] editors = manager.getEditors(descriptor.getFile()); if (editors.length != 0) { myEditorState.myLastOpenedFile = descriptor.getFile(); } } }