Для тех, кто занимается разработкой скриптов в Notepad++ могли столкнуться с тем, что для него нет нормального работающего плагина, который бы мог показывать список функций в редактируемом файле с возможностью перехода к выбранной функции.
FunctionList мне лично не удалось заставить работать под юникодной portable-версии Notepad++ ни на домашней XP, ни под Vista на рабочем стационарном компьютере, ни на рабочем ноутбуке под Win7.
Артур оказался
чуть более удачлив чем я, у него плагин заработал, но наотрез отказывается корректно отображать функции, имена которых набраны кириллицей.
Наконец-то я нашел способ решить эту проблему для себя, возможно и вам это решение пригодится.
Оказывается, для Notepad++ существует плагин jN (изначально назывался NppScripting), который добавляет в Notepad++ возможность писать скрипты на JavaScript, подобно тому, как Снегопат делает это для 1С:Предприятия.
Все это чудо откопалось благодаря посту автора плагина на Хабре:
http://habrahabr.ru/blogs/javascript/86626/В этом же посте описан пример разработки скрипта для Notepad++ с использованием этого плагина.
Используя предоставленные возможности я написал для небольшой скриптик, который при помощи svcsvc.dll выводит список функций, определенных в текущем файле и после выбора позиционируется на определении этой функции (регистрируется на хоткей Ctrl + 1), а также предоставляет возможность перехода к определению функции и возврата в исходную позицию (по умолчанию - F12 и Ctrl + -, как в 1С:Предприятии 8).
В список функций попадают функции:
- Определенные традиционным образом, как function ИмяФункции() ...
- Определенные как методы прототипа при использовании прототипного ООП в виде ИмяКласса.prototype.ИмяФункции = function() ...
- Макросы для скриптов c человеко-понятными именами, определенные при помощи SelfScript: SelfScript.self['macrosИмя макроса'] = function
Чтобы изменить комбинацию клавиш надо слегка поправить скрипт (см. код в самом низу скрипта в секции, обозначенной комментарием StartUp).
Архив с плагином, и скрипт прилагаю.
Ссылки:Оригинальная ссылка на файл плагина для скачивания:
http://www.softwarecanoe.de/jn/jn.zipСтатья от автора плагина на Хабре:
http://habrahabr.ru/blogs/javascript/86626/Документация по объектной модели, предоставляемой скриптом:
http://www.softwarecanoe.de/jn/api.xml