ver. 1.0.0 beta, 13.06.2010
Возможности:
- Позволяет вернуться к позиции курсора в редакторе, предварительно сохраненной в кэше скриптом AXGoToDeclarationXRef ver. 1.0.3 beta (
AXGoToDeclarationXRef - утилита перехода к объявлению переменной) или более поздней с включенным параметром #SaveGoBackPosition.
- Работает в AX 3, AX 4, AX 2009.
Установка:
- Добавить метод в класс EditorScripts и скомпилировать. После этого в контекстном подменю редактора Scripts/addIns появится пункт aaAXGoBack.
Примечание:
- Данный скрипт использует реализацию отложенного вызова функции перехода к позиции курсора из скрипта AXGoToDeclarationXRef ver. 1.0.3 beta (
AXGoToDeclarationXRef - утилита перехода к объявлению переменной) или более поздней.
Спасибо Alex_KD и kashperuk за некоторые использованные идеи.
Сообщения об ошибках, конструктивная критика и идеи по доработке приветствуются.
X++:
//AXGoBack ver. 1.0.0 beta (for AX 3, AX 4, AX 2009), 13.06.2010
//Developed by alex55 (AXforum.info), 13.06.2010
//Home page: axforum.info/forums/showthread.php?p=226663
//Thanks to Alex_KD and kashperuk from AXForum.info for some used ideas
void aaAXGoBack(Editor e)
{
#AOT
#if.ReferencesPath
#define.AX4OrAX5
#endif
#define.ThisClassCache('AXGoToDeclarationXRefClass')
#define.ParamsCache('AXGoToDeclarationXRefParams')
#define.GoBackParamsCache('AXGoBackParams')
SysGlobalCache globalCache;
Column editorColumn;
Line editorLine;
TreeNodePath methodNodePath;
TreeNode treeNode;
;
globalCache = infolog.globalCache();
if (globalCache)
{
[methodNodePath, editorLine, editorColumn] = globalCache.get(#GoBackParamsCache, #GoBackParamsCache, conNull());
treeNode = TreeNode::findNode(methodNodePath);
if (treeNode)
{
#if.AX4OrAX5
treeNode.AOTedit(editorLine, editorColumn);
#endif
#ifnot.AX4OrAX5
infolog.globalCache().set(#ThisClassCache, #ThisClassCache, this);
infolog.globalCache().set(#ParamsCache, #ParamsCache, [methodNodePath, editorLine, editorColumn]);
infolog.addTimeOut(this, methodstr(EditorScripts, aaAXGoToDeclarationXRef), 10, false);
#endif
}
globalCache.clear(#GoBackParamsCache);
}
return;
}