LuaFAR Search

Здесь можно обсудить ваш любимый плагин.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

LuaFAR Search

Post by Shmuel »

Здесь можно обсуждать плагин LuaFAR Search. (Анонс).
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

LuaFAR Search

Post by Shmuel »

Latest post of the previous page:

Трудно сказать, что правильнее, для этого надо знать предпочтения пользователей.
Но поскольку значение этой опции сохраняется в базе данных плагина, то достаточно сделать один поиск с включённой опцией, и она останется включённой на постоянной основе (пока пользователь не сбросит).
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

LuaFAR Search

Post by sToLp »

Shmuel,
Обновил плагин до v3.43.3.
Макрос перехода из итогов Grep в заданное место файла работает отлично.
Большое спасибо Вам за терпеливую помощь в выяснении проблемы (это было очень полезно) и за оперативную правку макроса!
Он стал даже несколько более функциональным и, соответственно, более удобным.
GAAlex
Posts: 20
Joined: Sun 16 Aug, 2015 05:48
Been thanked: 2 times

LuaFAR Search

Post by GAAlex »

поиск (?{1}((^\w[^\d]+_)+)|(^\w[^\d]+))(\.|_)(?{2}\d{2}\.\d{2}\.\d{2})\.(?{3}\S+)
Замена ${1} - ${3} - ${2}
Far все делает, а LuaFar Search пишет синтаксическую ошибку.
Подозреваю что не понимает именованную группу поиска
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

LuaFAR Search

Post by Shmuel »

GAAlex, это известная особенность.

Плагин работает с 4-мя библиотеками регулярных выражений. Каждая из них поддерживает именованные группы, но только библиотека "Far regex" не отдаёт эту поддержку плагинам через API, поэтому в самом Фаре это поддерживается, а в плагине - нет.

3 другие библиотеки плагина (Oniguruma, PCRE и PCRE2) поддерживают именованные группы, только надо иметь в виду, что в них применяются другие обрамляющие символы: <> или '', а не {} как в Фаре. Чуть подробнее - в справке плагина.
GAAlex
Posts: 20
Joined: Sun 16 Aug, 2015 05:48
Been thanked: 2 times

LuaFAR Search

Post by GAAlex »

Shmuel,
Понял, а где их скачать для x64?
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

LuaFAR Search

Post by Shmuel »

На плагринге, на странице плагина, самый верхний даунлоад (Add-On).
GAAlex
Posts: 20
Joined: Sun 16 Aug, 2015 05:48
Been thanked: 2 times

LuaFAR Search

Post by GAAlex »

Shmuel,
Спасибо. переделал поиск.
Ищем (?<Group1>((^\w[^\d]+_)+)|(^\w[^\d]+))(\.|_)(?<Group2>\d{2}\.\d{2}\.\d{2})\.(?<Group3>\S+)
Меняем на ${Group1} - ${Group3} - ${Group2}
в плагине все работает, а вот при вызове пользовательского скрипта

Code: Select all

nF, nR = lfsearch.MReplaceEditorAction( "replace",
{
	bRegExpr=true,
	sScope="block",
	sOrigin="scope",
	sRegexLib="pcre",
	sSearchPat = "(?<Group1>((^\w[^\d]+_)+)|(^\w[^\d]+))(\.|_)(?<Group2>\d{2}\.\d{2}\.\d{2})\.(?<Group3>\S+)",
	sReplacePat = "${Group1} - ${Group3} - ${Group2}",
}
)

получаю ошибку "Invalid escape sequence near '"(?<Group1>((^'
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

LuaFAR Search

Post by Shmuel »

Тут у вас действительно ошибки в этих самых escape sequences.
Либо удвойте бэкслеши, то есть: \\w, \\d и т.п., либо, если не хотите удваивать, обрамляйте всё выражение не в двойные кавычки, а в [[...]].

Кстати, функция MReplaceEditorAction соответствует не обычной построчной замене, а multi-line replace.Для обычной используйте ф-цию EditorAction.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

LuaFAR Search

Post by DrKnS »

Shmuel wrote: Wed 28 Nov, 2018 07:44не отдаёт эту поддержку плагинам через API
Как уже писалось - сделать можно. Предлагайте удобный вам интерфейс.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

LuaFAR Search

Post by Shmuel »

DrKnS, сделайте любой рабочий интерфейс, например по образцу PCRE или Oniguruma.
И, кстати, никто не в претензии, что это ещё не сделано.
GAAlex
Posts: 20
Joined: Sun 16 Aug, 2015 05:48
Been thanked: 2 times

LuaFAR Search

Post by GAAlex »

DrKnS,
Как оказалось, я в претензии :-)
Я так понимаю я не могу надписать скрипт lua на замену текста с помощью регулярных выражений и скормить его FAR?
Пример скрипта - выше. Куча файлов (выгрузка из старой базы) в которых надо поменять местами нужные поля и вырезать не нужное.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

LuaFAR Search

Post by Shmuel »

GAAlex wrote: Thu 29 Nov, 2018 02:51 Я так понимаю я не могу надписать скрипт lua на замену текста с помощью регулярных выражений и скормить его FAR?
Странный вывод. Именованные группы пока не поддерживаются, но ведь порядковые никто не отменял.
Переписать ваше выражение с использованием порядковых групп занимает не более двух минут:
Ищем ((?:(?:^\w[^\d]+_)+)|(?:^\w[^\d]+))(?:\.|_)(\d{2}\.\d{2}\.\d{2})\.(\S+)
Меняем на $1 - $3 - $2
Wotan
Posts: 9
Joined: Tue 18 Jun, 2013 05:12
Has thanked: 2 times

LuaFAR Search

Post by Wotan »

Добрый день! Подскажите, пожалуйста, как обратиться к элементам замены после девятого? Пробовал {$10}, ${10}, не работает ни с одной из библиотек.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

LuaFAR Search

Post by Shmuel »

Wotan wrote: Wed 04 Sep, 2019 14:34 как обратиться к элементам замены после девятого
$A ... $Z
В справке плагина есть страница "Синтаксис образца замены", там это указано.
Wotan
Posts: 9
Joined: Tue 18 Jun, 2013 05:12
Has thanked: 2 times

LuaFAR Search

Post by Wotan »

Shmuel wrote: Wed 04 Sep, 2019 14:38$A ... $Z
Огромное спасибо, видимо, плохо искал
User avatar
John Doe
Бюрократ
Posts: 13849
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

LuaFAR Search

Post by John Doe »

Понадобилось использовать плагин в скрипте, просмотрел справку, нашёл как добавлять скрипты в меню плагина, но не нашёл упоминания о возможности использования через Plugin.[Sync]Call.
Не реализовано?
https://t.me/FarManager — Telegram чат
Post Reply

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