Object (@NotNull String dataId) { EditorEx editor = (EditorEx)getEditor(); if (editor == null) { return null; } if (CommonDataKeys.NAVIGATABLE.is(dataId)) { int offset = editor.getCaretModel().getOffset(); HyperlinkInfo info = getHyperlinks().getHyperlinkAt(offset); return info == null ? null : new Navigatable() { @Override public void navigate(boolean requestFocus) { info.navigate(myProject); } @Override public boolean canNavigate() { return true; } @Override public boolean canNavigateToSource() { return true; } }; } if (CommonDataKeys.EDITOR.is(dataId)) { return editor; } if (PlatformCoreDataKeys.HELP_ID.is(dataId)) { return myHelpId; } if (LangDataKeys.CONSOLE_VIEW.is(dataId)) { return this; } if (CommonDataKeys.CARET.is(dataId)) { return editor.getCaretModel().getCurrentCaret(); } if (PlatformDataKeys.COPY_PROVIDER.is(dataId)) { return editor.getCopyProvider(); } return null; }