LuaFAR Search
- Mauro72
- Posts: 220
- Joined: Wed 11 Aug, 2010 00:23
- Location: Rosario, Argentina
- Been thanked: 9 times
LuaFAR Search
Latest post of the previous page:
Spanish translation update to last version: Excellent plugin Shmuel.-
- Posts: 6834
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
LuaFAR Search
gotar
reader.dl - это вспомогательная утилита для быстрого чтения файлов, исходный код написан на Си.
ucd.dl - вы правильно определили.
Обе утилиты предназначены для внутреннего использования плагином, а не какого-либо иного использования.
Исходный код плагина на данный момент не выложен в свободный доступ.
reader.dl - это вспомогательная утилита для быстрого чтения файлов, исходный код написан на Си.
ucd.dl - вы правильно определили.
Обе утилиты предназначены для внутреннего использования плагином, а не какого-либо иного использования.
Исходный код плагина на данный момент не выложен в свободный доступ.
- John Doe
- Бюрократ
- Posts: 13847
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
LuaFAR Search
Заинтересовался темой http://forum.farmanager.com/viewtopic.p ... 84#p140484, и попробовал оформить это пользовательским скриптом.
_usermenu.lua
quote.lua
_usermenu.lua
Code: Select all
AddToMenu("e",":sep:Quotes")
AddToMenu ("e", "&'...'", nil, "scripts/quote", "'","'")
AddToMenu ("e", "&[...]", nil, "scripts/quote", "[","]")
AddToMenu ("e", "&{...}", nil, "scripts/quote", "{","}")
Code: Select all
local a,b = unpack(...)
lfsearch.EditorAction("test:replace", {
bRegExpr=true,
sScope="block",
sOrigin="scope",
sSearchPat = ".+",
sReplacePat = a.."$0"..b,
})
- John Doe
- Бюрократ
- Posts: 13847
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
LuaFAR Search
Обнаружил только что после замены выделение неправильно (не только скриптом, но и интерактивно).
На примере quote.lua, если выделить слово unpack, то после замены выделение будет в 2 раза больше чем надо, т.е. вылезет за конец строки.
На примере quote.lua, если выделить слово unpack, то после замены выделение будет в 2 раза больше чем надо, т.е. вылезет за конец строки.
- John Doe
- Бюрократ
- Posts: 13847
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
LuaFAR Search
P.S.
И не обнаружил функции многострочной замены для скриптов..
А встроенная интерактивная для данной задачи не очень подходит тем что не учитывает позиции начала и конца выделения.
Учитывая это изменил _usermenu.lua так:
Подозреваю, что это не совсем идеологически правильно, но не нашёл другого пути запретить работу при многострочном выделении.
Логично было бы использовать sInitFunc, но в справке не сказано что с её помощью можно отменять замену.
И не обнаружил функции многострочной замены для скриптов..
А встроенная интерактивная для данной задачи не очень подходит тем что не учитывает позиции начала и конца выделения.
Учитывая это изменил _usermenu.lua так:
Code: Select all
local sel = editor.GetSelection()
if sel and sel.StartLine==sel.EndLine then
AddToMenu("e",":sep:Quotes")
AddToMenu ("e", "&'...'", nil, "scripts/quote", "'","'")
AddToMenu ("e", "&[...]", nil, "scripts/quote", "[","]")
AddToMenu ("e", "&{...}", nil, "scripts/quote", "{","}")
end
Логично было бы использовать sInitFunc, но в справке не сказано что с её помощью можно отменять замену.
Last edited by John Doe on Sat 03 Sep, 2016 13:43, edited 1 time in total.
-
- Posts: 6834
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
LuaFAR Search
Подтверждаю. Скорее всего, это недавно внесённый баг. Буду смотреть.
Она есть, только в хелпе её нет
Это так.
Есть bRepIsFunc.
- John Doe
- Бюрократ
- Posts: 13847
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
LuaFAR Search
Функция будет вызвана для каждого найденного вхождения в любом случае. Сдаётся, что мой метод прямолинейней).
Не вижу как полезно применить это неразличение.
Предлагаю выделение рассматривать строго, для вертикального блока тоже.
-
- Posts: 6834
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
LuaFAR Search
Ну там же вроде был смайлик "Sad", который не вошёл в цитату.
Логично. Если руки дойдут.
-
- Posts: 6834
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
LuaFAR Search
John Doe, вот все функции таблицы lfsearch:
Использование MReplaceEditorAction можно посмотреть в файле test_lfsearch.lua.
Code: Select all
╔══════════════════════════╗
║ 1│ EditorAction ║
║ 2│ MReplaceDialog ║
║ 3│ MReplaceEditorAction ║
║ 4│ ReplaceFromPanel ║
║ 5│ SearchFromPanel ║
║ 6│ SetDebugMode ║
╚══════ 6 arguments ═══════╝
-
- Posts: 6834
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
LuaFAR Search
Не прошло и года, и такая возможность уже есть. Правда сделано несколько по-другому: запроса пользователя нет, но в диалоге есть опция "Искать по кругу".
Last edited by Shmuel on Sat 17 Sep, 2016 08:49, edited 1 time in total.
LuaFAR Search
Давно перешел на использование этого плагина в повседневной работе, часто выручает, но вот столкнулся с такой задачей, когда надо в большом списке файлов произвести замену текста по регулярному выражению, причем так, что искомый текст содержит перенос строки, LuaFAR Search умеет делать поиск когда весь файл воспринимается как одна строка, но почему нет этой опции при замене текста? Как бы нет препятствий для того чтобы такая опция таки была...
Last edited by Sim on Tue 25 Oct, 2016 23:37, edited 1 time in total.
Случайности не случайны.