13.06.2010, 15:54 | #1 |
MCTS
|
AXGoBack - скрипт для возврата к предыдущей позиции курсора в редакторе
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; } |
|
|
За это сообщение автора поблагодарили: Logger (4), Red Stranger (1), coolibin (1), gl00mie (4). |