AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Scripts discussion (3)
Goto page Previous  1, 2, 3, ... 13, 14, 15  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
Infocatcher



Joined: 06 Aug 2007
Posts: 1613

PostPosted: Sun Apr 20, 2014 5:53 pm    Post subject: Reply with quote

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)
Back to top
View user's profile Send private message Visit poster's website
Lenchik



Joined: 10 Jan 2011
Posts: 233

PostPosted: Sun Apr 20, 2014 6:01 pm    Post subject: Reply with quote

Instructor
Не могли бы Вы добавить в Keyboard.js выбор разных схем транслитерации из списка http://en.wikipedia.org/wiki/Romanization_of_Russian#Transliteration_table
или Википедия — Сравнительная таблица систем транслитерации?
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2038
Location: Vinnitsa, Ukraine

PostPosted: Sun Apr 20, 2014 6:49 pm    Post subject: Reply with quote

New version of History.js
+ A function to clean list of non-existent items.
* Bugfixes
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Infocatcher



Joined: 06 Aug 2007
Posts: 1613

PostPosted: Mon Apr 21, 2014 8:18 am    Post subject: Reply with quote

(из предыдущей части)
Skif_off wrote:
Code:
au3: [ null, null, [";"] ],

Правда, есть еще блочные, но с ними неприятность небольшая:
Quote:
Директивы #comments-start и #comments-end могут быть вложенными.
Можно также использовать сокращения #cs и #ce.
В дополнение, сами директивы также могут быть закомментированы!


Пока что вот так:
https://github.com/Infocatcher/AkelPad_scripts/issues/7
+ https://github.com/Infocatcher/AkelPad_scripts/commit/24aeb232bd67867e02d0e622e4a002f961806463
Back to top
View user's profile Send private message Visit poster's website
Infocatcher



Joined: 06 Aug 2007
Posts: 1613

PostPosted: Mon Apr 21, 2014 9:41 am    Post subject: Reply with quote

Instructor
<del>Что-то у меня с этой тестовой непонятное происходит.</del>
С релизным AkelPad 4.8.8 то же самое, Scripts 14.7.
Есть штука вида
Code:
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).
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5311

PostPosted: Mon Apr 21, 2014 3:34 pm    Post subject: Reply with quote

Infocatcher wrote:
А вот эта версия...
Те исходники уже трансформировались, а вернее только фиксились. Видимо баги мешали друг другу Smile

