Улучшение макросов из поставки фара

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

Улучшение макросов из поставки фара

Post by John Doe » Thu 21 Mar, 2013 13:16

Тема служит для обсуждения штатных макросов из Addons\Macros.

Привёл макросы в соответствие с актуальными возможностями LuaMacro.
Прежде всего пообъединял где можно, пользуясь возможностью назначения макросу нескольких макрообластей и клавиш.

Конечно, многие макросы стоит вообще переработать, простор для улучшения есть, предлагайте.

Примечание: из обсуждения выделены следующие темы: Связанные темы:
Attachments
StdMacros.7z
(16.13 KiB) Downloaded 80 times

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

Улучшение макросов из поставки фара

Post by John Doe » Thu 21 Mar, 2013 13:20

Макрос ShiftF1.lua давно неактуален, рассчитан на MultiArc
Смысла View.CtrlUpDown.lua я вообще не понял.
Объясните кто знает

Edit: кусок обсуждения уплыл в отделённую тему.
Last edited by John Doe on Tue 04 Sep, 2018 11:27, edited 1 time in total.

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

Улучшение макросов из поставки фара

Post by John Doe » Thu 21 Mar, 2013 15:14

John Doe wrote:Прежде всего пообъединял где можно, пользуясь возможностью назначения макросу нескольких макрообластей и клавиш.
Больше всего изменился Edit.Notepad.lua, вместо 8 макросов 2

Code: Select all

local notepad={
  CtrlF = "F7",           --Find...
  F3    = "ShiftF7",      --Find Next
  CtrlH = "CtrlF7",       --Replace...
  CtrlG = "AltF8",        --Go To...
  CtrlN = "ShiftF4 Enter",--New File
  CtrlO = "ShiftF4",      --Open...
  CtrlS = "F2",           --Save File
}

Macro {description="Editor: like Notepad";
  area="Editor"; key="/([LR]Ctrl[FHGNOS])|F3/"; flags=""; action = function()
Keys(notepad[akey(1)])
  end;
}

Macro {description="Editor: Paste Time/Date";
  area="Editor"; key="F5"; flags=""; action = function()
mf.print(mf.date('%R %x'))
  end;
}
...
В архиве этого нет, но макросы Panel.CtrlLeft.lua и Panel.CtrlRight.lua можно объединить в Panel.CtrlLeftRight.lua

Last edited by John Doe on Wed 05 Sep, 2018 11:21, edited 1 time in total.

tstr
Posts: 522
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 7 times
Been thanked: 6 times

Re: Улучшение макросов из поставки фара

Post by tstr » Thu 21 Mar, 2013 15:22

Вы поаккуратнее с изменениями в поставке - такой способ (вызов ф-ции на многие клавиши) не срабатывает в автоматическом добавлении описания и шорткатов в помощь.

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

Re: Улучшение макросов из поставки фара

Post by John Doe » Thu 21 Mar, 2013 15:27

Но способ-то правильный.
Если с помощью что-то не так, то пишите на мантис.

tstr
Posts: 522
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 7 times
Been thanked: 6 times

Re: Улучшение макросов из поставки фара

Post by tstr » Thu 21 Mar, 2013 15:50

И как таким правильным способом в помощь попадут комментарии из функции, напр. "--Find Next"?

Shmuel
Posts: 5698
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 200 times

Re: Улучшение макросов из поставки фара

Post by Shmuel » Thu 21 Mar, 2013 15:51

John Doe wrote:

Code: Select all

  local d = akey(1) == "CtrlLeft" and "Up" or "Down")
  Keys('F9 Enter Up Enter'..d..'Enter Esc')
Неплохо бы вам проверять, что получилось. Это всё-таки программирование.

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

Улучшение макросов из поставки фара

Post by John Doe » Thu 21 Mar, 2013 15:54

Code: Select all

local dir = {CtrlLeft="Up", CtrlRight="Down"}
Macro {
  description="Change current drive";
  area="Shell"; key="CtrlLeft CtrlRight"; flags="EmptyCommandLine";
  action=function()
    Keys("F9 Enter Up Enter",dir[akey(1)],"Enter Esc")
  end;
}
Update:
Тут продолжение: http://forum.farmanager.com/viewtopic.php?f=15&t=9172
Last edited by John Doe on Wed 05 Sep, 2018 11:25, edited 1 time in total.

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

Улучшение макросов из поставки фара

Post by John Doe » Fri 22 Mar, 2013 16:40

Замена для Panel.Numpad.lua

Code: Select all

local Numpad={Multiply="*", Add="+", Subtract="-", Divide="/"}
local key="Multiply Add Subtract Divide"

