FarNet.RightControl — Step/Select/Delete by words

Здесь можно обсудить ваш любимый плагин.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

FarNet.RightControl — Step/Select/Delete by words

Post by citRiks »

Latest post of the previous page:

наконец дошли руки разобраться с этой очень насущной темой,
ибо ненавижу спотыкания всех редакторов на чем-то вроде http_:_/_/_blah-blah-blah
поставил себе такое, и работает как сказка:
^ | $ | \s

Возникло пожелания, изменение в этом регексе не входит в силу до перезагрузки, хотя в хелпе вроде обещано вступить в силу сразу:
image.png
image.png (7.99 KiB) Viewed 1582 times
или я что-то упускаю?
выход из панели настроек и редакторов не дает эффекта тоже
Last edited by citRiks on Tue 10 Aug, 2021 19:30, edited 2 times in total.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

FarNet.RightControl — Step/Select/Delete by words

Post by NightRoman »

Если правильно понимаю "начало/конец слова", то регекс такой:

Code: Select all

^ | $ | \b
Про настройки. Фраза "Changed values are applied immediately and cannot be undone." просто означает, что измененные настройки будут сохранены при закрытии панели, и никакой отмены этого не предусмотрено. Изменю хелп, чтобы не вводить в заблуждение.

Применять или не применять измененные настройки сразу в модуле - это дело модуля. В RightControl регекс компилится один раз при первом использовании, типа дорогая операция. В текущей реализации требуется перезапуск, да. Можно это доработать, наверное. Подумаю.
Last edited by NightRoman on Wed 11 Aug, 2021 05:12, edited 1 time in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

FarNet.RightControl — Step/Select/Delete by words

Post by citRiks »

NightRoman wrote: Wed 11 Aug, 2021 05:11 Если правильно понимаю "начало/конец слова", то регекс такой:
проверил ваш предложенный вариант, - неа, надо не это, а "все что не пробел/таб".
есть еще варианты?
на самом деле я сейчас так:
^ | $ | \s+
почти устраивает, кроме того что:
1.) встает только на пробелы, а надо, в зависимости от направления, на первую или последнюю букву слова
2.) Если вначале строки несколько пробелов, то встает на второй пробел
3.) когда стоим на пробеле, и далее несколько пробелов, то CtrlDel удаляет и эти пробелы (это хорошо), и последующее слово (это плохо)

если не придумается регексп, видимо сделаю гибрид с кодом на луа
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

FarNet.RightControl — Step/Select/Delete by words

Post by NightRoman »

Не совсем понятна постановка. Приведите пример текста со стопами, обозначеннымы символом "|", скажем.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

FarNet.RightControl — Step/Select/Delete by words

Post by citRiks »

NightRoman wrote: Wed 11 Aug, 2021 06:40 Не совсем понятна постановка. Приведите пример текста со стопами, обозначеннымы символом "|", скажем.
пример как надо чтобы было, или пример как не надо чтобы было?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

FarNet.RightControl — Step/Select/Delete by words

Post by NightRoman »

Пример, как надо.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

FarNet.RightControl — Step/Select/Delete by words

Post by NightRoman »

Пока убегаю, вернусь к этому позже. Вообще, можно и как не надо пример, тоже.
Может, это пригодится для регексов -- https://regex101.com/ (в опциях должно быть /gmx)
Last edited by NightRoman on Wed 11 Aug, 2021 07:05, edited 1 time in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

FarNet.RightControl — Step/Select/Delete by words

Post by citRiks »

чуть переделал ранее бывший тут пример:

<TAB><TAB><TAB><TAB><TAB>searchText<SPACE>=<SPACE>prefix..searchText..suffix<SPACE><SPACE><START-POS>

<START-POS><TAB><TAB><TAB><TAB><TAB>searchText<SPACE>=<SPACE>prefix..searchText..suffix<SPACE><SPACE>
Last edited by citRiks on Wed 11 Aug, 2021 07:29, edited 5 times in total.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

FarNet.RightControl — Step/Select/Delete by words

Post by NightRoman »

