VisualCompare — макрос запуска плагина

Здесь обсуждается всё, что касается макросов.
Post Reply
ccaid
Posts: 805
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 9 times
Been thanked: 5 times

VisualCompare — макрос запуска плагина

Post by ccaid » Fri 02 Dec, 2016 21:10

Текущий вариант моего старинного макроса.

Три варианта применения:
• на текущей панели выделены два файла — сравниваем их (первый всегда слева);
• на текущей панели выделен один файл И в буфере имеется валидное имя файла — сравниваем их (файл из буфера всегда слева);
• в остальных случаях — сравниваем текущие файлы панелей (файл с левой панели всегда слева).
Code: [Select all] [Expand/Collapse] [Download] (VisualCompare.lua)
  1. local VisComp    = 'AF4DAB38-C00A-4653-900E-7A8230308010'
  2.  
  3.  
  4.  
  5. Macro {
  6.  
  7.   area="Shell"; key="AltV"; flags=""; description="Визуальное сравнение файлов (либо выделенных на активной, либо один из буфера и другой выделенный на активной, либо под курсорами на панелях)";
  8.  
  9.   condition = function()
  10.  
  11.     return Plugin.Exist(VisComp)
  12.  
  13.   end;
  14.  
  15.   action = function()
  16.  
  17.     local LN, RN
  18.  
  19.     local File = far.PasteFromClipboard():match"[^\r\n]+"
  20.  
  21.     if APanel.SelCount==2 then
  22.  
  23.       LN = (APanel.UNCPath~="" and APanel.UNCPath.."\\" or "")..panel.GetSelectedPanelItem(nil,1,1).FileName
  24.  
  25.       RN = (APanel.UNCPath~="" and APanel.UNCPath.."\\" or "")..panel.GetSelectedPanelItem(nil,1,2).FileName
  26.  
  27.     elseif APanel.SelCount==1 and win.GetFileAttr(File) then
  28.  
  29.       LN = File
  30.  
  31.       RN = (APanel.UNCPath~="" and APanel.UNCPath.."\\" or "")..panel.GetSelectedPanelItem(nil,1,1).FileName
  32.  
  33.     else
  34.  
  35.       LN = (PPanel.UNCPath~="" and PPanel.UNCPath.."\\" or "")..PPanel.Current
  36.  
  37.       RN = (APanel.UNCPath~="" and APanel.UNCPath.."\\" or "")..APanel.Current
  38.  
  39.       if APanel.Left then
  40.  
  41.         LN, RN = RN, LN
  42.  
  43.       end
  44.  
  45.     end
  46.  
  47.     Plugin.Command(VisComp, "\""..LN.."\" \""..RN.."\"")
  48.  
  49.   end;
  50.  
  51. }
VisualCompare.lua.7z
(712 Bytes) Downloaded 29 times
Фар делают добрые люди

Post Reply

Return to “Обсуждение макросов”

Who is online

Users browsing this forum: No registered users and 1 guest