|
| 1 | +// |
| 2 | +// ��������������� ����� ��� ������� EditFind. (�) Maximus5, SimSU, Max Rusov |
| 3 | +// |
| 4 | +// ��� ������������: |
| 5 | +// |
| 6 | +// ������ RAlt � �� �������� �������� �����. ����� ���� ������������ �� ���� ������ ����� xlat. |
| 7 | +// RAltBS - ������� ��������� ��������� ������. |
| 8 | +// RAlt - �������� ��������� ����� |
| 9 | +// ��� ����������� ������ ������/����� ������������ ��������������� ������� ������� EdtFind |
| 10 | +// |
| 11 | +// ��������� EdtFind v.8+ |
| 12 | +// http://code.google.com/p/far-plugins/wiki/EdtFind |
| 13 | +// |
| 14 | + |
| 15 | + |
| 16 | +const EdtFind = 0x444E4645 |
| 17 | +const RemoveHilight = 8 |
| 18 | + |
| 19 | +;; Set to 0 to disable xlat(two language) search with RegExp |
| 20 | +const UseXLat = 1 |
| 21 | +;; |
| 22 | +const HilightFrom = 2 |
| 23 | + |
| 24 | + |
| 25 | +macro Descr = "Edt Find: Leap search begin" Area = "Editor" Key = "RAlt:Down" |
| 26 | +{{ |
| 27 | + %%EditFindLeap = ""; |
| 28 | +}} |
| 29 | + |
| 30 | + |
| 31 | +macro |
| 32 | + Descr="Edt Find: Leap search continue" |
| 33 | + Area="Editor" |
| 34 | + Bind="RAltA RAltB RAltC RAltD RAltE RAltF RAltG RAltH RAltI RAltJ RAltK RAltL RAltM RAltN RAltO RAltP RAltQ RAltR RAltS RAltT RAltU RAltV RAltW RAltX RAltY RAltZ" |
| 35 | + Bind="RAlt1 RAlt2 RAlt3 RAlt4 RAlt5 RAlt6 RAlt7 RAlt8 RAlt9 RAlt0" |
| 36 | + Bind="RAlt[ RAlt] RAlt; RAlt' RAlt` RAlt. RAlt, RAlt- RAltShift- RAlt= RAltShift= RAltShift`" |
| 37 | + Bind="RAltShift1 RAltShift2 RAltShift3 RAltShift4 RAltShift5 RAltShift6 RAltShift7 RAltShift8 RAltShift9 RAltShift0" |
| 38 | + Bind="RAltBS" |
| 39 | +{{ |
| 40 | + $if (!callplugin(#%EdtFind, "")) |
| 41 | +// MsgBox("Error", "EdtFind plugin not installed") |
| 42 | + $exit |
| 43 | + $end |
| 44 | + |
| 45 | + %s = substr(Key(#AKey), 4); |
| 46 | + |
| 47 | + %Opt = "Loop:0 Error:0 "; |
| 48 | + |
| 49 | + $if (%s == "BS") |
| 50 | + %%EditFindLeap = substr(%%EditFindLeap, 0, len(%%EditFindLeap)-1); //��� �� � 1803 ��������. |
| 51 | + $if (%%EditFindLeap == "") |
| 52 | + CallPlugin(#%EdtFind, #%RemoveHilight) |
| 53 | + $exit |
| 54 | + $end |
| 55 | + $else |
| 56 | + $if (%%EditFindLeap == "") |
| 57 | + %Opt = %Opt + "Entire:1 "; |
| 58 | + $end |
| 59 | + |
| 60 | + $IF (%s == "Shift-") %s = "_"; $END |
| 61 | + $IF (%s == "Shift=") %s = "+"; $END |
| 62 | + $IF (%s == "Shift0") %s = ")"; $END |
| 63 | + $IF (%s == "Shift9") %s = "("; $END |
| 64 | + $IF (%s == "Shift8") %s = "*"; $END |
| 65 | + $IF (%s == "Shift7") %s = "&"; $END |
| 66 | + $IF (%s == "Shift6") %s = "^"; $END |
| 67 | + $IF (%s == "Shift5") %s = "%"; $END |
| 68 | + $IF (%s == "Shift4") %s = "$"; $END |
| 69 | + $IF (%s == "Shift3") %s = "#"; $END |
| 70 | + $IF (%s == "Shift2") %s = "@"; $END |
| 71 | + $IF (%s == "Shift1") %s = "!"; $END |
| 72 | + $IF (%s == "Shift`") %s = "~"; $END |
| 73 | + |
| 74 | + %%EditFindLeap = %%EditFindLeap + %s; |
| 75 | + $end |
| 76 | + |
| 77 | + $if (len(%%EditFindLeap) < #%HilightFrom) |
| 78 | + %Opt = %Opt + "Highlight:0 "; |
| 79 | + $end |
| 80 | + |
| 81 | + %Find = %%EditFindLeap; |
| 82 | + $if (#%UseXLat == 1) |
| 83 | + %XFind = xlat("Z"+%Find); // �������� ������������ xlat, |
| 84 | + %XFind = substr(%XFind,1); // � �� �� ������� ����� ������������ � ������ |
| 85 | + $if (%XFind != %Find) |
| 86 | + %Find = "(\\Q" + %Find + "\\E)|(\\Q" + %XFind + "\\E)"; |
| 87 | + %Opt = %Opt + "RegExp:1 "; |
| 88 | + $end |
| 89 | + $end |
| 90 | + |
| 91 | + $if (!callplugin(#%EdtFind, %Opt + "Find " + %Find)) |
| 92 | + %%EditFindLeap = substr(%%EditFindLeap, 0, -1); |
| 93 | + |
| 94 | + %Find = %%EditFindLeap; |
| 95 | + %Opt = ""; |
| 96 | + $if (#%UseXLat == 1) |
| 97 | + %XFind = xlat(%Find); |
| 98 | + $if (%XFind != %Find) |
| 99 | + %Find = "(\\Q" + %Find + "\\E)|(\\Q" + %XFind + "\\E)"; |
| 100 | + %Opt = %Opt + "RegExp:1 "; |
| 101 | + $end |
| 102 | + $end |
| 103 | + callplugin(#%EdtFind, %Opt + "Mark " + %Find) |
| 104 | + |
| 105 | + Beep(0x10) |
| 106 | + $end |
| 107 | +}} |
| 108 | + |
| 109 | + |
| 110 | +macro Descr="Edt Find: Leap search cancel" Area="Editor" key="RAlt:Release" |
| 111 | +{{ |
| 112 | + CallPlugin(#%EdtFind, #%RemoveHilight) |
| 113 | +//CtrlU |
| 114 | +}} |
0 commit comments