Macro {description="Use numpad keys in command line"; 
  area="Shell ShellAutoCompletion"; key=key; flags="NotEmptyCommandLine"; 
  action = function() Keys(Numpad[akey(1)]) end;
}
Macro {description="Use numpad keys in command line"; 
  area="Search"; key=key;
  action = function() Keys(Numpad[akey(1)]) end;
}
Или

Code: Select all

Numpad={Multiply="*", Add="+", Subtract="-", Divide="/"}
Macro {description="Use numpad keys in command line"; 
  area="Shell ShellAutoCompletion Search"; key="Multiply Add Subtract Divide"; 
  condition=function() return not CmdLine.Empty or Area.Search end; 
  action = function() Keys(Numpad[akey(1)]) end;
}

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

Улучшение макросов из поставки фара

Post by John Doe » Sat 23 Mar, 2013 18:26

Замена для Panel.JumpToSelectedFile.lua
(обсуждение тут)


Smitis
Posts: 1563
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 16 times
Been thanked: 32 times
Contact:

Re: Улучшение макросов из поставки фара

Post by Smitis » Wed 24 Apr, 2013 17:48

Давно хочу спросить, а чем вызвано такое странное форматирование макросов (даже не знаю, как его назвать)?
Разум когда-нибудь победит.

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

Re: Улучшение макросов из поставки фара

Post by John Doe » Wed 24 Apr, 2013 17:51

Очевидно стремлением автора избежать "лишних" отступов.

Smitis
Posts: 1563
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 16 times
Been thanked: 32 times
Contact:

Re: Улучшение макросов из поставки фара

Post by Smitis » Wed 24 Apr, 2013 18:13

John Doe wrote:Очевидно стремлением автора избежать "лишних" отступов.
Чем же они лишние?
Разум когда-нибудь победит.

User avatar
den po
Posts: 59
Joined: Tue 30 Aug, 2005 07:53
Location: Чувашия, г.Чебоксары
Has thanked: 2 times
Contact:

Re: Улучшение макросов из поставки фара

Post by den po » Mon 11 Nov, 2013 08:08

shmuel 14.07.2013 00:25:05 +0200 - build 3518

1. Макросы: флаги "Selection" и "NoSelection" больше не применяются для областей редактора/вьювера/диалога.
Для этих областей следует использовать соответственно "EVSelection" и "NoEVSelection".
а тем временем с фаром до сих пор идут CtrlDel.lua и WindowsGUI.lua, в которых используется старый вариант flags="Selection"
JUST_DAn_PO

Shmuel
Posts: 5698
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 200 times

Re: Улучшение макросов из поставки фара

Post by Shmuel » Mon 11 Nov, 2013 08:21

den po wrote:а тем временем с фаром до сих пор идут CtrlDel.lua и WindowsGUI.lua, в которых используется старый вариант flags="Selection"
Большое спасибо за репорт. Исправлено.

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

Улучшение макросов из поставки фара

Post by John Doe » Fri 30 May, 2014 12:49

Addons\Macros\F3.lua
  1. Macro { description="Use internal editor as viewer";
  2.   area="Shell"; key="F3"; flags="NoPluginPanels NoFolders";
  3.   action = function()
  4.     Keys('F4')
  5.     if Area.Dialog then Keys('Enter') end
  6.     if Area.Editor and bit64.band(Editor.State,0x200)~=0x200 then Keys('CtrlL') end
  7.   end;
  8. }
Кто знает, для чего служит строка 5?
(Вероятно, она задумана чтобы согласиться с каким-то подтверждением, но соглашаться со всем подряд это не есть хорошо)

Update:
  1. В области добавлена Search (https://bugs.farmanager.com/view.php?id=2853)
  2. Разрешена работа на плагиновых панелях
  3. Добавлен ряд условий срабатывания (condition)
  1. local LOCKED = 0x200
  2. Macro {
  3.   description="Use internal editor as viewer";
  4.   area="Shell Search"; key="F3";
  5.   flags="NoSendKeysToPlugins";
  6.   condition=function()
  7.     return APanel.Visible
  8.        and not APanel.Empty
  9.        and not APanel.Folder
  10.        and (not APanel.Plugin or band(APanel.OPIFlags,far.Flags.OPIF_REALNAMES)~=0)
  11.   end;
  12.   action=function()
  13.     Keys"F4"
  14.     if Dlg.Id==far.Guids.EditorOpenRSHId then Keys"Enter" end
  15.     if Area.Editor and band(Editor.State,LOCKED)==0 then Keys"CtrlL" end
  16.   end;
  17. }
Last edited by John Doe on Thu 06 Sep, 2018 16:24, edited 1 time in total.

Post Reply

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