LuaFAR Search

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

LuaFAR Search

Post by Shmuel »

Здесь можно обсуждать плагин LuaFAR Search. (Анонс).
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 »

Latest post of the previous page:

Shmuel wrote: Wed 07 Nov, 2018 11:55Чтобы работало, курсор должен стоять на любой строчке из результатов поиска, тогда произойдёт переход в правильный файл и именно на то место, где стоял курсор.
Увы. В том то и дело, что и так с самого начала я тоже пробовал. И ни чего...
А переход примитивным макросом я привёл только для того, чтобы показать, что сам то греп плагином весьма удачно формируется.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

LuaFAR Search

Post by HaRT »

Shmuel wrote: Wed 07 Nov, 2018 11:55 Это не должно работать, так не задумано.
Предложение: в случае перехода из строки с именем файла переходить в самое начало этого файла.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

sToLp, может быть дело в том, что вы нажимаете CtrlShiftQ, а оригинальный макрос повешен на CtrlShiftG ?

HaRT, да, уже подумал об этом, может быть сделаю, хотя это не типичный сценарий работы.
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 wrote: Wed 07 Nov, 2018 13:42 может быть дело в том, что вы нажимаете CtrlShiftQ, а оригинальный макрос повешен на CtrlShiftG ?
Нет. Я каждый раз пробую вызывать макрос и через CtrlShiftG, и через Macro Browser.

Сейчас перешёл на другую машину. Там тоже Win10x64, но более свежая версия — LTSC. Попытаю удачи на ней и о результатах сообщу.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

sToLp, поскольку это макрос, 10-15 строк всего, то вы можете легко определить, что у вас происходит, вставив в разные места макроса вывод на экран, например, far.Show(1),far.Show(2),far.Show(3) и т.д. для начала. Будет видно как проходит исполнение. Макрос такого размера отладить не то что легко, а очень легко.
Last edited by Shmuel on Wed 07 Nov, 2018 14:26, edited 1 time in total.
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 »

В Win10x64 LTSC Ru попробовал запускать макрос и в Far30b5267.x86.20180915, и в Far30b5298.x86.20181027.
К сожалению, результат тот же.

А нельзя ли этот макрос разложить на эпизоды и потом попытаться отловить момент, на котором он застопорится?
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 »

Макрос разложил следующим образом:

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 уже не появляется.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Теперь вместо far.Show(0) поставьте far.Show(editor.GetString(nil,nil,3)).
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 »

Code: Select all

╔════════════════╗
║  1│ "Cancel"   ║
║  2│ ♪          ║
║   │            ║
╚═ 2 arguments ══╝
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

У вас курсор во время вызова макроса стоял на строке редактора с содержимым "Cancel" ?
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
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Всё, я понял в чём дело. Действительно, проблема в макросе. Макрос не учитывает, что опция "Показывать номера строк" может быть выключена. Спасибо за репорт, сегодня исправлю. Но если эта опция выключена, переход будет происходить на начало файла.
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 wrote: Wed 07 Nov, 2018 15:27Но если эта опция выключена, переход будет происходить на начало файла.
Как считаете нужным. Только надо будет об этом указать в инструкции.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

В инструкции к макросу? Можно поставить там комментарий в 1 строчку.
При выключенной опции "Показывать номера строк" макросу неоткуда брать номер строки для точного перехода.
Можно, правда, организовать поиск по всему содержимому строки, но это уже костыль, делать не буду.
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 wrote: Wed 07 Nov, 2018 15:38Можно поставить там комментарий в 1 строчку.
Да, что-то в этом роде. А ещё бы хорошо было бы при переходе в файл в случае выключенной опции также выдавать предварительное сообщение о желательности её включения. Типа того сообщения как когда макросы обновляются. Что если включите опцию, то переход будет более конкретным, что ли.
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 »

Кстати, а не правильнее ли было бы в плагине опцию "Показывать номера строк" для результатов Grep сделать по умолчанию включённой?
Post Reply

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