mirror of https://gitlab.com/basile.b/dexed.git
memo, sources regions
This commit is contained in:
parent
ad9e8ccc69
commit
d61cef1997
|
@ -16,7 +16,7 @@ type
|
||||||
|
|
||||||
TCESynMemo = class;
|
TCESynMemo = class;
|
||||||
|
|
||||||
// breakpoint added if not removed
|
// breakpoint added or removed
|
||||||
TBreakPointModifyEvent = procedure(sender: TCESynMemo; line: integer;
|
TBreakPointModifyEvent = procedure(sender: TCESynMemo; line: integer;
|
||||||
removed: boolean) of object;
|
removed: boolean) of object;
|
||||||
|
|
||||||
|
@ -193,7 +193,7 @@ type
|
||||||
|
|
||||||
var
|
var
|
||||||
D2Syn: TSynD2Syn; // used as model to set the options when no editor exists.
|
D2Syn: TSynD2Syn; // used as model to set the options when no editor exists.
|
||||||
LfmSyn: TSynLfmSyn;
|
LfmSyn: TSynLfmSyn; // used to highlight the native project format.
|
||||||
TxtSyn: TSynTxtSyn; // used as model to set the options when no editor exists.
|
TxtSyn: TSynTxtSyn; // used as model to set the options when no editor exists.
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
@ -378,6 +378,8 @@ end;
|
||||||
{$ENDREGION --------------------------------------------------------------------}
|
{$ENDREGION --------------------------------------------------------------------}
|
||||||
|
|
||||||
{$REGION TCESynMemo ------------------------------------------------------------}
|
{$REGION TCESynMemo ------------------------------------------------------------}
|
||||||
|
|
||||||
|
{$REGION Standard Obj and Comp -------------------------------------------------}
|
||||||
constructor TCESynMemo.Create(aOwner: TComponent);
|
constructor TCESynMemo.Create(aOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
|
@ -466,112 +468,6 @@ begin
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure SetDefaultCoeditKeystrokes(ed: TSynEdit);
|
|
||||||
begin
|
|
||||||
with ed do begin
|
|
||||||
Keystrokes.Clear;
|
|
||||||
//
|
|
||||||
AddKey(ecUp, VK_UP, [], 0, []);
|
|
||||||
AddKey(ecSelUp, VK_UP, [ssShift], 0, []);
|
|
||||||
AddKey(ecScrollUp, VK_UP, [ssCtrl], 0, []);
|
|
||||||
AddKey(ecDown, VK_DOWN, [], 0, []);
|
|
||||||
AddKey(ecSelDown, VK_DOWN, [ssShift], 0, []);
|
|
||||||
AddKey(ecScrollDown, VK_DOWN, [ssCtrl], 0, []);
|
|
||||||
AddKey(ecLeft, VK_LEFT, [], 0, []);
|
|
||||||
AddKey(ecSelLeft, VK_LEFT, [ssShift], 0, []);
|
|
||||||
AddKey(ecWordLeft, VK_LEFT, [ssCtrl], 0, []);
|
|
||||||
AddKey(ecSelWordLeft, VK_LEFT, [ssShift,ssCtrl], 0, []);
|
|
||||||
AddKey(ecRight, VK_RIGHT, [], 0, []);
|
|
||||||
AddKey(ecSelRight, VK_RIGHT, [ssShift], 0, []);
|
|
||||||
AddKey(ecWordRight, VK_RIGHT, [ssCtrl], 0, []);
|
|
||||||
AddKey(ecSelWordRight, VK_RIGHT, [ssShift,ssCtrl], 0, []);
|
|
||||||
AddKey(ecPageDown, VK_NEXT, [], 0, []);
|
|
||||||
AddKey(ecSelPageDown, VK_NEXT, [ssShift], 0, []);
|
|
||||||
AddKey(ecPageBottom, VK_NEXT, [ssCtrl], 0, []);
|
|
||||||
AddKey(ecSelPageBottom, VK_NEXT, [ssShift,ssCtrl], 0, []);
|
|
||||||
AddKey(ecPageUp, VK_PRIOR, [], 0, []);
|
|
||||||
AddKey(ecSelPageUp, VK_PRIOR, [ssShift], 0, []);
|
|
||||||
AddKey(ecPageTop, VK_PRIOR, [ssCtrl], 0, []);
|
|
||||||
AddKey(ecSelPageTop, VK_PRIOR, [ssShift,ssCtrl], 0, []);
|
|
||||||
AddKey(ecLineStart, VK_HOME, [], 0, []);
|
|
||||||
AddKey(ecSelLineStart, VK_HOME, [ssShift], 0, []);
|
|
||||||
AddKey(ecEditorTop, VK_HOME, [ssCtrl], 0, []);
|
|
||||||
AddKey(ecSelEditorTop, VK_HOME, [ssShift,ssCtrl], 0, []);
|
|
||||||
AddKey(ecLineEnd, VK_END, [], 0, []);
|
|
||||||
AddKey(ecSelLineEnd, VK_END, [ssShift], 0, []);
|
|
||||||
AddKey(ecEditorBottom, VK_END, [ssCtrl], 0, []);
|
|
||||||
AddKey(ecSelEditorBottom, VK_END, [ssShift,ssCtrl], 0, []);
|
|
||||||
AddKey(ecToggleMode, VK_INSERT, [], 0, []);
|
|
||||||
AddKey(ecDeleteChar, VK_DELETE, [], 0, []);
|
|
||||||
AddKey(ecDeleteLastChar, VK_BACK, [], 0, []);
|
|
||||||
AddKey(ecDeleteLastWord, VK_BACK, [ssCtrl], 0, []);
|
|
||||||
AddKey(ecLineBreak, VK_RETURN, [], 0, []);
|
|
||||||
AddKey(ecSelectAll, ord('A'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecCopy, ord('C'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecBlockIndent, ord('I'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecInsertLine, ord('N'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecDeleteWord, ord('T'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecBlockUnindent, ord('U'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecPaste, ord('V'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecCut, ord('X'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecDeleteLine, ord('Y'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecDeleteEOL, ord('Y'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecUndo, ord('Z'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecRedo, ord('Z'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecGotoMarker0, ord('0'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecGotoMarker1, ord('1'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecGotoMarker2, ord('2'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecGotoMarker3, ord('3'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecGotoMarker4, ord('4'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecGotoMarker5, ord('5'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecGotoMarker6, ord('6'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecGotoMarker7, ord('7'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecGotoMarker8, ord('8'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecGotoMarker9, ord('9'), [ssCtrl], 0, []);
|
|
||||||
AddKey(ecSetMarker0, ord('0'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecSetMarker1, ord('1'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecSetMarker2, ord('2'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecSetMarker3, ord('3'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecSetMarker4, ord('4'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecSetMarker5, ord('5'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecSetMarker6, ord('6'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecSetMarker7, ord('7'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecSetMarker8, ord('8'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecSetMarker9, ord('9'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecFoldLevel1, ord('1'), [ssAlt,ssShift], 0, []);
|
|
||||||
AddKey(ecFoldLevel2, ord('2'), [ssAlt,ssShift], 0, []);
|
|
||||||
AddKey(ecFoldLevel3, ord('3'), [ssAlt,ssShift], 0, []);
|
|
||||||
AddKey(ecFoldLevel4, ord('4'), [ssAlt,ssShift], 0, []);
|
|
||||||
AddKey(ecFoldLevel5, ord('5'), [ssAlt,ssShift], 0, []);
|
|
||||||
AddKey(ecFoldLevel6, ord('6'), [ssAlt,ssShift], 0, []);
|
|
||||||
AddKey(ecFoldLevel7, ord('7'), [ssAlt,ssShift], 0, []);
|
|
||||||
AddKey(ecFoldLevel8, ord('8'), [ssAlt,ssShift], 0, []);
|
|
||||||
AddKey(ecFoldLevel9, ord('9'), [ssAlt,ssShift], 0, []);
|
|
||||||
AddKey(ecFoldLevel0, ord('0'), [ssAlt,ssShift], 0, []);
|
|
||||||
AddKey(ecFoldCurrent, ord('-'), [ssAlt,ssShift], 0, []);
|
|
||||||
AddKey(ecUnFoldCurrent, ord('+'), [ssAlt,ssShift], 0, []);
|
|
||||||
AddKey(EcToggleMarkupWord, ord('M'), [ssAlt], 0, []);
|
|
||||||
AddKey(ecNormalSelect, ord('N'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecColumnSelect, ord('C'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecLineSelect, ord('L'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecTab, VK_TAB, [], 0, []);
|
|
||||||
AddKey(ecShiftTab, VK_TAB, [ssShift], 0, []);
|
|
||||||
AddKey(ecMatchBracket, ord('B'), [ssCtrl,ssShift], 0, []);
|
|
||||||
AddKey(ecColSelUp, VK_UP, [ssAlt, ssShift], 0, []);
|
|
||||||
AddKey(ecColSelDown, VK_DOWN, [ssAlt, ssShift], 0, []);
|
|
||||||
AddKey(ecColSelLeft, VK_LEFT, [ssAlt, ssShift], 0, []);
|
|
||||||
AddKey(ecColSelRight, VK_RIGHT, [ssAlt, ssShift], 0, []);
|
|
||||||
AddKey(ecColSelPageDown, VK_NEXT, [ssAlt, ssShift], 0, []);
|
|
||||||
AddKey(ecColSelPageBottom, VK_NEXT, [ssAlt, ssShift,ssCtrl], 0, []);
|
|
||||||
AddKey(ecColSelPageUp, VK_PRIOR, [ssAlt, ssShift], 0, []);
|
|
||||||
AddKey(ecColSelPageTop, VK_PRIOR, [ssAlt, ssShift,ssCtrl], 0, []);
|
|
||||||
AddKey(ecColSelLineStart, VK_HOME, [ssAlt, ssShift], 0, []);
|
|
||||||
AddKey(ecColSelLineEnd, VK_END, [ssAlt, ssShift], 0, []);
|
|
||||||
AddKey(ecColSelEditorTop, VK_HOME, [ssAlt, ssShift,ssCtrl], 0, []);
|
|
||||||
AddKey(ecColSelEditorBottom, VK_END, [ssAlt, ssShift,ssCtrl], 0, []);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCESynMemo.setDefaultFontSize(aValue: Integer);
|
procedure TCESynMemo.setDefaultFontSize(aValue: Integer);
|
||||||
var
|
var
|
||||||
old: Integer;
|
old: Integer;
|
||||||
|
@ -604,6 +500,7 @@ begin
|
||||||
fCompletion.Deactivate;
|
fCompletion.Deactivate;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
{$ENDREGION --------------------------------------------------------------------}
|
||||||
|
|
||||||
{$REGION DDoc & CallTip --------------------------------------------------------}
|
{$REGION DDoc & CallTip --------------------------------------------------------}
|
||||||
procedure TCESynMemo.InitHintWins;
|
procedure TCESynMemo.InitHintWins;
|
||||||
|
@ -751,6 +648,7 @@ begin
|
||||||
end;
|
end;
|
||||||
{$ENDREGION --------------------------------------------------------------------}
|
{$ENDREGION --------------------------------------------------------------------}
|
||||||
|
|
||||||
|
{$REGION Coedit memo things ----------------------------------------------------}
|
||||||
procedure TCESynMemo.SetHighlighter(const Value: TSynCustomHighlighter);
|
procedure TCESynMemo.SetHighlighter(const Value: TSynCustomHighlighter);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
|
@ -908,6 +806,132 @@ begin
|
||||||
fFileDate := newDate;
|
fFileDate := newDate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TCESynMemo.getMouseFileBytePos: Integer;
|
||||||
|
var
|
||||||
|
i, len, llen: Integer;
|
||||||
|
begin
|
||||||
|
result := 0;
|
||||||
|
if fMousePos.y-1 > Lines.Count-1 then exit;
|
||||||
|
llen := length(Lines.Strings[fMousePos.y-1]);
|
||||||
|
if fMousePos.X > llen then exit;
|
||||||
|
//
|
||||||
|
// something note really clear:
|
||||||
|
// TCEEditorWidget.getSymbolLoc works when using the line ending of the file.
|
||||||
|
// TCESynMemo.getMouseFileBytePos works when using the line ending from the system.
|
||||||
|
len := getSysLineEndLen;
|
||||||
|
for i:= 0 to fMousePos.y-2 do
|
||||||
|
result += length(Lines.Strings[i]) + len;
|
||||||
|
result += fMousePos.x;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure SetDefaultCoeditKeystrokes(ed: TSynEdit);
|
||||||
|
begin
|
||||||
|
with ed do begin
|
||||||
|
Keystrokes.Clear;
|
||||||
|
//
|
||||||
|
AddKey(ecUp, VK_UP, [], 0, []);
|
||||||
|
AddKey(ecSelUp, VK_UP, [ssShift], 0, []);
|
||||||
|
AddKey(ecScrollUp, VK_UP, [ssCtrl], 0, []);
|
||||||
|
AddKey(ecDown, VK_DOWN, [], 0, []);
|
||||||
|
AddKey(ecSelDown, VK_DOWN, [ssShift], 0, []);
|
||||||
|
AddKey(ecScrollDown, VK_DOWN, [ssCtrl], 0, []);
|
||||||
|
AddKey(ecLeft, VK_LEFT, [], 0, []);
|
||||||
|
AddKey(ecSelLeft, VK_LEFT, [ssShift], 0, []);
|
||||||
|
AddKey(ecWordLeft, VK_LEFT, [ssCtrl], 0, []);
|
||||||
|
AddKey(ecSelWordLeft, VK_LEFT, [ssShift,ssCtrl], 0, []);
|
||||||
|
AddKey(ecRight, VK_RIGHT, [], 0, []);
|
||||||
|
AddKey(ecSelRight, VK_RIGHT, [ssShift], 0, []);
|
||||||
|
AddKey(ecWordRight, VK_RIGHT, [ssCtrl], 0, []);
|
||||||
|
AddKey(ecSelWordRight, VK_RIGHT, [ssShift,ssCtrl], 0, []);
|
||||||
|
AddKey(ecPageDown, VK_NEXT, [], 0, []);
|
||||||
|
AddKey(ecSelPageDown, VK_NEXT, [ssShift], 0, []);
|
||||||
|
AddKey(ecPageBottom, VK_NEXT, [ssCtrl], 0, []);
|
||||||
|
AddKey(ecSelPageBottom, VK_NEXT, [ssShift,ssCtrl], 0, []);
|
||||||
|
AddKey(ecPageUp, VK_PRIOR, [], 0, []);
|
||||||
|
AddKey(ecSelPageUp, VK_PRIOR, [ssShift], 0, []);
|
||||||
|
AddKey(ecPageTop, VK_PRIOR, [ssCtrl], 0, []);
|
||||||
|
AddKey(ecSelPageTop, VK_PRIOR, [ssShift,ssCtrl], 0, []);
|
||||||
|
AddKey(ecLineStart, VK_HOME, [], 0, []);
|
||||||
|
AddKey(ecSelLineStart, VK_HOME, [ssShift], 0, []);
|
||||||
|
AddKey(ecEditorTop, VK_HOME, [ssCtrl], 0, []);
|
||||||
|
AddKey(ecSelEditorTop, VK_HOME, [ssShift,ssCtrl], 0, []);
|
||||||
|
AddKey(ecLineEnd, VK_END, [], 0, []);
|
||||||
|
AddKey(ecSelLineEnd, VK_END, [ssShift], 0, []);
|
||||||
|
AddKey(ecEditorBottom, VK_END, [ssCtrl], 0, []);
|
||||||
|
AddKey(ecSelEditorBottom, VK_END, [ssShift,ssCtrl], 0, []);
|
||||||
|
AddKey(ecToggleMode, VK_INSERT, [], 0, []);
|
||||||
|
AddKey(ecDeleteChar, VK_DELETE, [], 0, []);
|
||||||
|
AddKey(ecDeleteLastChar, VK_BACK, [], 0, []);
|
||||||
|
AddKey(ecDeleteLastWord, VK_BACK, [ssCtrl], 0, []);
|
||||||
|
AddKey(ecLineBreak, VK_RETURN, [], 0, []);
|
||||||
|
AddKey(ecSelectAll, ord('A'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecCopy, ord('C'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecBlockIndent, ord('I'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecInsertLine, ord('N'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecDeleteWord, ord('T'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecBlockUnindent, ord('U'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecPaste, ord('V'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecCut, ord('X'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecDeleteLine, ord('Y'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecDeleteEOL, ord('Y'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecUndo, ord('Z'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecRedo, ord('Z'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecGotoMarker0, ord('0'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecGotoMarker1, ord('1'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecGotoMarker2, ord('2'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecGotoMarker3, ord('3'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecGotoMarker4, ord('4'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecGotoMarker5, ord('5'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecGotoMarker6, ord('6'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecGotoMarker7, ord('7'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecGotoMarker8, ord('8'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecGotoMarker9, ord('9'), [ssCtrl], 0, []);
|
||||||
|
AddKey(ecSetMarker0, ord('0'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecSetMarker1, ord('1'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecSetMarker2, ord('2'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecSetMarker3, ord('3'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecSetMarker4, ord('4'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecSetMarker5, ord('5'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecSetMarker6, ord('6'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecSetMarker7, ord('7'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecSetMarker8, ord('8'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecSetMarker9, ord('9'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecFoldLevel1, ord('1'), [ssAlt,ssShift], 0, []);
|
||||||
|
AddKey(ecFoldLevel2, ord('2'), [ssAlt,ssShift], 0, []);
|
||||||
|
AddKey(ecFoldLevel3, ord('3'), [ssAlt,ssShift], 0, []);
|
||||||
|
AddKey(ecFoldLevel4, ord('4'), [ssAlt,ssShift], 0, []);
|
||||||
|
AddKey(ecFoldLevel5, ord('5'), [ssAlt,ssShift], 0, []);
|
||||||
|
AddKey(ecFoldLevel6, ord('6'), [ssAlt,ssShift], 0, []);
|
||||||
|
AddKey(ecFoldLevel7, ord('7'), [ssAlt,ssShift], 0, []);
|
||||||
|
AddKey(ecFoldLevel8, ord('8'), [ssAlt,ssShift], 0, []);
|
||||||
|
AddKey(ecFoldLevel9, ord('9'), [ssAlt,ssShift], 0, []);
|
||||||
|
AddKey(ecFoldLevel0, ord('0'), [ssAlt,ssShift], 0, []);
|
||||||
|
AddKey(ecFoldCurrent, ord('-'), [ssAlt,ssShift], 0, []);
|
||||||
|
AddKey(ecUnFoldCurrent, ord('+'), [ssAlt,ssShift], 0, []);
|
||||||
|
AddKey(EcToggleMarkupWord, ord('M'), [ssAlt], 0, []);
|
||||||
|
AddKey(ecNormalSelect, ord('N'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecColumnSelect, ord('C'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecLineSelect, ord('L'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecTab, VK_TAB, [], 0, []);
|
||||||
|
AddKey(ecShiftTab, VK_TAB, [ssShift], 0, []);
|
||||||
|
AddKey(ecMatchBracket, ord('B'), [ssCtrl,ssShift], 0, []);
|
||||||
|
AddKey(ecColSelUp, VK_UP, [ssAlt, ssShift], 0, []);
|
||||||
|
AddKey(ecColSelDown, VK_DOWN, [ssAlt, ssShift], 0, []);
|
||||||
|
AddKey(ecColSelLeft, VK_LEFT, [ssAlt, ssShift], 0, []);
|
||||||
|
AddKey(ecColSelRight, VK_RIGHT, [ssAlt, ssShift], 0, []);
|
||||||
|
AddKey(ecColSelPageDown, VK_NEXT, [ssAlt, ssShift], 0, []);
|
||||||
|
AddKey(ecColSelPageBottom, VK_NEXT, [ssAlt, ssShift,ssCtrl], 0, []);
|
||||||
|
AddKey(ecColSelPageUp, VK_PRIOR, [ssAlt, ssShift], 0, []);
|
||||||
|
AddKey(ecColSelPageTop, VK_PRIOR, [ssAlt, ssShift,ssCtrl], 0, []);
|
||||||
|
AddKey(ecColSelLineStart, VK_HOME, [ssAlt, ssShift], 0, []);
|
||||||
|
AddKey(ecColSelLineEnd, VK_END, [ssAlt, ssShift], 0, []);
|
||||||
|
AddKey(ecColSelEditorTop, VK_HOME, [ssAlt, ssShift,ssCtrl], 0, []);
|
||||||
|
AddKey(ecColSelEditorBottom, VK_END, [ssAlt, ssShift,ssCtrl], 0, []);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
{$ENDREGION --------------------------------------------------------------------}
|
||||||
|
|
||||||
|
{$REGION user input ------------------------------------------------------------}
|
||||||
procedure TCESynMemo.KeyDown(var Key: Word; Shift: TShiftState);
|
procedure TCESynMemo.KeyDown(var Key: Word; Shift: TShiftState);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
|
@ -957,24 +981,6 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCESynMemo.getMouseFileBytePos: Integer;
|
|
||||||
var
|
|
||||||
i, len, llen: Integer;
|
|
||||||
begin
|
|
||||||
result := 0;
|
|
||||||
if fMousePos.y-1 > Lines.Count-1 then exit;
|
|
||||||
llen := length(Lines.Strings[fMousePos.y-1]);
|
|
||||||
if fMousePos.X > llen then exit;
|
|
||||||
//
|
|
||||||
// something note really clear:
|
|
||||||
// TCEEditorWidget.getSymbolLoc works when using the line ending of the file.
|
|
||||||
// TCESynMemo.getMouseFileBytePos works when using the line ending from the system.
|
|
||||||
len := getSysLineEndLen;
|
|
||||||
for i:= 0 to fMousePos.y-2 do
|
|
||||||
result += length(Lines.Strings[i]) + len;
|
|
||||||
result += fMousePos.x;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCESynMemo.MouseLeave;
|
procedure TCESynMemo.MouseLeave;
|
||||||
begin
|
begin
|
||||||
fDDocWin.Hide;
|
fDDocWin.Hide;
|
||||||
|
@ -1029,7 +1035,9 @@ begin
|
||||||
fCanShowHint:=false;
|
fCanShowHint:=false;
|
||||||
fHintTimer.Enabled:=false;
|
fHintTimer.Enabled:=false;
|
||||||
end;
|
end;
|
||||||
|
{$ENDREGION --------------------------------------------------------------------}
|
||||||
|
|
||||||
|
{$REGION breakpoints -----------------------------------------------------------}
|
||||||
function TCESynMemo.breakPointsCount: integer;
|
function TCESynMemo.breakPointsCount: integer;
|
||||||
begin
|
begin
|
||||||
exit(fBreakPoints.Count);
|
exit(fBreakPoints.Count);
|
||||||
|
@ -1094,6 +1102,8 @@ begin
|
||||||
end;
|
end;
|
||||||
{$ENDREGION --------------------------------------------------------------------}
|
{$ENDREGION --------------------------------------------------------------------}
|
||||||
|
|
||||||
|
{$ENDREGION --------------------------------------------------------------------}
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
D2Syn := TSynD2Syn.create(nil);
|
D2Syn := TSynD2Syn.create(nil);
|
||||||
LfmSyn := TSynLFMSyn.Create(nil);
|
LfmSyn := TSynLFMSyn.Create(nil);
|
||||||
|
|
Loading…
Reference in New Issue