Page 21 of 22

LuaFAR Search

Posted: Fri 13 Nov, 2009 07:29
by Shmuel
Здесь можно обсуждать плагин LuaFAR Search. (Анонс).

LuaFAR Search

Posted: Wed 07 Nov, 2018 12:21
by sToLp

Latest post of the previous page:

Shmuel wrote:
Wed 07 Nov, 2018 11:55
Чтобы работало, курсор должен стоять на любой строчке из результатов поиска, тогда произойдёт переход в правильный файл и именно на то место, где стоял курсор.
Увы. В том то и дело, что и так с самого начала я тоже пробовал. И ни чего...
А переход примитивным макросом я привёл только для того, чтобы показать, что сам то греп плагином весьма удачно формируется.

LuaFAR Search

Posted: Wed 07 Nov, 2018 12:26
by HaRT
Shmuel wrote:
Wed 07 Nov, 2018 11:55
Это не должно работать, так не задумано.
Предложение: в случае перехода из строки с именем файла переходить в самое начало этого файла.

LuaFAR Search

Posted: Wed 07 Nov, 2018 13:42
by Shmuel
sToLp, может быть дело в том, что вы нажимаете CtrlShiftQ, а оригинальный макрос повешен на CtrlShiftG ?

HaRT, да, уже подумал об этом, может быть сделаю, хотя это не типичный сценарий работы.

LuaFAR Search

Posted: Wed 07 Nov, 2018 14:02
by sToLp
Shmuel wrote:
Wed 07 Nov, 2018 13:42
может быть дело в том, что вы нажимаете CtrlShiftQ, а оригинальный макрос повешен на CtrlShiftG ?
Нет. Я каждый раз пробую вызывать макрос и через CtrlShiftG, и через Macro Browser.

Сейчас перешёл на другую машину. Там тоже Win10x64, но более свежая версия — LTSC. Попытаю удачи на ней и о результатах сообщу.

LuaFAR Search

Posted: Wed 07 Nov, 2018 14:26
by Shmuel
sToLp, поскольку это макрос, 10-15 строк всего, то вы можете легко определить, что у вас происходит, вставив в разные места макроса вывод на экран, например, far.Show(1),far.Show(2),far.Show(3) и т.д. для начала. Будет видно как проходит исполнение. Макрос такого размера отладить не то что легко, а очень легко.

LuaFAR Search

Posted: Wed 07 Nov, 2018 14:27
by sToLp
В Win10x64 LTSC Ru попробовал запускать макрос и в Far30b5267.x86.20180915, и в Far30b5298.x86.20181027.
К сожалению, результат тот же.

А нельзя ли этот макрос разложить на эпизоды и потом попытаться отловить момент, на котором он застопорится?

LuaFAR Search

Posted: Wed 07 Nov, 2018 14:55
by sToLp
Макрос разложил следующим образом:

Code: Select all

Macro {
  description="Jump from Grep results to file and position under cursor";
  area="Editor"; key="CtrlShiftG";
  			action=function()
far.Show(0)
    		  local lnum = editor.GetString(nil,nil,3):match("^(%d+)[:%-]")
far.Show(1)
    		  if not lnum then return end
far.Show(2)
    		  local EI = editor.GetInfo()
far.Show(3)
    		  for n = EI.CurLine-1,1,-1 do
far.Show(4)
    		    local fname = editor.GetString(nil,n,3):match("^%[%d+%]%s+(.+)")
far.Show(5)
    		    if fname then
    		      editor.Editor(fname,nil,nil,nil,nil,nil,
    		        {EF_NONMODAL=1,EF_IMMEDIATERETURN=1,EF_ENABLE_F6=1,EF_OPENMODE_USEEXISTING=1},
    		        lnum, math.max(1, EI.CurPos-lnum:len()-1))
far.Show(6)
    		      break
    		    end
far.Show(7)
    		  end
far.Show(8)
  		    end;
}
Появляются номер 0 и 1, а 2 уже не появляется.

LuaFAR Search

Posted: Wed 07 Nov, 2018 15:08
by Shmuel
Теперь вместо far.Show(0) поставьте far.Show(editor.GetString(nil,nil,3)).

LuaFAR Search

Posted: Wed 07 Nov, 2018 15:15
by sToLp

Code: Select all

╔════════════════╗
║  1│ "Cancel"   ║
║  2│ ♪          ║
║   │            ║
╚═ 2 arguments ══╝

LuaFAR Search

Posted: Wed 07 Nov, 2018 15:22
by Shmuel
У вас курсор во время вызова макроса стоял на строке редактора с содержимым "Cancel" ?

LuaFAR Search

Posted: Wed 07 Nov, 2018 15:22
by sToLp
Да.

LuaFAR Search

Posted: Wed 07 Nov, 2018 15:27
by Shmuel
Всё, я понял в чём дело. Действительно, проблема в макросе. Макрос не учитывает, что опция "Показывать номера строк" может быть выключена. Спасибо за репорт, сегодня исправлю. Но если эта опция выключена, переход будет происходить на начало файла.

LuaFAR Search

Posted: Wed 07 Nov, 2018 15:32
by sToLp
Shmuel wrote:
Wed 07 Nov, 2018 15:27
Но если эта опция выключена, переход будет происходить на начало файла.
Как считаете нужным. Только надо будет об этом указать в инструкции.

LuaFAR Search

Posted: Wed 07 Nov, 2018 15:38
by Shmuel
В инструкции к макросу? Можно поставить там комментарий в 1 строчку.
При выключенной опции "Показывать номера строк" макросу неоткуда брать номер строки для точного перехода.
Можно, правда, организовать поиск по всему содержимому строки, но это уже костыль, делать не буду.

LuaFAR Search

Posted: Wed 07 Nov, 2018 15:51
by sToLp
Shmuel wrote:
Wed 07 Nov, 2018 15:38
Можно поставить там комментарий в 1 строчку.
Да, что-то в этом роде. А ещё бы хорошо было бы при переходе в файл в случае выключенной опции также выдавать предварительное сообщение о желательности её включения. Типа того сообщения как когда макросы обновляются. Что если включите опцию, то переход будет более конкретным, что ли.

LuaFAR Search

Posted: Wed 07 Nov, 2018 16:30
by sToLp
Кстати, а не правильнее ли было бы в плагине опцию "Показывать номера строк" для результатов Grep сделать по умолчанию включённой?

LuaFAR Search

Posted: Wed 07 Nov, 2018 16:38
by Shmuel
Трудно сказать, что правильнее, для этого надо знать предпочтения пользователей.
Но поскольку значение этой опции сохраняется в базе данных плагина, то достаточно сделать один поиск с включённой опцией, и она останется включённой на постоянной основе (пока пользователь не сбросит).