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 

Coder plugin (2)
Goto page Previous  1, 2, 3 ... 9, 10, 11 ... 63, 64, 65  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
opk44



Joined: 16 Jan 2010
Posts: 365

PostPosted: Sun Jul 07, 2013 10:30 am    Post subject: Reply with quote

Drugmix
---(1)---
Не указано с каким именно языком "воюете", но, похоже, Вы избрали тупиковый путь.
a) Не следует забывать, что блоки текста вставляются в ответ на "Abbreviations". Следует ли напоминать, что такое аббревиатура (и часто ли Вы встречали в аббревиатурах пробелы)? Smile
b) Не следует забывать, что аббревиатура не обязана в точности совпадать с началом подставляемого блока. Т.е. в ответ на "тратата" Вы можете подставить "все равно что".
Здесь могут быть разные подходы, но прежде следует поразмыслить над тем, почему в cpp.coder, например, в дополнение к такому коду
Code:
$~if
if ($[])
{
${AutoComplete_Indent}$[]
}
не добавлено еще и что-то подобное
Code:
$~ife
if ($[])
{
${AutoComplete_Indent}$[]
}
else
{
${AutoComplete_Indent}$[]
}

Это будет очень полезное размышление на тему "разумного-достаточного".
c) Не следует забывать, что в выражении "else if", сам "if" является вложенной конструкцией и потому вполне себе самостоятелен. Т.е. сейчас, ничего не меняя, "else" комплитится как отдельное слово, а дописываемый "if" раскрывается в правильную форму и без проблем с умножением скобок. На мой субъективный взгляд такая "спартанская" форма выгодно отличается (от разных добавок в виде ~ife, ~ifei...) тем, что не связывает рук заранее определенным в автокомплитере количеством вложенных "элсе-ифов".
P.S. Кстати, можете еще посмотреть подсветку lss.coder (автор VladSh). В ней применен иной подход к "аббревиатурам" (ИМХО не вполне экономный, хотя и более наглядный).
Back to top
View user's profile Send private message
Lenchik



Joined: 10 Jan 2011
Posts: 291

PostPosted: Sun Jul 07, 2013 10:50 am    Post subject: Reply with quote

Quote:
Не следует забывать, что блоки текста вставляются в ответ на "Abbreviations". Следует ли напоминать, что такое аббревиатура (и часто ли Вы встречали в аббревиатурах пробелы)?

