LuaFAR Search

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

LuaFAR Search

Post by Shmuel »

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

LuaFAR Search

Post by Shmuel »

Latest post of the previous page:

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: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 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: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 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: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

LuaFAR Search

Post by John Doe »

Понадобилось использовать плагин в скрипте, просмотрел справку, нашёл как добавлять скрипты в меню плагина, но не нашёл упоминания о возможности использования через Plugin.[Sync]Call.
Не реализовано?
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaFAR Search

Post by Shmuel »

John Doe wrote: Fri 30 Jul, 2021 08:48 не нашёл упоминания о возможности использования через Plugin.[Sync]Call.
Определённые возможности использования есть, видимо забыл добавить в справку.
  1. Наберите с комстроки lfs:, там есть примеры синтаксиса.
  2. Кое-что можно посмотреть в файле macros\lfsearch.lua в дистрибутиве плагина.
Если после этого остаются вопросы - задавайте, отвечу.
Если есть сценарий, который невозможно решить имеющимися средствами - опишите его.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

LuaFAR Search

Post by John Doe »

Похоже что всё можно решить командой code.
Смущает только то что все значения при этом надо будет лепить в текст code.

В идеале хотелось бы что-то типа

Code: Select all

Plugin.SyncCall("8E11EA75-0303-4374-AC60-D1E38F865449","editor","test:search",Data)
Но похоже такого не предусмотрено.
В macros\lfsearch.lua всё понятно, но "test:search" там нет (пробовал но безуспешно).
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaFAR Search

Post by Shmuel »

John Doe wrote: Fri 30 Jul, 2021 09:33 Смущает только то что все значения при этом надо будет лепить в текст code.
Там есть возможность передачи аргументов (типа string, number, boolean, nil). Напимер:

Code: Select all

local code = [[
  local msg, title = ...
  far.Message(msg, title)
]]
Plugin.SyncCall("8e11ea75-0303-4374-ac60-d1e38f865449", "code", code, "Hello", "goodbye")

"test:search" это внутренняя команда плагина. Её использование можно посмотреть в файле test_lfsearch.lua из дистрибутива.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

LuaFAR Search

Post by John Doe »

Shmuel wrote: Fri 30 Jul, 2021 09:11 Если есть сценарий, который невозможно решить имеющимися средствами - опишите его.
Есть togglehighlight но нет возможности безусловно выключить раскраску.
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaFAR Search

Post by Shmuel »

John Doe wrote: Fri 30 Jul, 2021 10:36 Есть togglehighlight но нет возможности безусловно выключить раскраску.
resethighlight
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

LuaFAR Search

Post by John Doe »

Shmuel wrote: Fri 30 Jul, 2021 09:54 "test:search" это внутренняя команда плагина. Её использование можно посмотреть в файле test_lfsearch.lua из дистрибутива.
Имелась ввиду описанная в справке
Следующие операции не выводят диалогов и заключительного сообщения:

Code: Select all

  "test:search"    :  операция поиска
Но она не подошла, поскольку мне требуется не только "искать", но и переходить к найденному, и выделяя при этом все вхождения.
Т.е. всё то что происходит из диалога, но без него.
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaFAR Search

Post by Shmuel »

John Doe wrote: Fri 30 Jul, 2021 10:55 Но она не подошла, поскольку мне требуется не только "искать", но и переходить к найденному, и выделяя при этом все вхождения.
  1. У меня переходит к найденному.
  2. Для подсветки всех вхождений по test:search не хватает предопределённого поля в таблице параметров. Когда была добавлена эта опция в диалоге, она не была добавлена в API. Надо будет добавить (насчёт когда - пока не знаю).
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

LuaFAR Search

Post by John Doe »

Спасибо, нашёл ошибку у себя.
Насчёт highlight - это может быть как параметр поиска, так и глобальная настройка.

И пожелание насчёт ещё одной опции: запоминать поиск так, чтобы вызываемые следом repeat и repeat_rev использовали те же параметры.
Last edited by John Doe on Fri 30 Jul, 2021 12:26, edited 1 time in total.
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaFAR Search

Post by Shmuel »

John Doe wrote: Fri 30 Jul, 2021 12:24 Насчёт highlight - это может быть как параметр поиска, так и глобальная настройка.
Если речь об интерактивном режиме, то значение запоминается из диалога, и действует, пока его не сбросишь, т.е. является глобальной настройкой.
Если речь о режиме скрипта, то там у всех опущенных параметров есть умолчательные значения, у булевых это false. Нет смысла усложнять и вводить для этого настройку, если уж пишется скрипт, то придётся явно добавить bHighlight=true.
Или я вас неправильно понял?
Post Reply

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