Scripts plugin
- Author
- Message
-
Offline
- Posts: 3243
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 33
- Joined: Wed Apr 13, 2011 8:59 am
Объясните начинающему...
Если формат новой строки DOS/Windows, то метод AkelPad.SetSel 500 500 устанавливает курсор в позицию 500+количество_строк. Если же воспользоваться переходом по смещению по Ctrl+G, то курсор будет установлен ровно в позицию 500, т.е. раньше на количество символов, равное количеству переводов строк.
Может ли SetSel работать аналогично переходу по смещению? И как это реализовать?
Если формат новой строки DOS/Windows, то метод AkelPad.SetSel 500 500 устанавливает курсор в позицию 500+количество_строк. Если же воспользоваться переходом по смещению по Ctrl+G, то курсор будет установлен ровно в позицию 500, т.е. раньше на количество символов, равное количеству переводов строк.
Может ли SetSel работать аналогично переходу по смещению? И как это реализовать?
-
Offline
- Site Admin
- Posts: 6411
- Joined: Thu Jul 06, 2006 7:20 am
VladSh
http://javascript.ru/ecma/part7#a-7.4
InnI
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:
Ок, не вопрос.Instructor wrote:http://javascript.ru/ecma/part7#a-7.4
Возьмём тогда Ваш пример из пред. поста:
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
Спасибо. Работает.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
Неудобно одевать штаны через голову, а это необходимость продиктованная стандартом языка, ссылка на который была указана выше. Раз уж был приведен в примере мой код, то замечу мне хватает однострочных комментариев. Можно, как вариант, поместить блок в if (0) { CODE }.VladSh wrote:...то Вы предлагаете раскоментировать все такие вхождения или пользоваться односточными? Это неудобно.
Ядро находится в JScript.dll, оно и обрабатывает код.Ведь реально же реализовать простое игнорирование текста между /* и */...
-
Offline
- Posts: 3243
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
eval() принимает текст, который мы ему даём. Мы можем дать ему текст без коментариев. И это же можно сделать в методе Include.Instructor wrote:Ядро находится в JScript.dll, оно и обрабатывает код.
А вот это хороший совет! Когда-то здесь мелькало, но подзабылось...Instructor wrote:Можно, как вариант, поместить блок в if (0) { CODE }.
Спасибо!
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Так часто C-шники поступают, если не хотят что-бы комментарий закрашивалсяVladSh wrote:А вот это хороший совет! Когда-то здесь мелькало, но подзабылось...Instructor wrote:Можно, как вариант, поместить блок в if (0) { CODE }.
Спасибо!
Code: Select all
#if 0
мусор
#endif-
Offline
- Posts: 3243
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Да, мне уже соседи, сишники, объяснили...FeyFre wrote:А тут if(0) конструкция языка, и если вставить не подумав можно подавится.
Я думаю, что может добавить простановку "блочного комментария" в виде
Code: Select all
if(0){
CODE
}//endif(0)И работать будет, и подсвечивать будет как блочный коммент, и жирный не даст забыть нам об этом
-
Offline
- Posts: 876
- Joined: Tue Jul 24, 2007 8:54 am
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
1. Вы немножко не правы. Они не делали два разных вида блочных комментария, комментариев, это только следствие. Они сделали пару альтернативных синтаксическо-декоративных финтов.Fr0sT wrote:И только в Паскале мудрые люди догадались ввести два вида блочных комментариев))
Да, один из них касается комментария:
Code: Select all
{$ ..... } === (* ..... *)Code: Select all
arrvar[index] === arrvar(. index .)Code: Select all
--[[ ]]
--[=[ ]=]
--[==[ ]==]
и т.дCode: Select all
'строка'
"строка"
[[строка]]
[=[строка]=]
[==[строка]==]
и т.д-
Offline
- Posts: 1879
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
А я снова за старое.

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
Как мне это видится. В коде делаемПри этом в специальном окошке выводится сообщениеsome.js при этом кликабельное и открывает файл на строке, из которой вызвали ConsoleLog().
Если окно консоли закрыто, то или ничего ничего не делается, или сообщение запоминается, а при открытии консоли – выводится.
Для отладки вполне достаточно. И не нужно каждый раз думать, куда выводить отладочное сообщение, если модальным диалогом делать нельзя.
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
...Если окно консоли закрыто, то или ничего ничего не делается, или сообщение запоминается, а при открытии консоли – выводится.
Для отладки вполне достаточно. И не нужно каждый раз думать, куда выводить отладочное сообщение, если модальным диалогом делать нельзя.
-
Offline
- Posts: 3243
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact: