@Override
  public void uiDataSnapshot(@NotNull DataSink sink) {
    EditorEx editor = (EditorEx)getEditor();
    sink.set(CommonDataKeys.EDITOR, getEditor());
    sink.set(LangDataKeys.CONSOLE_VIEW, this);
    sink.set(PlatformCoreDataKeys.HELP_ID, myHelpId);

    if (editor == null) return;
    sink.set(CommonDataKeys.CARET, editor.getCaretModel().getCurrentCaret());
    sink.set(PlatformDataKeys.COPY_PROVIDER, editor.getCopyProvider());

    EditorHyperlinkSupport hyperlinks = getHyperlinks();
    sink.lazy(CommonDataKeys.NAVIGATABLE, () -> {
      int offset = editor.getCaretModel().getOffset();
      HyperlinkInfo info = hyperlinks.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; }
      };
    });
  }
@Override
  public void uiDataSnapshot(@NotNull DataSink sink)