Page 35 of 74

Posted: Tue Apr 12, 2011 9:14 am
by us-us
FeyFre

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

Posted: Wed Apr 13, 2011 7:59 am
by VladSh
Уже давно заметил, но всё забывал сказать...
Вложенные блочные комментарии при выполнении воспринимаются как ошибка, что не есть правильно.

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

Posted: Wed Apr 13, 2011 10:10 am
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));

Posted: Wed Apr 13, 2011 10:28 am
by VladSh
Ок, не вопрос.
Возьмём тогда Ваш пример из пред. поста:

Code: Select all

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

Posted: Wed Apr 13, 2011 10:55 am
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));
Спасибо. Работает.

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

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

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

Code: Select all

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

Posted: Wed Apr 13, 2011 2:17 pm
by VladSh
FeyFre wrote:А тут if(0) конструкция языка, и если вставить не подумав можно подавится.
Да, мне уже соседи, сишники, объяснили...

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

Code: Select all

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

Posted: Thu Apr 14, 2011 7:53 am
by Fr0sT
Вложенные блочные комментарии при выполнении воспринимаются как ошибка, что не есть правильно
Это в любом языке, насколько я знаю. Комментарием считается блок от первой открывающей сигнатуры до первой закрывающей. И только в Паскале мудрые люди догадались ввести два вида блочных комментариев :)))

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

Code: Select all

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

Code: Select all

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

Code: Select all

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

Code: Select all

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

Posted: Sat Apr 16, 2011 9:51 pm
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().
Если окно консоли закрыто, то или ничего ничего не делается, или сообщение запоминается, а при открытии консоли – выводится.

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

Posted: Mon Apr 18, 2011 8:01 am
by Fr0sT
Всячески поддерживаю! Если бы туда еще можно было добавить принудительное прибивание зависших скриптов - вообще шикарно было бы!

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

Posted: Mon Apr 18, 2011 8:12 am
by VladSh
Infocatcher wrote:А я снова за старое. :D :P
Что-то типа того и + :)