in src/org/jetbrains/plugins/ipnb/editor/panels/IpnbFilePanel.java [734:764]
public Object getData(@NotNull String dataId) {
final IpnbEditablePanel selectedCellPanel = getSelectedCellPanel();
if (OpenFileDescriptor.NAVIGATE_IN_EDITOR.is(dataId)) {
if (selectedCellPanel instanceof IpnbCodePanel) { // Go to declaration
return ((IpnbCodePanel)selectedCellPanel).getEditor();
}
}
if (IpnbFileEditor.DATA_KEY.is(dataId)) {
return myParent;
}
if (PlatformDataKeys.HELP_ID.is(dataId)) {
return ourHelpID;
}
if (LangDataKeys.CONTEXT_LANGUAGES.is(dataId)) { // Introduce variable
return new Language[]{IpnbPyLanguageDialect.getInstance()};
}
if (CommonDataKeys.PSI_ELEMENT.is(dataId) || CommonDataKeys.PSI_FILE.is(dataId)) { // Rename and Introduce variable
if (selectedCellPanel instanceof IpnbCodePanel) {
final Editor e = ((IpnbCodePanel)selectedCellPanel).getEditor();
final Object o = FileEditorManager.getInstance(myProject).getData(dataId, e, e.getCaretModel().getCurrentCaret());
if (o != null) return o;
}
}
if (PlatformDataKeys.COPY_PROVIDER.is(dataId)
|| PlatformDataKeys.PASTE_PROVIDER.is(dataId)
|| PlatformDataKeys.CUT_PROVIDER.is(dataId)
|| PlatformDataKeys.DELETE_ELEMENT_PROVIDER.is(dataId)) {
return myEditable;
}
return null;
}