Scripts discussion (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Instructor wrote:Работает, но сейчас снятие комментариев происходит быстро, но установка весьма долго 2-3 секунды. Сильно заметно если комментировать строки самого "toggleComments-test.js". Попробовал обычный "toggleComments.js" также тормозит при установке комментариев в "toggleComments.js".
Это из-за очень медленного удаления регулярных выражений перед поиском комментариев:

Code: Select all

var commentsExcludes = {
	...
	js: function(str) {
		...
		// Try remove simple regular expressions like /x*/ and /\/*x/
		...
Тормозит, однако, только на сложных файлах.

Добавил аргумент -checkSyntax для возможности отключения и заодно подправил проверку вложенных блочных комментариев: toggleComments-test.js.
Разница будет видна при удалении такого комментария:

Code: Select all

/*
.replace(/x*/, "")
.replace(/y/, "")
.replace(/z/, "")
*/

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Infocatcher
не знаю, может, в новой версии уже появилось, но на всякий случай спрошу: есть ли возможность как-то запомнить тип файла (он же код языка, он же тип комментариев) на все время редактирования документа? Т.е. чтобы скрипт не выдавал запрос каждый раз при вызове на неизвестном ему типе файлов.
KDJ wrote:Sends data and keystrokes from text file or Excel worksheet to another window.
KDJ, nice idea!
Required to include: FileStreams_functions.js
Just my 2 bytes: this include is optional so maybe it's better to allow execution of the script without it?

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

SendData.js
Fixed: decoding special keys F1 - F12.
Fr0sT wrote:Just my 2 bytes: this include is optional so maybe it's better to allow execution of the script without it?
Fr0sT, but why I should reduce the functionality of the script?

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Fr0sT wrote:есть ли возможность как-то запомнить тип файла (он же код языка, он же тип комментариев) на все время редактирования документа? Т.е. чтобы скрипт не выдавал запрос каждый раз при вызове на неизвестном ему типе файлов.
Такой возможности нет.
И если с уже сохраненными файлами, у которых есть расширение, еще можно что-то сделать (да и то тут проще дополнить базу расширений :)), то куда можно временно сохранить тип несохраненного документа, я не знаю.
Если только сохранять массив вида
AkelPad.GetEditWnd() (то есть некое число) => расширение
и возиться с удалением старых данных.

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

KDJ, if I got it right, you use file streams only on some condition (when saving settings). So if one doesn't need option "Save file" why force him to download unnecessary include?

Infocatcher, понятно, жаль.

Offline
Posts: 382
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

А можно тут заявку оставить? :)
Поскольку мне все-равно такие скрипты не написать...

1. Прыжок по парным тегам В HTML-файле.
Например есть такой код

Code: Select all

<p>тут много всего...</p>
Так вот, если курсор стоит внутри тега <p> (те между < и >) по горячей клавише перемещаем курсор и переходим на закрывающий тег </p> и наоборот.

2. Быстрое выделение содержимого вместе с тегами, его обрамляющими.
Например, курсор стоит на открывающем теге <p>. По горячей клавише выделяется весь фрагмент [<p>тут много всего</p>]. Такое же поведение если курсор стоит на закрывающем теге </p>.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Cuprum wrote:1. Прыжок по парным тегам В HTML-файле.
Это уже реализовано в плагине Coder (надо подключить сам плагин, плюс обязательно должна быть включена опция фолдинга!). Тогда по парным тегам "бегает" при нажатии "Ctrl + [" и "Ctrl + ]".
См. Меню "Плагины" -- "Программирование" -- "Настроить" -- "CodeFold2" -- "Текущий уровень" -- ("Перейти к началу", "Перейти к концу").
Upd: По пункту "2" там же и условие то же. Достаточно нажать "Ctrl + " (выделить)

Offline
Posts: 382
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

opk44
Спасибо большое!
Но есть 2 момента.

Насколько понимаю, переход сделан для более общих случаев. Мне же бы хотелось, чтобы переход был циклическим и именно по тегам. Т.е. курсор стоит на открывающем теге, нажали клавишу, переходим на закрывающий (курсор остается внутри тега), снова нажали ту же клавишу, опять переходим на открывающий.

