Scripts discussion (3)
- Author
- Message
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
jsBeautifier.js
Added -spaceInParen and -spaceInEmptyParen arguments
Added ability to pass any arguments to js_beautify()/html_beautify()
Correctly update caret after insert
Don't try to get Coder alias, if plugin isn't running
+ updated scripts from https://github.com/einars/js-beautify
(all changes)
Added -spaceInParen and -spaceInEmptyParen arguments
Added ability to pass any arguments to js_beautify()/html_beautify()
Correctly update caret after insert
Don't try to get Coder alias, if plugin isn't running
+ updated scripts from https://github.com/einars/js-beautify
(all changes)
-
Offline
- Posts: 366
- Joined: Mon Jan 10, 2011 5:28 pm
- Contact:
Instructor
Не могли бы Вы добавить в Keyboard.js выбор разных схем транслитерации из списка http://en.wikipedia.org/wiki/Romanizati ... tion_table
или Википедия — Сравнительная таблица систем транслитерации?
Не могли бы Вы добавить в Keyboard.js выбор разных схем транслитерации из списка http://en.wikipedia.org/wiki/Romanizati ... tion_table
или Википедия — Сравнительная таблица систем транслитерации?
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
(из предыдущей части)
https://github.com/Infocatcher/AkelPad_scripts/issues/7
+ https://github.com/Infocatcher/AkelPad_ ... f961806463
Пока что вот так:Skif_off wrote:Правда, есть еще блочные, но с ними неприятность небольшая:Code: Select all
au3: [ null, null, [";"] ],
Директивы #comments-start и #comments-end могут быть вложенными.
Можно также использовать сокращения #cs и #ce.
В дополнение, сами директивы также могут быть закомментированы!
https://github.com/Infocatcher/AkelPad_scripts/issues/7
+ https://github.com/Infocatcher/AkelPad_ ... f961806463
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Instructor
<del>Что-то у меня с этой тестовой непонятное происходит.</del>
С релизным AkelPad 4.8.8 то же самое, Scripts 14.7.
Есть штука видаИ так в двух одновременно работающих скриптах.
То есть, как я понимаю, timerProc() должна вызываться только при срабатывании таймера с указанным id.
Но иногда почему-то прилетает чужой идентификатор.
Используется autoSaveSession.js (добавлена проверка, что пришел нужный nIDEvent) + tileTabs.js (текущий релиз) + timer.js (включен вывод отладочных сообщений).
Upd
Причем если сбой произошел, то при повторных вызовах tileTabs.js callback с нужным nIDEvent не вызывается. Если активен autoSaveSession.js, то вызывается (вроде бы) с его идентификатором. Если autoSaveSession.js выгрузить, то не вызывается вообще.
Upd #2
А вот эта версия, вроде, еще без этой проблемы (77 824 байт, MD5: f94e8b34a0bc03d07585a12bded8eb6b).
<del>Что-то у меня с этой тестовой непонятное происходит.</del>
С релизным AkelPad 4.8.8 то же самое, Scripts 14.7.
Есть штука вида
Code: Select all
lpTimerCallback = oSys.RegisterCallback(timerProc);
oSys.Call("user32::SetTimer", hMainWnd, id, delay, lpTimerCallback);
То есть, как я понимаю, timerProc() должна вызываться только при срабатывании таймера с указанным id.
Но иногда почему-то прилетает чужой идентификатор.
Используется autoSaveSession.js (добавлена проверка, что пришел нужный nIDEvent) + tileTabs.js (текущий релиз) + timer.js (включен вывод отладочных сообщений).
Upd
Причем если сбой произошел, то при повторных вызовах tileTabs.js callback с нужным nIDEvent не вызывается. Если активен autoSaveSession.js, то вызывается (вроде бы) с его идентификатором. Если autoSaveSession.js выгрузить, то не вызывается вообще.
Upd #2
А вот эта версия, вроде, еще без этой проблемы (77 824 байт, MD5: f94e8b34a0bc03d07585a12bded8eb6b).
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Те исходники уже трансформировались, а вернее только фиксились. Видимо баги мешали друг другуInfocatcher wrote:А вот эта версия...
Могу предложить в версии 14.8 попробовать:
Code: Select all
oSys.Call("user32::SetTimer", AkelPad.ScriptHandle(0, 17 /*SH_GETSERVICEWINDOW*/), ...
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Instructor
Но почему все-таки в той предрелизной версии все нормально (вроде бы) работает?
И ведь тогда выходит, чтоуже не нужен?
Поменял:
https://github.com/Infocatcher/AkelPad_ ... est/timers
=> https://github.com/Infocatcher/AkelPad_ ... 706212a711
Все равно периодически падает на
Или окно все равно одно на все скрипты?
Upd
И снова если фильтровать чужие идентификаторы, то после первого сбоя callback (с нужными идентификаторами) перестает вызываться. И это очень странно, потому как KillTimer() не вызывается.
Но почему все-таки в той предрелизной версии все нормально (вроде бы) работает?
И ведь тогда выходит, что
Code: Select all
AkelPad.SendMessage(hMainWnd, 1319 /*AKD_UNIQUEID*/, 0, 0)
Поменял:
https://github.com/Infocatcher/AkelPad_ ... est/timers
=> https://github.com/Infocatcher/AkelPad_ ... 706212a711
Все равно периодически падает на
Вот тут:Скрипт: ...\AkelFiles\Plugs\Scripts\Include\timer.js
Строка: 112
Символ: 2
Ошибка: Предполагается наличие объекта
Код: 800A138F
Источник: Ошибка выполнения Microsoft JScript
Code: Select all
function timerProc(hWnd, uMsg, nIDEvent, dwTime) {
var fn = timers.funcs[nIDEvent];
if(timers.timeouts[nIDEvent])
timers.clear(nIDEvent);
fn(); // <--
}
Upd
И снова если фильтровать чужие идентификаторы, то после первого сбоя callback (с нужными идентификаторами) перестает вызываться. И это очень странно, потому как KillTimer() не вызывается.
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Повторю - там были ошибки (в очередности обработки сообщений). Лог здесь.Infocatcher wrote:Но почему все-таки в той предрелизной версии все нормально (вроде бы) работает?
Если использовать одновременно только один SetTimer в одном скрипте, то да.И ведь тогда выходит, чтоуже не нужен?Code: Select all
AkelPad.SendMessage(hMainWnd, 1319 /*AKD_UNIQUEID*/, 0, 0)
Так это не падение, а ошибка объекта.Все равно периодически падает на
Сервисное окно создается для каждого скрипта.Или окно все равно одно на все скрипты?
Попробуйте вынести код из timer.js напрямую в используемые скрипты, т.е. без использования Include().
Еще можно точку останова поставить на:
Code: Select all
oSys.Call("user32::KillTimer", this.hWndTimer, id);
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Ничего интересного: два раза выходит на KillTimer() с разными идентификаторами. Хотя странно, если проверять выводом сообщений в заголовок окна, то там трижды выходит на KillTimer() – то есть с логикой работы, вроде, проблем никаких нет.Instructor wrote:Еще можно точку останова поставить на:Code: Select all
oSys.Call("user32::KillTimer", this.hWndTimer, id);
А потом (как, собственно, и раньше, AkelPad падает – вроде, все там же).
А если с логами, то вот такое выходит:
Code: Select all
set(true) 10 // одноразовый таймер
-> set(false) 11 // многоразовый таймер
-> _clear(10) #2 // дважды вызывается KillTimer(), но не думаю, что это должно мешать
-> set(false) 10 // многоразовый таймер с ID первого таймера
-> _clear(10) // это в самом конце, KillTimer() для первого ID
-> _clear(11) // и KillTimer() для второго ID
-> destroy // UnregisterCallback()
Ммм... так тогда в рамках одного скрипта быстрее использовать свой счетчик для получения уникальных идентификаторов.Instructor wrote:Если использовать одновременно только один SetTimer в одном скрипте, то да.
От этого ничего принципиально не меняется... откуда там посторонние идентификаторы в вызовах callback'а?Instructor wrote:Так это не падение, а ошибка объекта.
Если тупо скопировать в начало файла (и закомментировать вызов Include()), то проблемы все те же: иногда callback вызывается с посторонним идентификатором (по-прежнему, видимо, из autoSaveSession,js, а там ведь timer.js и так не используется), а иногда не вызывается вообще (визуально это выглядит как статичная надпись в строке состояния).Instructor wrote:Попробуйте вынести код из timer.js напрямую в используемые скрипты, т.е. без использования Include().
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Infocatcher
Голова увеличивается в размерах от таких багов Scripts plugin v14.9
Голова увеличивается в размерах от таких багов Scripts plugin v14.9
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Спасибо, вроде, теперь нормально.Instructor wrote:Голова увеличивается в размерах от таких багов Scripts plugin v14.9
Но где же подробности?
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Уже.Infocatcher wrote:Но где же подробности?
-
Offline
- Posts: 30
- Joined: Sat Nov 26, 2011 1:52 pm
Привет! Можете проверить скрипт QuoteExtend.js он тут. У меня в нём не работает выделение текста внутри одинарных кавычек (выделение двойных кавычек и круглых скобок работает нормально).
Если я правильно понимаю, то "одинарные кавычки" — это символ ['] (на клавише "э" чуть левее "enter").
Если я правильно понимаю, то "одинарные кавычки" — это символ ['] (на клавише "э" чуть левее "enter").