Снегопат

Обсуждение Снегопата
Текущее время: 16 апр 2024, 13:13

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 18 дек 2011, 21:02 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
Для тех, кто занимается разработкой скриптов в 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


Вложения:
Комментарий к файлу: Актуальная версия скрипта "Список функций в js-скриптах для Снегопата" (funclist.js) в Notepad++ (jN)
funclist20111225.zip [2.75 КБ]
Скачиваний: 603
Комментарий к файлу: Плагин для Notepad++, добавляющий возможность автоматизировать работу в редакторе при помощи скриптов на JavaScript
jn.zip [158.46 КБ]
Скачиваний: 563
Комментарий к файлу: Скришнот, демонстрирующий работу скрипта
funclist.PNG
funclist.PNG [ 43.56 КБ | Просмотров: 20789 ]

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Последний раз редактировалось kuntashov 25 дек 2011, 16:46, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 дек 2011, 09:33 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
Отличное решение!
Большое спасибо.
Ctrl+1 рулит :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 дек 2011, 09:40 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
Надо еще переходы сделать (ctrl+enter и ctrl+shift+enter) :)

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 дек 2011, 09:56 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
Да, с переходами было бы еще удобнее.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 дек 2011, 16:53 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
Внимание! Я по невнимательности предыдущий раз использовал самую первую версию плагина, она называлась NppScripting.

Релиз свежей на сегодня версии плагина называется jN, рекомендуется использовать именно ее. Соответствующие файлы заменил в аттаче к топикстартеру, обновитесь, для кого актуально. При этом ранее установленную версию NppScripting надо полностью удалить вместе со скриптами (некоторые скрипты могут не работать на новой версии из-за изменениях в API).

Вместе с этим обновлен скрипт funclist.js. Что нового:

  • Добавлена возможность переходов (F12 и Ctrl+- как в 1С:Предприятии 8).
  • Исправлена ошибка, связанная с тем, что хоткей Ctrl + 1 устанавливался глобально для системы (а не только для Notepad++).

Исходный пост - топикстартер - также обновлен.

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 мар 2012, 12:40 
Не в сети

Зарегистрирован: 26 авг 2011, 10:16
Сообщения: 26
чем не устраивает SciTe? (http://code.google.com/p/scite-ru/)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 мар 2012, 16:27 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
Визуальным шумом

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 мар 2012, 15:43 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
Хочется небольших, но нужных поправок:
1. шрифт окна методов все-таки побольше сделать, совсем мелкий по сравнению с обычным шрифтом программы.
2. размер окна всегда какой-то маленький, помещается всего 9 методов, хотелось бы увеличить этот размер.
3.
Цитата:
Добавлена возможность переходов (F12 и Ctrl+- как в 1С:Предприятии 8).

А почему не штатный Снегопатовский переход ?
ИМХО за время Опенконфа и Снегопата мы больше к нему привыкли :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 мар 2012, 16:05 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
1. Есть ли возможность в svcsvc указывать размер шрифта? Я такой вроде не помню. Посмотрю на досуге в документации.
2. Насчет размера ок, сделаю, хотя если заглянешь в скрипт - можешь сам подправить.
3. Я 5 лет на 8ке без Снегопата работал, уже как-то привык к штатным хоткеям. Во-вторых, я привык к штатному поведению Ctrl+Enter в Notepad++. Конечно же, это индивидуально. Опять же, чтобы изменить хоткеи надо чуть-чуть подправить скрипт.

Форму настройки скрипта сделать не могу, потому что простой возможности это сделать нет. Так что пока предлагаю сделать правки ручками :(.

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 мар 2012, 16:09 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
kuntashov писал(а):
1. Есть ли возможность в svcsvc указывать размер шрифта? Я такой вроде не помню. Посмотрю на досуге в документации.
2. Насчет размера ок, сделаю, хотя если заглянешь в скрипт - можешь сам подправить.
3. Я 5 лет на 8ке без Снегопата работал, уже как-то привык к штатным хоткеям. Во-вторых, я привык к штатному поведению Ctrl+Enter в Notepad++. Конечно же, это индивидуально. Опять же, чтобы изменить хоткеи надо чуть-чуть подправить скрипт.

Форму настройки скрипта сделать не могу, потому что простой возможности это сделать нет. Так что пока предлагаю сделать правки ручками :(.

Ручками согласен, только где и как ?
я что-то уже не помню настройки svcsvc :)
и я не совсем понял, как менять хоткеи в сабжевом скрипте (что там за коды) или где в Notepad++ можно поставить настройки на макросы твоего скрипта (в окне макросов на разных закладках твоего скрипта не вижу :) )


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB