Page 8 of 27
Posted: Thu Nov 19, 2009 8:12 am
by DV
Fr0sT wrote:Возникла идея: добавить функции "Окружить выделенный текст" символами
У плагина есть "магическая" настройка
sel_autobr = 1.
Posted: Thu Nov 19, 2009 9:59 am
by VladSh
FeyFre wrote:VladSh, если бы это было просто, его бы давно сделали бы!
Ты мне расскажи, как ты собираешься выделить текст, а потом ввести ключ для подстановки AutoComplete, при этом не потеряв выделения? Нет, это совсем не просто. Плагин Scripts оказался проще и практичнее.
1. Выделяю текст.
2. Жму определённую комбинацию клавиш для вызова диалога AutoComplete (у меня это Alt+A), при этом происходит:
- запоминание выделенного текста (если выделение сбрасывается, то надо запоминать позицию начала выделения и его окончания);
- вывод диалога с вариантами выбора ключевых слов (как это сейчас и происходит!);
3. При выборе моего REM-END_REM производится замена выделенного текста на него же, но заключённого в эти "теги".
Для этого в плагин нужно всего лишь добавить поддержку запоминания выделенного текста - параметр %s.
В настройках автодополнения это выглядело бы так:
Code: Select all
%#REM-END_REM
%%REM
%s%|
%%END REM
Всё просто, как барабан!
Если это можно сделать скриптами, то почему нельзя в плагине???
Posted: Fri Nov 20, 2009 1:27 pm
by VladSh
DV wrote:Fr0sT wrote:Возникла идея: добавить функции "Окружить выделенный текст" символами
У плагина есть "магическая" настройка
sel_autobr = 1.
Что-то никак не удаётся заставить её фунциклировать... может какие-то дополнительные условия есть?
/в доку добавить, что
sel_autobr = 0 [по умолчанию]/
После выделения текста и набора первой скобки производится замена выделенного текста на скобки. Почему полная отмена действия производится двумя Ctrl+Z (сначала удаляются набранные скобки, а затем появляется удалённый выделенный текст)? Если
sel_autobr = 1, тогда выделенный текст можно заменять обрамлённым скобками в одно действие - отмена действия удобнее.
Можно ли сделать, чтобы если курсор уходит от подсвечиваемой скобки, то не сбрасывать жирную подсветку? Другими словами - хочется, чтобы подсветка скобок отображалась всегда, даже в середине фразы (в таком случае подсвечивать самые крайние скобки в строке), а не только когда курсор находится у скобки. Такая подсветка, естессно сможет работать в пределах одной строки.
Кроме того, что будет отлично ориентироваться, ещё и будет удобно выделять всё в скобках с помощью SelToMatchingBracket.
Edited: кстати
нашёл этот вариант на 1-й странице!
Posted: Fri Nov 20, 2009 6:38 pm
by DV
VladSh wrote:Что-то никак не удаётся заставить её фунциклировать...
В настройках плагина должно быть включено автозавершение скобок (
Autocomplete brackets ([{""}]))
VladSh wrote:Можно ли сделать, чтобы если курсор уходит от подсвечиваемой скобки, то не сбрасывать жирную подсветку?
Наверное, можно.
Хотя, с другой стороны, если внутри этих скобок есть другие скобки, то после подсветки внутренних скобок и перемещение каретки обратно - между внутренними и внешними скобками - внешние скобки подсвечиваться не будут. То есть:
[ |-> ( )
] (подсвечены внешние)
[
<-|( ) ]
(подсвечены внутренние)
[
| ( ) ]
(нет подсветки)
То же самое будет, если поместить каретку просто между скобок:
[
| ]
(нет подсветки)
Так что вряд ли такая модификация имеет смысл. Всё равно внешние скобки будут подсвечиваться не всегда, когда каретка находится между ними. Фраза "не всегда" будет применима даже в случае, если при любом перемещении каретки мы будем искать парные скобки левее и правее во всей видимой части текста - в данном случае ограничение на видимую часть текста. Поиск же парных скобок без ограничений влево и вправо в файле размером в несколько мегабайт затормозит редактор конкретно.
Posted: Sat Nov 21, 2009 9:58 pm
by Fr0sT
У плагина есть "магическая" настройка sel_autobr = 1.
О! И правда что

