implemented breakpoints hints for source editor

git-svn-id: trunk@3119 -
This commit is contained in:
mattias 2002-08-18 08:57:44 +00:00
parent 4e3c148fcc
commit bf2faf1d8c

View File

@ -1174,14 +1174,14 @@ begin
end; end;
function TSourceEditor.GetBreakPointMark(const ALine: Integer): TSynEditMark; function TSourceEditor.GetBreakPointMark(const ALine: Integer): TSynEditMark;
var var
n: Integer; n: Integer;
AllMarks: TSynEditMarks; AllMarks: TSynEditMarks;
begin begin
FEditor.Marks.GetMarksForLine(ALine, AllMarks); FEditor.Marks.GetMarksForLine(ALine, AllMarks);
for n := 1 to maxMarks do for n := 1 to maxMarks do
begin begin
Result := AllMarks[n]; Result := AllMarks[n];
if IsBreakPointMark(Result) then Exit; if IsBreakPointMark(Result) then Exit;
end; end;
@ -4007,7 +4007,10 @@ var
ASynEdit: TSynEdit; ASynEdit: TSynEdit;
EditCaret: TPoint; EditCaret: TPoint;
LineMarks: TSynEditMarks; LineMarks: TSynEditMarks;
LineMark: TSynEditMark; AMark: TSourceMark;
i: integer;
HintStr: String;
CurHint: String;
begin begin
// hide other hints // hide other hints
Application.HideHint; Application.HideHint;
@ -4021,12 +4024,19 @@ begin
if (EditCaret.Y<1) then exit; if (EditCaret.Y<1) then exit;
if EditPos.X<ASynEdit.Gutter.Width then begin if EditPos.X<ASynEdit.Gutter.Width then begin
// hint for a gutter item // hint for a gutter item
ASynEdit.Marks.GetMarksForLine(EditCaret.Y,LineMarks); if EditorOpts.ShowGutterHints then begin
LineMark:=LineMarks[Low(TSynEditMarks)]; ASynEdit.Marks.GetMarksForLine(EditCaret.Y,LineMarks);
if LineMark<>nil then begin HintStr:='';
for i:=Low(TSynEditMarks) to High(TSynEditMarks) do begin
// ToDo: give a hint about the mark (e.g. breakpoint properties) AMark:=TSourceMark(LineMarks[i]);
if not (AMark is TSourceMark) then continue;
CurHint:=AMark.GetHint;
if CurHint='' then continue;
if HintStr<>'' then HintStr:=HintStr+EndOfLine;
HintStr:=HintStr+CurHint;
end;
if HintStr<>'' then
ActivateHint(MousePos,HintStr);
end; end;
end else begin end else begin
// hint for source // hint for source