SmartSel plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 3248
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Обнаружил баг в работе SmartHome.
Если поставить курсор посреди пробелов вначале строки (я хотел удалить часть пробелов спереди от курсора), вот так:

Code: Select all

...|...текст
где точки - это пробел, а вертикальная палка - позиция курсора, и нажать Shift+Home, то выделение прыгнет не к началу строки, а вправо к первому непробельному символу.

Включены:
SmartSel::SmartEnd
SmartSel::SmartHome
SmartSel::SmartUpDown

На комбинацию клавиш Shift+Home ничего не назначено; резидентные скрипты не используются.

YuS
Offline
Posts: 513
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

VladSh wrote:Обнаружил баг в работе SmartHome.
Документация:
файл: SmartSel_Rus.txt
раздел: SmartSel::SmartHome

Offline
Posts: 3248
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

YuS
Это верно, но имелось в виду для случая, когда каретка находится справа от первого непустого символа, а получилось так, как получилось.
Когда слева нет текста, а только пробелы, то, естественно, когда нажимаешь Home, ожидаешь перехода в начала строки.
В принципе можно потерпеть, хоть и не интуитивное это поведение.

YuS
Offline
Posts: 513
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

VladSh wrote: Это верно, но имелось в виду для случая, когда каретка находится справа от первого непустого символа, а получилось так, как получилось.
Ну, почему же? Если указано к первому непробельному символу, то так и должно быть. Не совсем понимаю, почему для описанного выше случая должно быть другое поведение? То есть, почему это баг? Имхо, скорее всего, такое поведение и задумывалось автором плагина.
Впрочем:
VladSh wrote: Когда слева нет текста, а только пробелы, то, естественно, когда нажимаешь Home, ожидаешь перехода в начала строки.
В принципе можно потерпеть, хоть и не интуитивное это поведение.
Там ведь есть настройка инвертированного поведения... т.е. по первому нажатию Home, переход будет в начало строки, а при повторном нажатии, если вдруг потребуется, уже к первому непробельному символу (с шифтом поведение аналогичное).
И терпеть ничего не потребуется, имхо...

Offline
Posts: 3248
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

YuS wrote:Имхо, скорее всего, такое поведение и задумывалось автором плагина.
Имхо, поведение опции, да и сам этот функционал был изначально предложен мной, и, мне кажется, я знаю, что я имел в виду) Это где-то 2006-2008 годы, - искать всю эту беллетристику сейчас лень. Тогда не было даже темы по первому плагину с данным функционалом. Сначала часть пилил один разраб, другую часть другой, образовался первый плагин, потом тот плагин приказал долго жить, потому что уже в этом объединили функционал.
Может быть не совсем точно, но как-то так.

По вопросу. Тогда, скорее всего, просто не обсуждался (или я опять забыл?) вариант того, что первый "непустой" символ может быть справа от каретки, потому такой, ну может быть не баг, но side-эффект.
P.S. Инвертирование - это не то. Оно в контексте сказанного всё равно будет работать не так.

Операция нечастая; проехали...

YuS
Offline
Posts: 513
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

VladSh wrote:мне кажется, я знаю, что я имел в виду)
И мне иногда кажется, что я тоже знаю... но иногда же, оказывается, что знание в голове, может отличаться от действительности :) Особенно, по прошествии определенного времени...
VladSh wrote: искать всю эту беллетристику сейчас лень.
Да чего тут лениться, на форуме есть же поиск:
Если в начале строки находятся пробелы или табуляции, то при первом нажатии клавиши "Home" устанавливать курсор перед первым значащим символом, при 2-м нажатии устанавливать курсор в самое начало строки. Так было в досовских текстовых редакторах, по моему это очень удобно.
ссылка
Имхо, все перечисленные условия соблюдены.)

Offline
Posts: 3248
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

YuS
Я ж об этом и говорю. Но когда я это писал, то предполагалось, что курсор находится после первого значащего символа. Никак в данном случае знания в голове не отличаются от того, что писалось ранее)
Ну а так да, все условия соблюдены, какая была постановка, такую дословно и реализовали :)

Не баг это, неправильно выразился. В идеале хотелось бы доработки.

Offline
Posts: 167
Joined: Fri Aug 15, 2008 8:58 am

select space with ctrl-arrow

Post by Diamen »

If i have
one two three
and caret is before of three
I send key:
crtrl-left-arrow and crtrl-right-arrow
the selection is null.
do it is possible to do that crtrl-right-arrow go to end of two and select space between two and three.
As is the case in the browser textarea.

Offline
Site Admin
Posts: 6430
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Diamen
Maybe you need different caret movement? For example you can set manual parameter "WordBreak" to 63.

Offline
Posts: 20
Joined: Wed Jan 22, 2025 5:23 am

Re: SmartSel plugin

Post by Лестер Глючный »

