Comments 60
Я рад, что для моего любимого EmEditor'a не нужно изобретать ничего подобного — он из коробки поддерживает макросы на Javascript/VBscript (более того, поддерживается запись таких макросов). Больше я не видел текстовых редакторов (кроме офиса со своим VBA) с подобным функционалом. Думаю за ваши старания поклонники Notepad++ тоже скажут вам спасибо.
+1
А у этого плагина есть возможность заменить фрагмент текста в редакторе? Например, заменить выделенный текст на что-нибудь другое?
0
это была та самая первая идея.
// заменим в выделении все пробелы на плюсики
currentView.selection = currentView.selection.replace(/\s/,'+');
* This source code was highlighted with Source Code Highlighter.
+1
мне почему то казалось что подобная статья получить больший ажиотаж ;) я как яркий поклонник Notepad++ искренне благодарен вам за проделанную роботу =) единственное, хотелось бы пожелать дальнейшего развития плагина!..
p.s. очень хочется возможности обработки открытия \ закрытия файла…
p.s. очень хочется возможности обработки открытия \ закрытия файла…
+2
Прощу прощения, недосмотрел) Оказывается, прямо сейчас уже можно вешать обработчики. Ещё раз спасибо…
0
Вы правы, это ожиотаж. Я вообще-то называю это «зараженный человек». Если я от чего-то в восторге, я готов бежать и со всеми делиться. Такое поведение наверное неправильно, тк не все это понимают :-)
0
Полезная штука. Всё думаю вернуться к notepad++ от textmate. Textmate хвалят-хвалят, а много чего не хватает…
0
Я сейчас делаю один плагин для Notepad++ на основе вашего, столкнулся с такой проблемой: WSH наотрез отказывается импортирвать JS-файлы, размер которых больше 20 КБ (примерно). При этом программа падает, ссылаясь на другой плагин.
В качестве решения своей проблемы я вставляю кода плагина прямиком в start.js, что, конечно, не очень хорошо. Может, есть вариант вместо start.js использовать .wsf файл, чтобы можно было подключать файлы более «нативным» способом?
В качестве решения своей проблемы я вставляю кода плагина прямиком в start.js, что, конечно, не очень хорошо. Может, есть вариант вместо start.js использовать .wsf файл, чтобы можно было подключать файлы более «нативным» способом?
+2
И ещё вдогонку вопрос: как вызвать диалоговое окно с полем для ввода? Стандартный
prompt()
не работает.0
Вы правы, функции нет! Я хотел сразу мощьный инструмент для построения диалогов предоставить. Посмотрите пример «Show Dialog» в меню «Tests» (реализован в tests.menu.js). Используется ИЕ, а это значит что вы можете доволно таки сложные диалоги строить, как для ввода данных так и для управления редактором. Если предполагается частое использование такого диалога, то совет создавать его один раз и по закрытию скрывать, экономите инициализацию ИЕ.
Скажу сразу, сам я еще ничего толкового, кроме примера, таким способом не сделал. Уверен prompt() с эмулировать можно :-)
Скажу сразу, сам я еще ничего толкового, кроме примера, таким способом не сделал. Уверен prompt() с эмулировать можно :-)
0
хммм!
Сохраните ваш плагин в UTF-8!
WSF это уже программа от MS, которая использует то же Windows scripting. Про такой же подход для подключения новых скриптов я тоже думал, но это уже другая история.
Сохраните ваш плагин в UTF-8!
WSF это уже программа от MS, которая использует то же Windows scripting. Про такой же подход для подключения новых скриптов я тоже думал, но это уже другая история.
0
Не помогает. Вот такую ошибку вижу:
Причём если я беру свой плагин и сокращаю количество кода в нём, скажем, до 15 КБ, то всё работает (верее, ничего не падает).
Причём если я беру свой плагин и сокращаю количество кода в нём, скажем, до 15 КБ, то всё работает (верее, ничего не падает).
+1
Хочется надеяться, что ошибку я исправил не наделав новых. Проблема была в том что я освобождал память которую не выделял :-). Zen Coding я выделил в новый файл и добавил в обновленный архив, если вы не против.
0
Внезапно тоже выскочила эта ошибка. Оказывается касперский что-то похерил. Исправил перерегистрацией библиотек — forum.oszone.net/post-1482725.html
0
Вот, собственно, и результат: Zen Coding for Notepad++. Могу сказать, что вы осчастливили многих пользователей этого редактора :)
Вы не против того, что я ваш плагин поставляю вместе со своим? Там в readme.txt ваше авторство указано + я удалил все тестовые скрипты.
Вы не против того, что я ваш плагин поставляю вместе со своим? Там в readme.txt ваше авторство указано + я удалил все тестовые скрипты.
+4
Спасибо!
0
Спасибо, что реализовали то, что я в свое время не смогла сделать.
0
Спасибо большое действительно удобно…
только есть небольшой баг (
если меню скрыто и показывается только по нажатию Alt, то новые пункты не добавляются((
я из за этого уже два раза обновил программу и кучу всего перепробовал(((
только есть небольшой баг (
если меню скрыто и показывается только по нажатию Alt, то новые пункты не добавляются((
я из за этого уже два раза обновил программу и кучу всего перепробовал(((
+1
Cпасибо за найденую ошибку. Не продумал такой пример использования.
Уже поправил, в обновленном архиве лежит новая версия Dll.
Уже поправил, в обновленном архиве лежит новая версия Dll.
+1
Возможно не нашел «обновленного» архива, но у меня все равно работает только так:
var mh = Editor.menuHidden;
Editor.menuHidden = 0;
var testMenu = Editor.addMenu(«Tests»);
Editor.menuHidden = mh;
NPP 5.6.8 UNICODE
Nppscripting.dll 0.1.1.0
Может исходники на google code? Ошибки сами собой находиться будут (не знаю, как выразить смущение)
P.S. Спасибо за плагин.
var mh = Editor.menuHidden;
Editor.menuHidden = 0;
var testMenu = Editor.addMenu(«Tests»);
Editor.menuHidden = mh;
NPP 5.6.8 UNICODE
Nppscripting.dll 0.1.1.0
Может исходники на google code? Ошибки сами собой находиться будут (не знаю, как выразить смущение)
P.S. Спасибо за плагин.
0
Вы немного не туда написали)
а вообще архив действительно обновлен уже…
а вообще архив действительно обновлен уже…
0
По ссылке в топике уже Nppscripting.dll 0.1.2.0.
Я использовал что то подобное, но только на CPP, чтобы получить хендл меню от нпп. Иначе к сожалению никак.
Я использовал что то подобное, но только на CPP, чтобы получить хендл меню от нпп. Иначе к сожалению никак.
0
Вот по этой: www.softwarecanoe.de/data/nppscripting.zip — 0.1.1 (только что проверил). Есть еще какая-то?
0
У меня при нажатии CTRL+E выскакивает ENQ.
0
Скорее всего CTRL+E было зарезервировано другим приложением. Попробуйте дургую комбинацию.
0
Как изменить комбинацию? Например, хочется ctrl+пробел
0
Будет! Но только это все глобально, так что перестанет работать в других приложениях и будет вызывать ваш обработчик в Нпп даже если он не активен!
0
По порядку:
1. есть чистый notepad++ последней версии 5.6.8
2. Ставлю Zen.Coding-Notepad++.v0.6.zip
3. Версия Nppscripting.dll
clip2net.com/clip/m5759/1270197580-clip-7kb.png
4. открываю notepad++, ввеожу «div», нажимаю ctrl+e получаю символ ENQ (как на скриншоте). Если же выбрать пункт меню «Expand Abbreviation», то все разворачивается
1. есть чистый notepad++ последней версии 5.6.8
2. Ставлю Zen.Coding-Notepad++.v0.6.zip
3. Версия Nppscripting.dll
clip2net.com/clip/m5759/1270197580-clip-7kb.png
4. открываю notepad++, ввеожу «div», нажимаю ctrl+e получаю символ ENQ (как на скриншоте). Если же выбрать пункт меню «Expand Abbreviation», то все разворачивается
0
А какая раскладка по умолчанию? Попробуйте английскую поставить по умолчанию и перезапустить Npp! Я думаю заработает :-) Решение проблемы я думаю вы уже понимаете.
1. Если вы используете оригинал Zen Coding то открываете start.js
2. Меняете комбинации в самом внизу файла на другие (русские буковки)
3. Перезапускаете Нпп.
Комбинации клавиш срабатывают глобально в системе. Это значит, что обработчик вызывается даже если Нпп не активен. Такое поведение конечно плохо, т.к перестают работать горячие клавиши в других приложениях, но пока что другой (правильный) вариант из-за ограничений Нпп не возможен. И как я понимаю еще долго не будет решен, не смотря на то что патч я уже заслал. Возможно решают другие проблемы. :-(
А еще я советую вам скачать плагин по ссылке в этой статье. Так как были устранены некоторые ошибки, а Zen Coding выделен в отдельный файл.
1. Если вы используете оригинал Zen Coding то открываете start.js
2. Меняете комбинации в самом внизу файла на другие (русские буковки)
3. Перезапускаете Нпп.
Комбинации клавиш срабатывают глобально в системе. Это значит, что обработчик вызывается даже если Нпп не активен. Такое поведение конечно плохо, т.к перестают работать горячие клавиши в других приложениях, но пока что другой (правильный) вариант из-за ограничений Нпп не возможен. И как я понимаю еще долго не будет решен, не смотря на то что патч я уже заслал. Возможно решают другие проблемы. :-(
А еще я советую вам скачать плагин по ссылке в этой статье. Так как были устранены некоторые ошибки, а Zen Coding выделен в отдельный файл.
0
А можно ссылку на issue, где описывается проблема глобальных hotkey'ев? Спасибо
0
Я так понимаю, ребята более важной работой завалены. Поэтому каждый интегрирует сам.
0
Подозреваю, что из тикета просто не понятен смысл проблемы, из-за этого он наверное и не в приоритете.
0
Вы правы.
Они тоже могли бы переспросить, а так вообще никакой реакции. Сильно проявлять инициативу я не стал. Тем более, что это не ошибка, а просто расширение возможностей.
Долго ждать у меня не было желания и я решил это ограничение установив хук на очередь сообщений приложения.
Так что, кто хочет интегрирует, а терпеливые ждут новую версию плагина!
;-)
Они тоже могли бы переспросить, а так вообще никакой реакции. Сильно проявлять инициативу я не стал. Тем более, что это не ошибка, а просто расширение возможностей.
Долго ждать у меня не было желания и я решил это ограничение установив хук на очередь сообщений приложения.
Так что, кто хочет интегрирует, а терпеливые ждут новую версию плагина!
;-)
0
Если это из-за того, что CTRL+E занято, то поменять можно так:
в файле Zen Coding.js найдите
строку
addMenuItem('Expand Abbreviation', 'expand_abbreviation', 'Ctrl+E');
и замените CTRL+E на любую удобную вам комбинацию (из клавиш ALT,CTRL,SHIFT и одного символа).
Если вы хотите CTRL+пробел, то нужно чуть-больше поменять:
addMenuItem('Expand Abbreviation', 'expand_abbreviation', 'Ctrl+Space');
в файле Zen Coding.js найдите
строку
addMenuItem('Expand Abbreviation', 'expand_abbreviation', 'Ctrl+E');
и замените CTRL+E на любую удобную вам комбинацию (из клавиш ALT,CTRL,SHIFT и одного символа).
Если вы хотите CTRL+пробел, то нужно чуть-больше поменять:
addMenuItem('Expand Abbreviation', 'expand_abbreviation', 'Ctrl+Space');
0
Это же просто пи… ец! Это нереально удобно! Сегодня только узнал про зен кодинг и сразу плагин для нотпада. Теперь-то я с него точно никогда не слезу. Огромное спасибо!
0
Это очень удобно! Я вчера узнал про Zen Coding и нашел плагин для npp сразу 0.7-й версии! Только один вопрос меня мучает — как добавить свои снипеты?
Я в качестве шаблонизатора в некоторых проектах использую смарти и хотелось бы некоторые его конструкции добавить.
Добавляю в plugins\NppScripting\includes\Zen Coding.js — 675-й строкой
'foreach': '{ foreach }\r\n\r\n{ /foreach }',
Перезагружаюсь
В результате получаю закрытый тег foreach
Я в качестве шаблонизатора в некоторых проектах использую смарти и хотелось бы некоторые его конструкции добавить.
Добавляю в plugins\NppScripting\includes\Zen Coding.js — 675-й строкой
'foreach': '{ foreach }\r\n\r\n{ /foreach }',
Перезагружаюсь
В результате получаю закрытый тег foreach
0
Кажется разобрался, добавляю в zen_settings секцию
Copy Source | Copy HTML«php»: {
«filters»: «tpl,php,html»,
«extends»: «html,css»,
«snippets»: {
«foreach»: "{ foreach }\n\n{ /foreach }\n",
«foreachelse»: "{ foreach }\n\n{ foreachelse }\n\n{ /foreach }\n"
}
},
при этом у меня в настройках стилей для php назначено пользовательское расширение php, все работает!
Еще раз спасибо Автору.
Copy Source | Copy HTML«php»: {
«filters»: «tpl,php,html»,
«extends»: «html,css»,
«snippets»: {
«foreach»: "{ foreach }\n\n{ /foreach }\n",
«foreachelse»: "{ foreach }\n\n{ foreachelse }\n\n{ /foreach }\n"
}
},
при этом у меня в настройках стилей для php назначено пользовательское расширение php, все работает!
Еще раз спасибо Автору.
0
Что-то у меня Editor.currentView.column возвращает то же, что Editor.currentView.pos. :(
0
А не поделитесь примером!?
+1
Editor.addMenu("Example").addItem({
text: "Example",
cmd: function() {
alert(Editor.currentView.column - Editor.currentView.pos);
}
});
В любом файле на любой строке при выполнении этой команды выводится 0.
+1
Буг :(
0
Спасибо за подсказку. Ошибка была уже давно исправлена возможно даже я и не заметил ее. Вот с публикацией новой версии я затянул. Дом-работа-семья.
Версия для желающих выявить ошибки и нестыковки со скриптами написанными для предыдущей версии. Крохи API документации.
Версия для желающих выявить ошибки и нестыковки со скриптами написанными для предыдущей версии. Крохи API документации.
0
Notepad++ 5.9.3 Unicode
0
Заинтересовал плагин. В процессе написания своего JS плагина под ваше решение столкнулся с некоторыми трудностями:
Поскольку работает мы уже не в браузере, и вместо стандартного браузерного объекта window, у нас объект Editor, то где искать методы типа setInterval, SetTimout?
И вообще интересует каким образом сделан этот плагин, в плане движка, вряд ли в плагине реализован собственный движок, ведь так?
Я спрашиваю это для того что обратиться к его мануалам и посмотреть какое АПИ доступно кроме описанного вами.
Поскольку работает мы уже не в браузере, и вместо стандартного браузерного объекта window, у нас объект Editor, то где искать методы типа setInterval, SetTimout?
И вообще интересует каким образом сделан этот плагин, в плане движка, вряд ли в плагине реализован собственный движок, ведь так?
Я спрашиваю это для того что обратиться к его мануалам и посмотреть какое АПИ доступно кроме описанного вами.
0
Снимаю часть своего вопроса: setTimeout нашел в вашем Api.
Но вот как реализован JS все равно интересно. Я так понимаю что задействован Windows Host Script, но я попытался использовать его встроенные объекты и у меня ничего не вышло.
Я не слишком силен в этой специфике, основное направление разработки всегда было WEB…
Но вот как реализован JS все равно интересно. Я так понимаю что задействован Windows Host Script, но я попытался использовать его встроенные объекты и у меня ничего не вышло.
Я не слишком силен в этой специфике, основное направление разработки всегда было WEB…
0
Используется Scripting Engine. Microsoft предлагает VB и JScript реализованные на ее базисе. Доступны только те объекты, которые видны из javascript и те что вы нашли в Api плагина.
WHS это совершенно отдельное приложение, которое добавляет свои объекты для облегчения работы с Windows из скрипта. Части WHS реализованны ввиде ActiveX и могут быть использованны в ваших скриптах для Npp.
Как например
// объект для работы с файловой системой
var fso = new ActiveXObject(«Scripting.FileSystemObject»);
или
// объект для чтения файла с возможностью указания кодировки
// советую обратить на него внимание
var stream = new ActiveXObject(«ADODB.Stream»);
А тут и тут можно глянуть как работать с базой данных.
Например так можно новую создать БД
var cat = new ActiveXObject(«ADOX.Catalog»);
cat.Create(«Provider='Microsoft.Jet.OLEDB.4.0';Data Source='h:\\new1.mdb'»);
Успехов!
WHS это совершенно отдельное приложение, которое добавляет свои объекты для облегчения работы с Windows из скрипта. Части WHS реализованны ввиде ActiveX и могут быть использованны в ваших скриптах для Npp.
Как например
// объект для работы с файловой системой
var fso = new ActiveXObject(«Scripting.FileSystemObject»);
или
// объект для чтения файла с возможностью указания кодировки
// советую обратить на него внимание
var stream = new ActiveXObject(«ADODB.Stream»);
А тут и тут можно глянуть как работать с базой данных.
Например так можно новую создать БД
var cat = new ActiveXObject(«ADOX.Catalog»);
cat.Create(«Provider='Microsoft.Jet.OLEDB.4.0';Data Source='h:\\new1.mdb'»);
Успехов!
0
Кто-нибудь в курсе, как в NPP настроить всплывающие подсказки по функциям JS, с параметрами функций?
например, вот так:
Пробовал настроить плагин Language Help с разными справочниками *.CHM, всплывающих подсказок нет (не путать с автодополнением)… Но для других языков народ как-то ухитряется настроить, для PHP и т.п.
например, вот так:
Пробовал настроить плагин Language Help с разными справочниками *.CHM, всплывающих подсказок нет (не путать с автодополнением)… Но для других языков народ как-то ухитряется настроить, для PHP и т.п.
0
В папке "Notepad++\autoCompletion" есть xml файлы.
К примеру "sql.xml" фрагмент:
<KeyWord name="REPLACE" func="yes">
<Overload retVal="CHAR" descr="returns inputstring with every occurrence of search_string removed">
<Param name="CHAR inputstring" />
<Param name="CHAR search_string" />
</Overload>
<Overload retVal="CHAR" descr="returns inputstring with every occurrence of search_string replaced with replacement_string">
<Param name="CHAR inputstring" />
<Param name="CHAR search_string" />
<Param name="CHAR replacement_string" />
</Overload>
</KeyWord>
см. KeyWord->Overload.descr
0
Sign up to leave a comment.
Javascript для Notepad++