citRiks wrote: Wed 11 Aug, 2021 07:04 я в целом не уверен что это возможно регекспом, ведь надо учитывать направление курсора, но я не очень спец. в этом
Вы хотите, чтобы стопы были разные в зависимости от движения влево или вправо?
Тогда это не решается регексом и данный модуль не для этого.
Он как раз был создан для того, чтобы стопы были одинаковые в обе стороны.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

FarNet.RightControl — Step/Select/Delete by words

Post by citRiks »

NightRoman wrote: Wed 11 Aug, 2021 07:07 Вы хотите, чтобы стопы были разные в зависимости от движения влево или вправо?
да, и мне кажется что так удобнее
NightRoman wrote: Wed 11 Aug, 2021 07:07 Тогда это не решается регексом и данный модуль не для этого.
значительную часть задачи он решает, кажется, хотя может еще и напорюсь на что-то именно мешающее задаче
NightRoman wrote: Wed 11 Aug, 2021 07:07Он как раз был создан для того, чтобы стопы были одинаковые в обе стороны.
ну посмотрим как это может пригодится. регекспы для стопов, это хорошая идея.
может через АПИ задавать и регексп локалного значения?
например:
Plugin.Call("10435532-9BB3-487B-A045-B0E6ECAAB6BC", "RightControl:step-right", "\b")
где \b- это регексп-выражение, необязательный параметр.
чтобы не было затратно, то регекспы можно кэшировать в плагине
Last edited by citRiks on Wed 11 Aug, 2021 07:17, edited 2 times in total.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

FarNet.RightControl — Step/Select/Delete by words

Post by NightRoman »

Пожалуй, я доработаю модуль.
Вместо одного регекса, который задает стопы независимо от направления, введем два: один для стопов при движении влево, другой для движения вправо.
Помимо дополнительной гибкости это еще и упростит выражения. Ибо сейчас с одним выражением стопы должны быть нулевой длины, а это сложно для юзеров не очень продвинутых в регексах.
С двумя выражениями можно позволить любые мачи и брать для стопов только их начальную позицию. Должно получиться неплохо, пожалуй.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

FarNet.RightControl — Step/Select/Delete by words

Post by NightRoman »

citRiks wrote: Wed 11 Aug, 2021 07:13 может через АПИ задавать и регексп локалного значения?
Можно, но мне не хочется этим заниматься. А зачем? Разве так часто меняются предпочтения по стопам? Это же бесит, пальцы-то привыкают к какому-то одному способу.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

FarNet.RightControl — Step/Select/Delete by words

Post by NightRoman »

citRiks wrote: Wed 11 Aug, 2021 07:13 чтобы не было затратно, то регекспы можно кэшировать в плагине
Они и кешируются (поэтому и требовалась перезагрузка). Но это я поправлю, применяться будет сразу, как изменяем настройку. Тоже с кешированием, конечно.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

FarNet.RightControl — Step/Select/Delete by words

Post by NightRoman »

А примеры в вашем формате я не понимаю, извините.
Прошу примеры в таком формате:

Code: Select all

этот регекс: ^ | $ | \b

в строке:
- `step-left ~ [CtrlLeft]`

ставит стопы так "|":
|- `|step-left| ~ [|CtrlLeft|]`|

User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

FarNet.RightControl — Step/Select/Delete by words

Post by citRiks »

NightRoman wrote: Wed 11 Aug, 2021 08:23 А зачем? Разве так часто меняются предпочтения по стопам?
Для разных типов документов вполне себе могут менятся предпочтения.
И по одному типу документа тоже, например, хотим скакать (навигация) медленнее и точнее, или быстрее.
я вижу для себя полезность нескольких вариантов позиционирования
Насчет остального - отпишусь вечером или завтра, спасибо!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

FarNet.RightControl — Step/Select/Delete by words

Post by NightRoman »

citRiks, выложил новую версию модуля и Фарнет, надо обновить оба

Изменено поведение сохранения настроек, теперь сохраняются сразу при изменении, а не при выходе из панели настроек.
В итоге RightControl сразу подхватывает измененнные регексы.

RightControl теперь использует два регекса для стопов: при операциях влево и вправо.
Дефолтные регексы и примеры этим не пользуются, все регексы одинаковые.
Но для любителей разных стопов для разных направлений есть инструмент.
Post Reply

Return to “Обсуждение плагинов”