А ещё, когда начинаешь набирать, то выпадает список начинающийся с этой "аббревиатуры", и вот тут уже можно использовать "аббревиатуры" для полноценной иллюстрации вставляемого, как раз с пробелами (см. http://akelpad.sourceforge.net/forum/viewtopic.php?p=22270#22270).
AVSPmod (редактор файлов Avisynth), к примеру, вставляет по автокомплиту самый расширенный блок записи функции и по мере продвижения между запятыми, отделяющими параметры, пишет какой параметр и какого типа туда вписывать надо. у нас такого нельзя, но в теории можно делать подсказки через выпадающий список автокомплита.
Back to top
View user's profile Send private message Visit poster's website
Drugmix



Joined: 08 Apr 2013
Posts: 461

PostPosted: Sun Jul 07, 2013 11:14 am    Post subject: Reply with quote

Lenchik
что же Вы сразу не сказали про трюк с неразрывным пробелом-то?
Это же как раз то, что нужно, этого вполне достаточно.
Back to top
View user's profile Send private message
DrakonHaSh



Joined: 19 Mar 2011
Posts: 117

PostPosted: Tue Jul 09, 2013 2:11 pm    Post subject: Reply with quote

как можно добавить в Folds строку, начинающуюся с символа ! ?

делаю для навигации по тексту. если бы в качестве конца блока можно было ставить "\n" задача была бы решена. но т.к. "\n" не воспринимается как конец строки, то никак не получается у меня задуманное Sad
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 365

PostPosted: Tue Jul 09, 2013 10:39 pm    Post subject: Reply with quote

DrakonHaSh
У меня получилось вот так:
Code:
;428=4+8+32+128+256
428   0   0   0   "!"   "!"   "    "
Образец я "честно украл" из файла coder.coder. Только добавил флаг "4" (т.е. форсированного получения имени справа от начала блока). Есть один эффект (не знаю хорошо это или плохо) - если воскл.знак будет даже не в первой позиции, но перед ним будут стоять только пробелы, то все равно фолдится.
Back to top
View user's profile Send private message
Lenchik



Joined: 10 Jan 2011
Posts: 291

PostPosted: Wed Jul 10, 2013 3:40 am    Post subject: Reply with quote

Для Акельпада — нет. Для других редакторов бывает, можете теми темами воспользоваться, чтобы создать тему подсветки для Акеля. Например, https://github.com/ajaxorg/ace/blob/master/lib/ace/mode/latex_highlight_rules.js
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5503

PostPosted: Wed Jul 10, 2013 6:17 am    Post subject: Reply with quote

Lenchik wrote:
А с $= непонятно как работать и подсветка синтаксиса самих кодер-файлов тоже не даёт подсказки. Sad
$= используется в случае, если есть потребность использовать разделители в аббревиатуре. Но конструкция $= требует полного совпадения (а не частичного как с $~). Например:
Quote:
$=w.e
while ()
{
}
В данном случае только после полного набора "w.e" и нажатия горячей клавиши дополнения можно развернуть аббревиатуру.
Back to top
View user's profile Send private message Send e-mail
DrakonHaSh



Joined: 19 Mar 2011
Posts: 117

PostPosted: Wed Jul 10, 2013 8:03 am    Post subject: Reply with quote

opk44 wrote:
DrakonHaSh
У меня получилось вот так:
Code:
;428=4+8+32+128+256
428   0   0   0   "!"   "!"   "    "
Образец я "честно украл" из файла coder.coder. Только добавил флаг "4" (т.е. форсированного получения имени справа от начала блока). Есть один эффект (не знаю хорошо это или плохо) - если воскл.знак будет даже не в первой позиции, но перед ним будут стоять только пробелы, то все равно фолдится.

Спасибо! именно то, чего хотелось.

ps мне как-то в голову не приходил вариант поставить в качестве окончания блока ! - стереотипность мышления подвела - как единичный символ [в одной и той же позиции] будет и началом и сразу концом блока Smile
Back to top
View user's profile Send private message
die_klaster



Joined: 14 Jul 2013
Posts: 5

PostPosted: Sun Jul 14, 2013 6:00 pm    Post subject: Reply with quote

Настраиваю подсветку для своего типа файла. В файле нужно подсветить вхождения "4Gb", "4 Gb" (без кавычек). Настраиваю секцию WORDS

Code:
;--Storage--
0   0   ${OP}   0   4Gb
0   0   ${OP}   0   4 Gb
0   0   ${OP}   0   4Гб
0   0   ${OP}   0   4 Гб

Проблема в том, что во вхождениях с пробелом "4 GB" подсвечивается только четвёрка. А также, если есть вхождение типа ROM4Gb, то оно не подсвечивается.
Как бы эти два момента устранить?
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 365

PostPosted: Sun Jul 14, 2013 10:46 pm    Post subject: Reply with quote

die_klaster
1. Проблема не в этом, а в том что у Вас престранное представление (или отсутствие такового) о словах и разделителях. Во фрагменте "4 GB" я насчитал аж 2 слова. AkelPad, похоже, тоже. И кому придет в голову в слове "ROM4Gb" искать еще какие-то "слова"... Это ж не шарада.
2. Как Вы собираетесь, например, красить накопители 64Гб, особенно в ситуациях схожих с ROM4Gb?
3. Пока Вы четко не осмыслили, что именно Вам требуется от файла-подсветки и как он работает, можете попробовать раскрашивать "вручную", т.е. скриптом. Делаете, например, на тулбаре две кнопочки. На первую вешаете вызов скрипта-раскраски, на вторую - снятие всех отметок.
Code:
-"Красим" Call("Scripts::Main", 1, "storage.js") Icon("%a\AkelFiles\Plugs\Coder.dll", 6)
-"Отмываем" Call("Coder::HighLight", 3, 0) Icon("%a\AkelFiles\Plugs\Coder.dll", 11)
Пример скрипта раскраски ("storage.js"):
Code:
// файл "storage.js" -"отметить в тексте емкость накопителей в 4Гб"
AkelPad.Call("Coder::HighLight", 2, "#000000", "#9BFF9B", 0, 3, 1, "4Gb");
AkelPad.Call("Coder::HighLight", 2, "#000000", "#9BFF9B", 0, 3, 2, "4 Gb");
AkelPad.Call("Coder::HighLight", 2, "#000000", "#9BFF9B", 0, 3, 3, "4Гб");
AkelPad.Call("Coder::HighLight", 2, "#000000", "#9BFF9B", 0, 3, 4, "4 Гб");
// ...
При таком подходе Вы вправе оперировать понятием "фрагмент" или "вхождение". Но, конечно, такая раскраска "мертвая", т.е. при добавлении нового текста все каждый раз придется перекрашивать заново.
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2701
Location: Киев, Русь

PostPosted: Mon Jul 15, 2013 9:18 am    Post subject: Reply with quote

Instructor
Сейчас приходится работать с огромными xml'ями, и очень нехватает функционала сворачивания блоков Ctrl+<цифра-номер уровня>, как есть в Notepad++. Можно ли такое реализовать?

Добавлено 1: Может быть можно как-то сворачивать текущий уровень по всему файлу? Тогда проблему с отсутствием Ctrl+<цифра-номер уровня> можно было бы как-то отодвинуть.

Добавлено 2: Можно ли сделать сворачивание текущего уровня со всеми вложенными подуровнями сразу? Лучше отдельной командой, но можно и параметром в ini.


Last edited by VladSh on Tue Jul 16, 2013 3:24 pm; edited 2 times in total
Back to top
View user's profile Send private message Visit poster's website
die_klaster



Joined: 14 Jul 2013
Posts: 5

PostPosted: Mon Jul 15, 2013 1:45 pm    Post subject: Reply with quote

opk44
Ну вопрос не в том, какое у меня представление, а в том, что это нужно сделать.
Про ROM4Gb:
Поиск по тексту ведь находит "4Gb" в этом сочетании. Почему бы и Akelpad'у с плагином этого не сделать?
В какую секцию файла .coder мне впихнуть нужные слова, чтобы они всё-таки подсвечивались?
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2701
Location: Киев, Русь

PostPosted: Mon Jul 15, 2013 6:00 pm    Post subject: Reply with quote

Instructor
Ещё. Можно ли опцию в ini для неотображения завершающей части свёрнутого блока?
Back to top
View user's profile Send private message Visit poster's website
DrakonHaSh



Joined: 19 Mar 2011
Posts: 117

PostPosted: Tue Jul 16, 2013 6:10 pm    Post subject: Reply with quote

DrakonHaSh wrote:
opk44 wrote:
DrakonHaSh
У меня получилось вот так:
Code:
;428=4+8+32+128+256
428   0   0   0   "!"   "!"   "    "
Образец я "честно украл" из файла coder.coder. Только добавил флаг "4" (т.е. форсированного получения имени справа от начала блока). Есть один эффект (не знаю хорошо это или плохо) - если воскл.знак будет даже не в первой позиции, но перед ним будут стоять только пробелы, то все равно фолдится.

Спасибо! именно то, чего хотелось.

ps мне как-то в голову не приходил вариант поставить в качестве окончания блока ! - стереотипность мышления подвела - как единичный символ [в одной и той же позиции] будет и началом и сразу концом блока Smile

рано я обрадовался. подобный фокус нормально не срабатывает Sad
мне нужно чтобы блок начинался и заканчивался на одной строке, а так - он заканчивается либо в конце текста либо на следующем ! в начале строки

Instructor
помоги пожалуйста решить это вопрос:
как можно добавить в Folds строку (только ее одну! - чтоб блок начинался и сразу заканчивался в этой строке), начинающуюся с символа ! ?

делаю для навигации по тексту. если бы в качестве конца блока можно было ставить "\n" задача была бы решена. но т.к. "\n" не воспринимается как конец строки, то никак не получается у меня задуманное Sad
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 461

PostPosted: Tue Jul 16, 2013 7:18 pm    Post subject: Reply with quote

Вопрос решён.

Last edited by Drugmix on Sun Aug 04, 2013 12:47 am; edited 1 time in total
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 ... 9, 10, 11 ... 63, 64, 65  Next
Page 10 of 65

 
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