Вот приспичило мне махнуть местами атрибуты внутри меток *Mark-up*-текста: нужно что-то типа «блочного» выделения (зажав ALT), но с завершением не только слова (т.е. не просто перед пробелом), но и включая " (кавычку)… Подразумевалось, что SmartSel должен это уметь, но мне ж так и не довелось "разглядеть" хоть какой-нибудь полезной для меня функции у этого подключаемого модуля (т.к. практически всегда хватало CTRL+стрелок и стандартного поведения Home|End, и то, только недавно до меня начало доходить, что далеко не везде CTRL+стрелки у AkelPad работают привычным образом, т.е. проскакивают казалось бы те символы, на которых следовало бы остановить "перемотку", впрочем, как и у "старой доброй" командной строки)… Для наглядности, огрызок из tonal.soc:

Code: Select all

<draw:color draw:name="Gray 73%" draw:color="#BABABA"/>
<draw:color draw:name="Gray 82%" draw:color="#D0D0D0"/>
<draw:color draw:name="Gray 91%" draw:color="#E8E8E8"/>
<draw:color draw:name="Gray 100%" draw:color="#FFFFFF"/>
<draw:color draw:name="Magenta 82%" draw:color="#FF00FF"/>
<draw:color draw:name="Violet (Out of Gamut) 82%" draw:color="#FFFFFE"/>
<draw:color draw:name="Blue (Out of Gamut) 82%" draw:color="#FFFFFE"/>
<draw:color draw:name="Azure (Out of Gamut) 82%" draw:color="#FFFFFE"/>
<draw:color draw:name="Cyan 82%" draw:color="#00FFFF"/>
<draw:color draw:name="Spring Green (Out of Gamut) 82%" draw:color="#FFFFFE"/>
<draw:color draw:name="Green (Out of Gamut) 82%" draw:color="#FFFFFE"/>
<draw:color draw:name="Chartreuse Green (Out of Gamut) 82%" draw:color="#FFFFFE"/>
<draw:color draw:name="Yellow 82%" draw:color="#FFFF00"/>
<draw:color draw:name="Orange (Out of Gamut) 82%" draw:color="#FFFFFE"/>
<draw:color draw:name="Red (Out of Gamut) 82%" draw:color="#FFFFFE"/>
<draw:color draw:name="Rose (Out of Gamut) 82%" draw:color="#FFFFFE"/>
<draw:color draw:name="Magenta 73%" draw:color="#E300E3"/>
<draw:color draw:name="Violet (Out of Gamut) 73%" draw:color="#FFFFFE"/>
<draw:color draw:name="Blue (Out of Gamut) 73%" draw:color="#FFFFFE"/>
Пример "отработки" регулярными выражениями:

Code: Select all

draw:name="([^\x22])*+"\sdraw:color="#([a-f0-9]{6})"
With:

Code: Select all

draw:color="#\2" draw:name="\1"
Вот хочется, чтоб ещё и SmartSel позволял подобным образом выделять и, соответственно, перемещать вручную хотя бы по горизонтали (а вот по вертикали скорее всего придётся и вовсе блокировать):)
Или же тогда на место выделенной и автоматически-вставленной в поле What окна поиска/замены строки при активации галочки "Регулярные выражения" автоматом генерировалась подбранная RegEx-строка — но это уже тогда в худшем случае (т.к. далеко не каждый додумается прибегнуть к регуляркам для таких ситуаций), да и это уже SmartSearch :)
А вот когда в первых колонках какого-то атрибута вовсе нет, такое выделить уже сложнее, да вообще, когда между определёнными атриубтами ещё какой-нибудь атриубут впихнут (или тоже отсутствует) — тут опять надо голову ломать как тут "без мата" выразить "регулярку"…

DV
Offline
Posts: 1295
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Re: SmartSel plugin

Post by DV »

Лестер Глючный wrote: Sun Feb 01, 2026 7:33 am Вот приспичило мне махнуть местами атрибуты внутри меток *Mark-up*-текста: нужно что-то типа «блочного» выделения (зажав ALT), но с завершением не только слова (т.е. не просто перед пробелом), но и включая " (кавычку)…
Нічого не зрозумів, але звучить круто :)
Для виділення тексту між дужками/лапками, а потім з цими дужками/лапками включно, можна використати XBrackets::SelToNearestBrackets. І встановити ручний параметр nearestbr.selto_flags=2.

Offline
Posts: 20
Joined: Wed Jan 22, 2025 5:23 am

Re: SmartSel plugin

Post by Лестер Глючный »

ALT даёт возможность выделять текст столбцом (минуя начало и конец Mark-up меток), вот только пользы, к сожалению, не приносит… А это очень бы пригодилось, например, для изменения порядка значений внутри .csv | .tsv файлов, а ведь там даже банально указанные десятичными числами (циферками) значения отличаются по количеству символов (из-за чего я терпеть не могу такой формат записи) — тут что ли тоже регулярным выражениям отрабатывать (когда таких столбцов десятки)? XBrackets тут совсем как-то не в тему…
Post Reply