Могу предложить в версии 14.8 попробовать:
Code:
oSys.Call("user32::SetTimer", AkelPad.ScriptHandle(0, 17 /*SH_GETSERVICEWINDOW*/), ...
вместо hMainWnd, т.к. в описании SetTimer указано, что в качестве окна должно выступать окно, принадлежащее вызывающему потоку (хотя с hMainWnd работало, наверное поэтому не обратил внимание).
Back to top
View user's profile Send private message Send e-mail
Infocatcher



Joined: 06 Aug 2007
Posts: 1613

PostPosted: Mon Apr 21, 2014 4:06 pm    Post subject: Reply with quote

Instructor
Но почему все-таки в той предрелизной версии все нормально (вроде бы) работает?
И ведь тогда выходит, что
Code:
AkelPad.SendMessage(hMainWnd, 1319 /*AKD_UNIQUEID*/, 0, 0)
уже не нужен?

Поменял:
https://github.com/Infocatcher/AkelPad_scripts/commits/test/timers
=> https://github.com/Infocatcher/AkelPad_scripts/commit/058c48331c200b096ea7efdfe248e2706212a711
Все равно периодически падает на
Quote:
Скрипт: ...\AkelFiles\Plugs\Scripts\Include\timer.js
Строка: 112
Символ: 2
Ошибка: Предполагается наличие объекта
Код: 800A138F
Источник: Ошибка выполнения Microsoft JScript

Вот тут:
Code:
function timerProc(hWnd, uMsg, nIDEvent, dwTime) {
   var fn = timers.funcs[nIDEvent];
   if(timers.timeouts[nIDEvent])
      timers.clear(nIDEvent);
   fn(); // <--
}

Или окно все равно одно на все скрипты?

Upd
И снова если фильтровать чужие идентификаторы, то после первого сбоя callback (с нужными идентификаторами) перестает вызываться. И это очень странно, потому как KillTimer() не вызывается.
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5311

PostPosted: Mon Apr 21, 2014 4:39 pm    Post subject: Reply with quote

Infocatcher wrote:
Но почему все-таки в той предрелизной версии все нормально (вроде бы) работает?
Повторю - там были ошибки (в очередности обработки сообщений). Лог здесь.

Quote:
И ведь тогда выходит, что
Code:
AkelPad.SendMessage(hMainWnd, 1319 /*AKD_UNIQUEID*/, 0, 0)
уже не нужен?
Если использовать одновременно только один SetTimer в одном скрипте, то да.

Quote:
Все равно периодически падает на
Так это не падение, а ошибка объекта.

Quote:
Или окно все равно одно на все скрипты?
Сервисное окно создается для каждого скрипта.

Попробуйте вынести код из timer.js напрямую в используемые скрипты, т.е. без использования Include().

Еще можно точку останова поставить на:
Code:
oSys.Call("user32::KillTimer", this.hWndTimer, id);
Back to top
View user's profile Send private message Send e-mail
Infocatcher



Joined: 06 Aug 2007
Posts: 1613

PostPosted: Mon Apr 21, 2014 6:06 pm    Post subject: Reply with quote

Instructor wrote:
Еще можно точку останова поставить на:
Code:
oSys.Call("user32::KillTimer", this.hWndTimer, id);
Ничего интересного: два раза выходит на KillTimer() с разными идентификаторами. Хотя странно, если проверять выводом сообщений в заголовок окна, то там трижды выходит на KillTimer() – то есть с логикой работы, вроде, проблем никаких нет.
А потом (как, собственно, и раньше, AkelPad падает – вроде, все там же).
А если с логами, то вот такое выходит:
Code:
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 в одном скрипте, то да.
Ммм... так тогда в рамках одного скрипта быстрее использовать свой счетчик для получения уникальных идентификаторов.

Instructor wrote:
Так это не падение, а ошибка объекта.
От этого ничего принципиально не меняется... откуда там посторонние идентификаторы в вызовах callback'а?

Instructor wrote:
Попробуйте вынести код из timer.js напрямую в используемые скрипты, т.е. без использования Include().
Если тупо скопировать в начало файла (и закомментировать вызов Include()), то проблемы все те же: иногда callback вызывается с посторонним идентификатором (по-прежнему, видимо, из autoSaveSession,js, а там ведь timer.js и так не используется), а иногда не вызывается вообще (визуально это выглядит как статичная надпись в строке состояния).
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5311

PostPosted: Tue Apr 22, 2014 8:00 am    Post subject: Reply with quote

Infocatcher
Голова увеличивается в размерах от таких багов Smile Scripts plugin v14.9
Back to top
View user's profile Send private message Send e-mail
Infocatcher



Joined: 06 Aug 2007
Posts: 1613

PostPosted: Tue Apr 22, 2014 8:48 am    Post subject: Reply with quote

Instructor wrote:
Голова увеличивается в размерах от таких багов Smile Scripts plugin v14.9
Спасибо, вроде, теперь нормально. Smile
Но где же подробности? Rolling Eyes
Back to top
View user's profile Send private message Visit poster's website
Infocatcher



Joined: 06 Aug 2007
Posts: 1613

PostPosted: Tue Apr 22, 2014 9:09 am    Post subject: Reply with quote

timer.js
autoSaveSession.js
Use AkelPad.ScriptHandle(0, SH_GETSERVICEWINDOW) for timers
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5311

PostPosted: Wed Apr 23, 2014 5:35 am    Post subject: Reply with quote

Infocatcher wrote:
Но где же подробности? Rolling Eyes
Уже.
Back to top
View user's profile Send private message Send e-mail
Egor



Joined: 26 Nov 2011
Posts: 30

PostPosted: Wed Apr 23, 2014 7:16 am    Post subject: Reply with quote

Привет! Можете проверить скрипт QuoteExtend.js он тут. У меня в нём не работает выделение текста внутри одинарных кавычек (выделение двойных кавычек и круглых скобок работает нормально).

Если я правильно понимаю, то "одинарные кавычки" — это символ ['] (на клавише "э" чуть левее "enter").
Back to top
View user's profile Send private message Send e-mail
opk44



Joined: 16 Jan 2010
Posts: 324

PostPosted: Wed Apr 23, 2014 9:48 pm    Post subject: Reply with quote

Egor
А вы примеры использования скрипта (стр. 12-16) посмотрели?
Что-то мне подсказывает, что вы скрипт без параметров вызываете.
Сделайте вызов как показано в строке 15.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins All times are GMT
Goto page Previous  1, 2, 3, ... 13, 14, 15  Next
Page 2 of 15

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group