Не смог сменить в настройках плагина сочетание для выделения с Ctrl + \ на другое. С другим сочетанием просто не работает... Т. е. новая комбинация выставляется, но выделение продолжает работать только по Ctrl + \

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Cuprum wrote:...Не смог сменить в настройках плагина сочетание для выделения с Ctrl + \ на другое. С другим сочетанием просто не работает... Т. е. новая комбинация выставляется, но выделение продолжает работать только по Ctrl + \
Есть два возможных варианта.
Либо, что более вероятно,
1. Нужно перезапустить редактор (или просто "перезапустить" фолдинг, отключив его и включив снова кнопкой на тулбаре), и тогда новая комбинация будет "проинициализирована".
Либо
2. Выбрали ранее занятое сочетание. Посмотреть все занятые сочетания можно так: Меню "Плагины" -- "Горячие клавиши" -- "Все клавиши..." -- (для удобства поставить "птичку" в "Показывать только назначенные IDM_ команды" и отсортировать по колонке "Горячие клавиши").

Ну а насчет "первого момента" - так ли уж принципиально, чтобы переход осуществлялся именно одной горячей клавишей, а не двумя? Тем более что они "соседние" на всех PS/AT клавиатурах и вполне "логичные" ([<--CTRL-->])? На мой субъективный вкус, удобнее было, например, не циклическое "туда-сюда", а совмещение с переходом к СЛЕДУЮЩЕМУ, соответственно начальному/конечному тэгу. (для сравнения сейчас "Ctrl+Alt+[" делает переход не вперед, а назад - к ПРЕДЫДУШЕМУ начальному тэгу). Но это дело привычки. Потому как сразу бы возник вопрос "а как же в обратном направлении перемешаться?". В общем я вашего "огорчения" по данному поводу не разделяю, попробуйте "обжиться" хотябы день-два с текущей настройкой.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Infocatcher
С -checkSyntax=0 не тормозит. Но нужно ли проверять синтаксис, если используются строчные комментарии, например, "//"?

Offline
Posts: 382
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

opk44
Да, перезапуск помог.

По поводу одного и того же сочетания объяснюсь.
Я занимаюсь HTML-версткой и часто закрывающий тег в каком-то элементе находится далеко внизу, за пределами текущего экрана, поскольку в самом элементе много контента (какая-то таблица, к примеру). Мне нужно визуально оценить ситуацию, посмотреть, что там "за горизонтом" и вернуться назад. Зачем мне в данном случае 2 сочетания? Проще нажать клавишу, прыгнуть на парный тег, посмотреть что там, снова нажать ту же клавишу и вернуться назад.

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Я вклинюсь в Ваш спор, но: чем не угодил Вас скрипт zen_matchingpair.js ? Назначаете на его на комбинацию да и спокойно себе прыгаете по парным тегам.

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Instructor wrote:С -checkSyntax=0 не тормозит. Но нужно ли проверять синтаксис, если используются строчные комментарии, например, "//"?
С -checkSyntax=1 тоже особо не должно.
Тормозят проверки при попытке снятия комментирования. Точнее, не сами проверки, а удаление регулярных выражений из текста перед поиском комментирующих символов.
Соответственно, наблюдается замедление на сложных файлах при -method=0 (авто) и -method=2 (раскомментировать). (То есть в авторежиме сначала проверяется, нет ли комментирования.)

Так что можно сделать два раздельных хоткея на добавление и снятие комментариев.
Но пока что я видел только один файл, на которым сильно тормозит – сам toggleComments.js. :) Ну, или мне с железом повезло.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Fr0sT wrote:KDJ, if I got it right, you use file streams only on some condition (when saving settings). So if one doesn't need option "Save file" why force him to download unnecessary include?
To read and write streams, the script uses the following functions:
IsSupportFileStreams(),
IsFileStreamExists(),
CreateFileStream(),
WriteFileStream().
These functions I might put permanently in the script and everything would be in one file.
But then the file size will be so large, that it will not fit in one post.
And so I will need to split it into two part.

Offline
Posts: 382
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

FeyFre
чем не угодил Вас скрипт zen_matchingpair.js ?
Я где его взять? :)
Locked