Благодарю!
Posted: Mon Nov 23, 2009 8:59 am
by VladSh
DV wrote:VladSh wrote:Что-то никак не удаётся заставить её фунциклировать...
В настройках плагина должно быть включено автозавершение скобок (
Autocomplete brackets ([{""}]))
Включено.
Я делаю так: выделил текст и ввожу с клавиатуры символ { ... жду, что сразу после ввода скобки автоматом получится вот так: {выделенный текст}, а не получается.
DV wrote:[ | ( ) ] (нет подсветки)
[ | ] (нет подсветки)
Хотел так:
[ | ( ) ]
[ | ]
DV wrote:Фраза "не всегда" будет применима даже в случае, если при любом перемещении каретки мы будем искать парные скобки левее и правее во всей видимой части текста - в данном случае ограничение на видимую часть текста. Поиск же парных скобок без ограничений влево и вправо в файле размером в несколько мегабайт затормозит редактор конкретно.
Имел ввиду в пределах одной строки, а не всего текста, только для программного кода. Это для удобства ориентирования в скрипте и быстрого выделения куска кода между скобками для переброски выделенного кода в другое место.
Может быть подсветку делать и не стоит (хотя хочется

), а вот выделение текста в случае, если скобки не подсвечены, чтобы производилось между самыми крайними скобками в строке.
Есть ещё одна отличная идея из Zen Coding по перемещению курсора...
Posted: Tue Nov 24, 2009 9:04 am
by DV
VladSh wrote:Что-то никак не удаётся заставить её фунциклировать...
Файл
XBrackets.ini - в студию!
VladSh wrote:выделение текста в случае, если скобки не подсвечены
Пример:
{ text1 = " (
| } text 2 )"
И что плагин должен подсвечивать в этом случае, учитывая, что плагин не производит никакого синтаксического разбора строки (в целях простоты и быстродействия) и абстрагируется от языково-специфичного синтаксиса (в целях простоты и быстродействия)?
Смысл вопроса в том, что можно либо сначала искать скобку слева, а потом парную справа, либо сначала искать скобку справа, а потом парную ей слева. И результаты могут оказаться различны.
Да и вообще, что-то влом мне этим заниматься.
Posted: Tue Nov 24, 2009 9:41 am
by VladSh
DV
Я менял XBrackets.ini из AkelPad'а. Закрыл Акел, отредактировал XBrackets.ini с помощью обычного блокнота и всё получилось.
Понял.
P.S. Можно ли как-то сделать, чтобы скобки убирались в одно действие отмены (Ctrl+Z)?
Posted: Wed Nov 25, 2009 9:25 am
by DV
VladSh wrote:Можно ли как-то сделать, чтобы скобки убирались в одно действие отмены (Ctrl+Z)?
Пробовал во всех
AnyRichEdit_ReplaceSelText поменять последний параметр -
bCanUndo - с TRUE на FALSE, но ничего от этого не изменилось.
Posted: Wed Nov 25, 2009 11:16 am
by VladSh
DV
Не знаю как работает
AnyRichEdit_ReplaceSelText...
А можно сделать проще: взять в переменную выделенный текст, добавить к ней скобки, а потом заменить выделенный текст тем, что получилось?
Posted: Fri Nov 27, 2009 9:02 am
by DV
XBrackets v.3.2
+ изменено: теперь 'sel_autobr = 1' заменяет весь выделенный текст
VladSh wrote:взять в переменную выделенный текст, добавить к ней скобки, а потом заменить выделенный текст тем, что получилось?
Кстати говоря, дополнительные настройки XBrackets можно менять, не закрывая AkelPad. В три шага, вот в таком порядке:
1а. Открываем окно настроек плагинов и отключаем функцию XBrackets::Main (если она активна).
1б. (альтернативный вариант) Запускаем XBrackets::Settings и в появившемся окне дважды щелкаем лев.кн.мыши на "Status: the plugin is active", чтобы надпись сменилась на "Status: the plugin is NOT active".
При деактивации плагин автоматически сохраняет свои настройки.
2. Открываем файл "XBrackets.ini" (если настройки хранятся в ini-файле) или ключ реестра "HKEY_CURRENT_USER\Software\Akelsoft\AkelPad\Plugs" и меняем настройки плагина XBrackets. Не забываем сохранить изменённый файл "XBrackets.ini".
3. Активируем плагин XBrackets, вызвав функцию XBrackets::Main или запустив XBrackets::Settings и в появившемся окне дважды щелкнув лев.кн.мыши на "Status: the plugin is NOT active".
При активации плагин автоматически перечитывает свои настройки.
Йаабадабадуу!!!

)
Posted: Fri Nov 27, 2009 9:44 am
by VladSh
DV
Батенька, да Вы монстр!
А можно ли все эти пункты добавить в XBrackets-_.txt в следующую версию? А то затеряется здесь, в страницах, и забудется...
Posted: Mon Nov 30, 2009 9:10 am
by VladSh
DV
Можно ли будет в следующей версии для 'sel_autobr = 1' добавить "русские" кавычки, типа « » ? Было бы удобно для тех, кто набирает типографские русские тексты.
Posted: Mon Nov 30, 2009 6:36 pm
by DV
VladSh wrote:Можно ли будет в следующей версии для 'sel_autobr = 1' добавить "русские" кавычки, типа « » ?
Разве не работает?
Posted: Tue Dec 01, 2009 9:57 am
by VladSh
DV
Может и работает, только какую комбинацию клавиш нажать, чтобы эти кавычки появились? Я просто скриптец писал похожий, так он если Shift+" жмёшь, то обычную закавыку вставляет, а если Shift+2, то русскую..