Code: Select all
<?xml version="1.0" encoding="UTF-8" ?>
<farconfig version="3.0.2381">
<macros>
<keymacros>
<macro area="Editor" key="ShiftHome" flags="DisableOutput" description="Fix поведения выделения в редакторе при ShiftHome (актуален пока FAR не поправят). © SimSU">
<text>
<![CDATA[
%comment="Fix поведения выделения в редакторе при ShiftHome (актуален пока FAR не поправят). © SimSU";
$IF (editor.sel(0,4) == 1) %comment="Выделен обычный блок, возможен глюк.";
%seY=editor.sel(0,2); %seX=editor.sel(0,3); %comment="Запомнили конец выделения.";
%сY=editor.pos(0,1); %cX=editor.pos(0,2); %comment="Запомнили положение курсора.";
$IF ((%seY==%сY)&&(%seX==%cX)) %comment="Курсор стоит в конце выделения и ShiftHome приведёт к глюку.";
%sbY=editor.sel(0,0); %sbX=editor.sel(0,1); %comment="Запомнили начало выделения.";
editor.pos(1,1,%sbY) editor.pos(1,2,%sbX) editor.sel(2,0) %comment="Возобновили отметку начала блока.";
editor.pos(1,1,%seY) editor.pos(1,2,1) editor.sel(2,1) %comment="Пофиксили конец выделения!";
$ELSE
ShiftHome
$END
$ELSE
ShiftHome
$END
]]>
</text>
</macro>
</keymacros>
</macros>
</farconfig>