Drugmix
---(1)---
Не указано с каким именно языком "воюете", но, похоже, Вы избрали тупиковый путь.
a) Не следует забывать, что блоки текста вставляются в ответ на "Abbreviations". Следует ли напоминать, что такое аббревиатура (и часто ли Вы встречали в аббревиатурах пробелы)?
b) Не следует забывать, что аббревиатура не обязана в точности совпадать с началом подставляемого блока. Т.е. в ответ на "тратата" Вы можете подставить "все равно что".
Здесь могут быть разные подходы, но прежде следует поразмыслить над тем, почему в cpp.coder, например, в дополнение к
$~ife
if ($[])
{
${AutoComplete_Indent}$[]
}
else
{
${AutoComplete_Indent}$[]
}
Это будет очень полезное размышление на тему "разумного-достаточного".
c) Не следует забывать, что в выражении "else if", сам "if" является вложенной конструкцией и потому вполне себе самостоятелен. Т.е. сейчас, ничего не меняя, "else" комплитится как отдельное слово, а дописываемый "if" раскрывается в правильную форму и без проблем с умножением скобок. На мой субъективный взгляд такая "спартанская" форма выгодно отличается (от разных добавок в виде ~ife, ~ifei...) тем, что не связывает рук заранее определенным в автокомплитере количеством вложенных "элсе-ифов". P.S. Кстати, можете еще посмотреть подсветку lss.coder (автор VladSh). В ней применен иной подход к "аббревиатурам" (ИМХО не вполне экономный, хотя и более наглядный).
Posted: Sun Jul 07, 2013 10:50 am
by Lenchik
Не следует забывать, что блоки текста вставляются в ответ на "Abbreviations". Следует ли напоминать, что такое аббревиатура (и часто ли Вы встречали в аббревиатурах пробелы)?
А ещё, когда начинаешь набирать, то выпадает список начинающийся с этой "аббревиатуры", и вот тут уже можно использовать "аббревиатуры" для полноценной иллюстрации вставляемого, как раз с пробелами (см. viewtopic.php?p=22270#p22270).
AVSPmod (редактор файлов Avisynth), к примеру, вставляет по автокомплиту самый расширенный блок записи функции и по мере продвижения между запятыми, отделяющими параметры, пишет какой параметр и какого типа туда вписывать надо. у нас такого нельзя, но в теории можно делать подсказки через выпадающий список автокомплита.
Posted: Sun Jul 07, 2013 11:14 am
by Drugmix
Lenchik
что же Вы сразу не сказали про трюк с неразрывным пробелом-то?
Это же как раз то, что нужно, этого вполне достаточно.
Posted: Tue Jul 09, 2013 2:11 pm
by DrakonHaSh
как можно добавить в Folds строку, начинающуюся с символа ! ?
делаю для навигации по тексту. если бы в качестве конца блока можно было ставить "\n" задача была бы решена. но т.к. "\n" не воспринимается как конец строки, то никак не получается у меня задуманное
Образец я "честно украл" из файла coder.coder. Только добавил флаг "4" (т.е. форсированного получения имени справа от начала блока). Есть один эффект (не знаю хорошо это или плохо) - если воскл.знак будет даже не в первой позиции, но перед ним будут стоять только пробелы, то все равно фолдится.
Lenchik wrote:А с $= непонятно как работать и подсветка синтаксиса самих кодер-файлов тоже не даёт подсказки.
$= используется в случае, если есть потребность использовать разделители в аббревиатуре. Но конструкция $= требует полного совпадения (а не частичного как с $~). Например:
$=w.e
while ()
{
}
В данном случае только после полного набора "w.e" и нажатия горячей клавиши дополнения можно развернуть аббревиатуру.
Образец я "честно украл" из файла coder.coder. Только добавил флаг "4" (т.е. форсированного получения имени справа от начала блока). Есть один эффект (не знаю хорошо это или плохо) - если воскл.знак будет даже не в первой позиции, но перед ним будут стоять только пробелы, то все равно фолдится.
Спасибо! именно то, чего хотелось.
ps мне как-то в голову не приходил вариант поставить в качестве окончания блока ! - стереотипность мышления подвела - как единичный символ [в одной и той же позиции] будет и началом и сразу концом блока
Posted: Sun Jul 14, 2013 6:00 pm
by die_klaster
Настраиваю подсветку для своего типа файла. В файле нужно подсветить вхождения "4Gb", "4 Gb" (без кавычек). Настраиваю секцию WORDS
Проблема в том, что во вхождениях с пробелом "4 GB" подсвечивается только четвёрка. А также, если есть вхождение типа ROM4Gb, то оно не подсвечивается.
Как бы эти два момента устранить?
Posted: Sun Jul 14, 2013 10:46 pm
by opk44
die_klaster
1. Проблема не в этом, а в том что у Вас престранное представление (или отсутствие такового) о словах и разделителях. Во фрагменте "4 GB" я насчитал аж 2 слова. AkelPad, похоже, тоже. И кому придет в голову в слове "ROM4Gb" искать еще какие-то "слова"... Это ж не шарада.
2. Как Вы собираетесь, например, красить накопители 64Гб, особенно в ситуациях схожих с ROM4Gb?
3. Пока Вы четко не осмыслили, что именно Вам требуется от файла-подсветки и как он работает, можете попробовать раскрашивать "вручную", т.е. скриптом. Делаете, например, на тулбаре две кнопочки. На первую вешаете вызов скрипта-раскраски, на вторую - снятие всех отметок.
При таком подходе Вы вправе оперировать понятием "фрагмент" или "вхождение". Но, конечно, такая раскраска "мертвая", т.е. при добавлении нового текста все каждый раз придется перекрашивать заново.
Posted: Mon Jul 15, 2013 9:18 am
by VladSh
Instructor
Сейчас приходится работать с огромными xml'ями, и очень нехватает функционала сворачивания блоков Ctrl+<цифра-номер уровня>, как есть в Notepad++. Можно ли такое реализовать?
Добавлено 1: Может быть можно как-то сворачивать текущий уровень по всему файлу? Тогда проблему с отсутствием Ctrl+<цифра-номер уровня> можно было бы как-то отодвинуть.
Добавлено 2: Можно ли сделать сворачивание текущего уровня со всеми вложенными подуровнями сразу? Лучше отдельной командой, но можно и параметром в ini.
Posted: Mon Jul 15, 2013 1:45 pm
by die_klaster
opk44
Ну вопрос не в том, какое у меня представление, а в том, что это нужно сделать.
Про ROM4Gb:
Поиск по тексту ведь находит "4Gb" в этом сочетании. Почему бы и Akelpad'у с плагином этого не сделать?
В какую секцию файла .coder мне впихнуть нужные слова, чтобы они всё-таки подсвечивались?
Posted: Mon Jul 15, 2013 6:00 pm
by VladSh
Instructor
Ещё. Можно ли опцию в ini для неотображения завершающей части свёрнутого блока?
Образец я "честно украл" из файла coder.coder. Только добавил флаг "4" (т.е. форсированного получения имени справа от начала блока). Есть один эффект (не знаю хорошо это или плохо) - если воскл.знак будет даже не в первой позиции, но перед ним будут стоять только пробелы, то все равно фолдится.
Спасибо! именно то, чего хотелось.
ps мне как-то в голову не приходил вариант поставить в качестве окончания блока ! - стереотипность мышления подвела - как единичный символ [в одной и той же позиции] будет и началом и сразу концом блока
рано я обрадовался. подобный фокус нормально не срабатывает
мне нужно чтобы блок начинался и заканчивался на одной строке, а так - он заканчивается либо в конце текста либо на следующем ! в начале строки
Instructor
помоги пожалуйста решить это вопрос:
как можно добавить в Folds строку (только ее одну! - чтоб блок начинался и сразу заканчивался в этой строке), начинающуюся с символа ! ?
делаю для навигации по тексту. если бы в качестве конца блока можно было ставить "\n" задача была бы решена. но т.к. "\n" не воспринимается как конец строки, то никак не получается у меня задуманное