Степан.
В первую очередь хочу извиниться, что так пока и не смотрел зипы по твоей задаче - было некогда. Но как вижу, ты вроде сам справился.
Во-вторых, сбил тебя и себя с толку по поводу места, где подключать загрузчик.
Там не надо править snegopat.js. Достаточно написать отдельный скрипт, и подключать его в addins.ini до тех аддинов, которые требуют твоего загрузчика. То есть если человеку нужно загружать аддины на .NET, он в addins.ini напишет к примеру:
Код:
script:scripts\loaders\clr.js
...
clr:scripts\net\netaddin.dll
До того, как загружаются аддины из addins.ini, снегопат будет грузить только свои стандартные скрипты, которым clr-загрузчик не нужен.
Кстати, в этом же скрипте можно сделать и проверку на зарегистрированность активикса-загрузчика и по необходимости регистрацию - сначала по обычному, а если не получилось, то через runas.
Вобщем, я даю тебе доступ на коммит в scripts, изучай
пособие для начинающих.
Ну и бинарники в репозитарии fossil'а тоже неплохо хранятся. Хотя дифф для них он не показывает, и мержить их не умеет, между разными версиями хранится только разница (бинарная).
Кстати, в следущей версии снегопата у объекта AddinMgr будет метод canUnloadAddin, что бы дизаблить пункты меню "Выгрузить" и "Перезагрузить" для таких аддинов.
И вот еще вспомнил. В снегопате, в отличии от опенконфа, макрос может что-нибудь возвращать, хотя и не обязан.
Метод invokeMacros имеет возвращаемое значение.