Alexyz21
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: local DLGITEMTYPE_EDIT,DLGITEMTYPE_PSWEDIT,DLGITEMTYPE_FIXEDIT=4,5,6 local DialogTools_MainGuid="B2EC2264-0F55-4B86-87F7-F1392B8FC5DC" local DialogTools_UndoGuid="1117C0E3-76BA-443D-90E3-89D20C45F364" local DialogTools_EditGuid="D0C5118D-E750-4E00-A4D4-0E0E0063571F" local DialogTools_PwShGuid="C8D4D4A4-943B-436F-8414-D36CBAF37C53" local function inEditField() return Dlg.ItemType==DLGITEMTYPE_EDIT or Dlg.ItemType==DLGITEMTYPE_FIXEDIT end local function callUndoRedo(stepKey) Plugin.Menu(DialogTools_MainGuid,DialogTools_UndoGuid) Keys(stepKey..' '..'Enter') end Macro { description="DialogTools: Undo"; area="Dialog"; key="CtrlZ AltBS"; condition=inEditField; action=function() callUndoRedo('') end } Macro { description="DialogTools: Redo"; area="Dialog"; key="CtrlShiftZ AltShiftBS"; condition=inEditField; action=function() callUndoRedo('Up') end } Macro { description="DialogTools: Edit"; area="Dialog"; key="F4"; condition=function() return Dlg.Id~="20089D97-090F-4897-8AA0-09189746FF0D" and inEditField() end; action=function() Plugin.Menu(DialogTools_MainGuid,DialogTools_EditGuid) end } Macro { description="DialogTools: Show password"; area="Dialog"; key="F3"; condition=function() return Dlg.ItemType==DLGITEMTYPE_PSWEDIT end; action=function() Plugin.Menu(DialogTools_MainGuid,DialogTools_PwShGuid) end } local patt = {AltO=regex.new("[\\w\\-]+"),CtrlO=regex.new("\\S+")} Macro { description="DialogTools: Paste word under cursor"; area="Dialog"; key="AltO CtrlO"; condition=inEditField; action=function() local s = editor.GetStringW() if not s then return end local pos,pEnd = editor.GetInfo().CurPos,s.StringLength+1 if pos > pEnd then return elseif pos == pEnd then pos = pos-1 end local text,start = s.StringText.."\0",1 while true do local b,e = patt[akey(1)]:findW(text,start) --far.Show(b,e) if b == nil or b > pos then break elseif e >= pos then print(win.Utf16ToUtf8(win.subW(text,b,e))) break end start = e+1 end end } |
| Всего записей: 3484 | Зарегистр. 16-06-2007 | Отправлено: 23:25 15-05-2017 | Исправлено: Alexyz21, 23:33 15-05-2017 |
|