kraeved
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору shmuz Спасибо за наводку на Александра Буняка! Подзабыл его, ибо перестал ходить на форум Фара, а мужик-то толковый, отзывчивый. «Христос воскресе» говорю, а он: «И вас с Международным днём солидарности трудящихся». Согласовали ТЗ и через час появился макрос SelectFolders.lua По Shift+Grey+ задаю маску plug* По Shift+Grey* инвертирую выделение Код: -- SelectFolders.lua -- v1.0 -- Select folders by mask and invert selection -- Keys: ShiftGrey+ and ShiftGrey* -- Author: buniak_a_h local F = far.Flags Macro { id = "D69016E3-B4E5-4A0E-B6A0-5DBD3BD9C042", area = "Shell", key = "ShiftAdd ShiftMultiply", description = "Отметка папок по маске", action = function(data) local cMask = akey(1) == "ShiftMultiply" and "*.*" or far.InputBox( win.Uuid "CFFF36FA-ABA8-466B-9FE3-0EC313D0FADF", "Отметка папок по маске", "Введите маску", "Masks", nil, nil, nil, {FIB_BUTTONS = 1, FIB_NOAMPERSAND = 1, FIB_EXPANDENV = 1} ) if cMask then if far.ProcessName(F.PN_CHECKMASK, cMask) then local aSel = {} for i = 1, APanel.ItemCount do if band(Panel.Item(0, i, 2), 0x00000010) == 0x00000010 then local fn = Panel.Item(0, i, 0) if fn ~= "." and fn ~= ".." then if far.ProcessName(F.PN_CMPNAMELIST, cMask, fn, F.PN_SKIPPATH) then aSel[#aSel + 1] = ("%q"):format(fn) end end end end Panel.Select(0, (akey(1) == "ShiftMultiply" and 2 or 1), 2, table.concat(aSel, "\n")) else far.Message("Некорректная маска", "Отметка папок по маске", nil, "we") end end end } |
| Всего записей: 1000 | Зарегистр. 01-03-2003 | Отправлено: 00:36 09-05-2021 | Исправлено: kraeved, 00:44 09-05-2021 |
|