Scripts plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 15
Joined: Mon Feb 28, 2011 11:00 am

Post by us-us »

FeyFre

Ясно, спасибо.. Буду мечтать потом.

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Уже давно заметил, но всё забывал сказать...
Вложенные блочные комментарии при выполнении воспринимаются как ошибка, что не есть правильно.

Offline
Posts: 33
Joined: Wed Apr 13, 2011 8:59 am

Post by InnI »

Объясните начинающему...
Если формат новой строки DOS/Windows, то метод AkelPad.SetSel 500 500 устанавливает курсор в позицию 500+количество_строк. Если же воспользоваться переходом по смещению по Ctrl+G, то курсор будет установлен ровно в позицию 500, т.е. раньше на количество символов, равное количеству переводов строк.
Может ли SetSel работать аналогично переходу по смещению? И как это реализовать?

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

Post by Instructor »

VladSh
http://javascript.ru/ecma/part7#a-7.4

InnI

Code: Select all

var hMainWnd=AkelPad.GetMainWnd();
var nOffset=500;

AkelPad.SendMessage(hMainWnd, 1206 /*AKD_GOTOW*/, 0x2 /*GT_OFFSET*/, AkelPad.MemStrPtr("" + nOffset));

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Ок, не вопрос.
Возьмём тогда Ваш пример из пред. поста:

Code: Select all

AkelPad.SendMessage(hMainWnd, 1206 /*AKD_GOTOW*/, 0x2 /*GT_OFFSET*/, AkelPad.MemStrPtr("" + nOffset));
Если этот код находится в огромном блоке, который надо закоментировать (причём это нормально желание :)) , то Вы предлагаете раскоментировать все такие вхождения или пользоваться односточными? Это неудобно.
Ведь реально же реализовать простое игнорирование текста между /* и */, и пусть не важно будет, сколько их внутри!.. У меня в BlockSelect.js такой алгоритм используется (функция getRangebyBordersEx из selCompleteLine.js).

Offline
Posts: 33
Joined: Wed Apr 13, 2011 8:59 am

Post by InnI »

Instructor wrote:

Code: Select all

var hMainWnd=AkelPad.GetMainWnd();
var nOffset=500;
AkelPad.SendMessage(hMainWnd, 1206 /*AKD_GOTOW*/, 0x2 /*GT_OFFSET*/, AkelPad.MemStrPtr("" + nOffset));
Спасибо. Работает.

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

Post by Instructor »

VladSh wrote:...то Вы предлагаете раскоментировать все такие вхождения или пользоваться односточными? Это неудобно.
Неудобно одевать штаны через голову, а это необходимость продиктованная стандартом языка, ссылка на который была указана выше. Раз уж был приведен в примере мой код, то замечу мне хватает однострочных комментариев. Можно, как вариант, поместить блок в if (0) { CODE }.
Ведь реально же реализовать простое игнорирование текста между /* и */...
Ядро находится в JScript.dll, оно и обрабатывает код.

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Instructor wrote:Ядро находится в JScript.dll, оно и обрабатывает код.
eval() принимает текст, который мы ему даём. Мы можем дать ему текст без коментариев. И это же можно сделать в методе Include.
Instructor wrote:Можно, как вариант, поместить блок в if (0) { CODE }.
А вот это хороший совет! Когда-то здесь мелькало, но подзабылось...
Спасибо!

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

Post by FeyFre »

VladSh wrote:
Instructor wrote:Можно, как вариант, поместить блок в if (0) { CODE }.
А вот это хороший совет! Когда-то здесь мелькало, но подзабылось...
Спасибо!
Так часто C-шники поступают, если не хотят что-бы комментарий закрашивался

Code: Select all

#if 0
мусор
#endif
Только в С этим занимается препроцессор и компилятору неоднозначностей не остается. А тут if(0) конструкция языка, и если вставить не подумав можно подавится.

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

FeyFre wrote:А тут if(0) конструкция языка, и если вставить не подумав можно подавится.
Да, мне уже соседи, сишники, объяснили...

Я думаю, что может добавить простановку "блочного комментария" в виде

Code: Select all

if(0){
CODE
}//endif(0)
поместить "if(0)" и "endif(0)" в настройки блоков, и пометить не просто зелёным, а жирным зелёным. Как идея?
И работать будет, и подсвечивать будет как блочный коммент, и жирный не даст забыть нам об этом :D

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

Post by Fr0sT »

Вложенные блочные комментарии при выполнении воспринимаются как ошибка, что не есть правильно
Это в любом языке, насколько я знаю. Комментарием считается блок от первой открывающей сигнатуры до первой закрывающей. И только в Паскале мудрые люди догадались ввести два вида блочных комментариев :)))

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

Post by FeyFre »

Fr0sT wrote:И только в Паскале мудрые люди догадались ввести два вида блочных комментариев :)))
1. Вы немножко не правы. Они не делали два разных вида блочных комментария, комментариев, это только следствие. Они сделали пару альтернативных синтаксическо-декоративных финтов.
Да, один из них касается комментария:

Code: Select all

{$ ..... }   ===    (* ..... *)
Второй же касается индексного оператора:

Code: Select all

arrvar[index]   ===   arrvar(. index .)
2. Не один Паскаль имеет альтернативные блочные коментарии(и не только их). Например у Lua блочные комментарии такие

Code: Select all

--[[ ]]
--[=[ ]=]
--[==[ ]==]
и т.д
а также у них литеральные кавычки сделаны по такому же принципу

Code: Select all

'строка'
"строка"
[[строка]]
[=[строка]=]
[==[строка]==]
и т.д
И у PHP есть подобная защита от вложенности помоему.

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

Post by Infocatcher »

А я снова за старое. :D :P

viewtopic.php?p=8163&hilit=%EA%EE%E ... EB%FC#p8163
viewtopic.php?p=10054&hilit=%EA%EE% ... B%FC#p10054
viewtopic.php?p=10298&hilit=%EA%EE% ... B%FC#p10298
Как мне это видится. В коде делаем

Code: Select all

AkelPad.ConsoleLog("...");
При этом в специальном окошке выводится сообщение

Code: Select all

some.js
...
some.js при этом кликабельное и открывает файл на строке, из которой вызвали ConsoleLog().
Если окно консоли закрыто, то или ничего ничего не делается, или сообщение запоминается, а при открытии консоли – выводится.

Для отладки вполне достаточно. И не нужно каждый раз думать, куда выводить отладочное сообщение, если модальным диалогом делать нельзя.

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

Post by Fr0sT »

Всячески поддерживаю! Если бы туда еще можно было добавить принудительное прибивание зависших скриптов - вообще шикарно было бы!

FeyFre
тут ничего нету про альтернативу /* */ в PHP...

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Infocatcher wrote:А я снова за старое. :D :P
Что-то типа того и + :)
Post Reply