У плагина есть "магическая" настройка sel_autobr = 1.Fr0sT wrote:Возникла идея: добавить функции "Окружить выделенный текст" символами
XBrackets plugin
- Author
- Message
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
1. Выделяю текст.FeyFre wrote:VladSh, если бы это было просто, его бы давно сделали бы!
Ты мне расскажи, как ты собираешься выделить текст, а потом ввести ключ для подстановки AutoComplete, при этом не потеряв выделения? Нет, это совсем не просто. Плагин Scripts оказался проще и практичнее.
2. Жму определённую комбинацию клавиш для вызова диалога AutoComplete (у меня это Alt+A), при этом происходит:
- запоминание выделенного текста (если выделение сбрасывается, то надо запоминать позицию начала выделения и его окончания);
- вывод диалога с вариантами выбора ключевых слов (как это сейчас и происходит!);
3. При выборе моего REM-END_REM производится замена выделенного текста на него же, но заключённого в эти "теги".
Для этого в плагин нужно всего лишь добавить поддержку запоминания выделенного текста - параметр %s.
В настройках автодополнения это выглядело бы так:
Code: Select all
%#REM-END_REM
%%REM
%s%|
%%END REM
Если это можно сделать скриптами, то почему нельзя в плагине???
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Что-то никак не удаётся заставить её фунциклировать... может какие-то дополнительные условия есть?DV wrote:У плагина есть "магическая" настройка sel_autobr = 1.Fr0sT wrote:Возникла идея: добавить функции "Окружить выделенный текст" символами
/в доку добавить, что sel_autobr = 0 [по умолчанию]/
После выделения текста и набора первой скобки производится замена выделенного текста на скобки. Почему полная отмена действия производится двумя Ctrl+Z (сначала удаляются набранные скобки, а затем появляется удалённый выделенный текст)? Если sel_autobr = 1, тогда выделенный текст можно заменять обрамлённым скобками в одно действие - отмена действия удобнее.
Можно ли сделать, чтобы если курсор уходит от подсвечиваемой скобки, то не сбрасывать жирную подсветку? Другими словами - хочется, чтобы подсветка скобок отображалась всегда, даже в середине фразы (в таком случае подсвечивать самые крайние скобки в строке), а не только когда курсор находится у скобки. Такая подсветка, естессно сможет работать в пределах одной строки.
Кроме того, что будет отлично ориентироваться, ещё и будет удобно выделять всё в скобках с помощью SelToMatchingBracket.
Edited: кстати нашёл этот вариант на 1-й странице!
-
Offline
- Posts: 1250
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
В настройках плагина должно быть включено автозавершение скобок (Autocomplete brackets ([{""}]))VladSh wrote:Что-то никак не удаётся заставить её фунциклировать...
Наверное, можно.VladSh wrote:Можно ли сделать, чтобы если курсор уходит от подсвечиваемой скобки, то не сбрасывать жирную подсветку?
Хотя, с другой стороны, если внутри этих скобок есть другие скобки, то после подсветки внутренних скобок и перемещение каретки обратно - между внутренними и внешними скобками - внешние скобки подсвечиваться не будут. То есть:
[ |-> ( ) ] (подсвечены внешние)
[ <-|( ) ] (подсвечены внутренние)
[ | ( ) ] (нет подсветки)
То же самое будет, если поместить каретку просто между скобок:
[ | ] (нет подсветки)
Так что вряд ли такая модификация имеет смысл. Всё равно внешние скобки будут подсвечиваться не всегда, когда каретка находится между ними. Фраза "не всегда" будет применима даже в случае, если при любом перемещении каретки мы будем искать парные скобки левее и правее во всей видимой части текста - в данном случае ограничение на видимую часть текста. Поиск же парных скобок без ограничений влево и вправо в файле размером в несколько мегабайт затормозит редактор конкретно.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Включено.DV wrote:В настройках плагина должно быть включено автозавершение скобок (Autocomplete brackets ([{""}]))VladSh wrote:Что-то никак не удаётся заставить её фунциклировать...
Я делаю так: выделил текст и ввожу с клавиатуры символ { ... жду, что сразу после ввода скобки автоматом получится вот так: {выделенный текст}, а не получается.
Хотел так:DV wrote:[ | ( ) ] (нет подсветки)
[ | ] (нет подсветки)
[ | ( ) ]
[ | ]
Имел ввиду в пределах одной строки, а не всего текста, только для программного кода. Это для удобства ориентирования в скрипте и быстрого выделения куска кода между скобками для переброски выделенного кода в другое место.DV wrote:Фраза "не всегда" будет применима даже в случае, если при любом перемещении каретки мы будем искать парные скобки левее и правее во всей видимой части текста - в данном случае ограничение на видимую часть текста. Поиск же парных скобок без ограничений влево и вправо в файле размером в несколько мегабайт затормозит редактор конкретно.
Может быть подсветку делать и не стоит (хотя хочется ), а вот выделение текста в случае, если скобки не подсвечены, чтобы производилось между самыми крайними скобками в строке.
Есть ещё одна отличная идея из Zen Coding по перемещению курсора...
-
Offline
- Posts: 1250
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Файл XBrackets.ini - в студию!VladSh wrote:Что-то никак не удаётся заставить её фунциклировать...
Пример:VladSh wrote:выделение текста в случае, если скобки не подсвечены
{ text1 = " ( | } text 2 )"
И что плагин должен подсвечивать в этом случае, учитывая, что плагин не производит никакого синтаксического разбора строки (в целях простоты и быстродействия) и абстрагируется от языково-специфичного синтаксиса (в целях простоты и быстродействия)?
Смысл вопроса в том, что можно либо сначала искать скобку слева, а потом парную справа, либо сначала искать скобку справа, а потом парную ей слева. И результаты могут оказаться различны.
Да и вообще, что-то влом мне этим заниматься.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 1250
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 1250
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
XBrackets v.3.2
+ изменено: теперь 'sel_autobr = 1' заменяет весь выделенный текст
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".
При активации плагин автоматически перечитывает свои настройки.
Йаабадабадуу!!! )
+ изменено: теперь 'sel_autobr = 1' заменяет весь выделенный текст
Кстати говоря, дополнительные настройки XBrackets можно менять, не закрывая AkelPad. В три шага, вот в таком порядке:VladSh wrote:взять в переменную выделенный текст, добавить к ней скобки, а потом заменить выделенный текст тем, что получилось?
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".
При активации плагин автоматически перечитывает свои настройки.
Йаабадабадуу!!! )
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact: