mirror of https://gitlab.com/basile.b/dexed.git
Aadd an editor command to show the warning text of the current line, close #198
This commit is contained in:
parent
debbe9001c
commit
4f14753d0f
|
@ -339,6 +339,8 @@ type
|
||||||
procedure toggleCurLineBreakpoint;
|
procedure toggleCurLineBreakpoint;
|
||||||
procedure insertDdocTemplate;
|
procedure insertDdocTemplate;
|
||||||
procedure gotoLinePrompt;
|
procedure gotoLinePrompt;
|
||||||
|
procedure showWarningForLine(line: integer);
|
||||||
|
procedure showCurLineWarning;
|
||||||
function implementMain: THasMain;
|
function implementMain: THasMain;
|
||||||
procedure replaceUndoableContent(const value: string);
|
procedure replaceUndoableContent(const value: string);
|
||||||
procedure setDscannerOptions(dsEnabled: boolean; dsDelay: integer);
|
procedure setDscannerOptions(dsEnabled: boolean; dsDelay: integer);
|
||||||
|
@ -426,6 +428,7 @@ const
|
||||||
ecNextWarning = ecUserFirst + 26;
|
ecNextWarning = ecUserFirst + 26;
|
||||||
ecPrevWarning = ecUserFirst + 27;
|
ecPrevWarning = ecUserFirst + 27;
|
||||||
ecGotoLine = ecUserFirst + 28;
|
ecGotoLine = ecUserFirst + 28;
|
||||||
|
ecShowCurlineWarning = ecUserFirst + 29;
|
||||||
|
|
||||||
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.
|
||||||
|
@ -1158,6 +1161,7 @@ begin
|
||||||
AddKey(ecPrevWarning, 0, [], 0, []);
|
AddKey(ecPrevWarning, 0, [], 0, []);
|
||||||
AddKey(ecNextWarning, 0, [], 0, []);
|
AddKey(ecNextWarning, 0, [], 0, []);
|
||||||
AddKey(ecGotoLine, 0, [], 0, []);
|
AddKey(ecGotoLine, 0, [], 0, []);
|
||||||
|
AddKey(ecShowCurlineWarning, 0, [], 0, []);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -1192,6 +1196,7 @@ begin
|
||||||
'ecPrevWarning': begin Int := ecPrevWarning; exit(true); end;
|
'ecPrevWarning': begin Int := ecPrevWarning; exit(true); end;
|
||||||
'ecNextWarning': begin Int := ecNextWarning; exit(true); end;
|
'ecNextWarning': begin Int := ecNextWarning; exit(true); end;
|
||||||
'ecGotoLine': begin Int := ecGotoLine; exit(true); end;
|
'ecGotoLine': begin Int := ecGotoLine; exit(true); end;
|
||||||
|
'ecShowCurlineWarning': begin Int := ecShowCurlineWarning; exit(true); end;
|
||||||
else exit(false);
|
else exit(false);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -1227,6 +1232,7 @@ begin
|
||||||
ecPrevWarning: begin Ident := 'ecPrevWarning'; exit(true); end;
|
ecPrevWarning: begin Ident := 'ecPrevWarning'; exit(true); end;
|
||||||
ecNextWarning: begin Ident := 'ecNextWarning'; exit(true); end;
|
ecNextWarning: begin Ident := 'ecNextWarning'; exit(true); end;
|
||||||
ecGotoLine: begin Ident := 'ecGotoLine'; exit(true); end;
|
ecGotoLine: begin Ident := 'ecGotoLine'; exit(true); end;
|
||||||
|
ecShowCurlineWarning: begin Ident := 'ecShowCurlineWarning'; exit(true); end;
|
||||||
else exit(false);
|
else exit(false);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -1305,6 +1311,8 @@ begin
|
||||||
goToWarning(true);
|
goToWarning(true);
|
||||||
ecGotoLine:
|
ecGotoLine:
|
||||||
gotoLinePrompt;
|
gotoLinePrompt;
|
||||||
|
ecShowCurlineWarning:
|
||||||
|
showCurLineWarning;
|
||||||
end;
|
end;
|
||||||
if fOverrideColMode and not SelAvail then
|
if fOverrideColMode and not SelAvail then
|
||||||
begin
|
begin
|
||||||
|
@ -1776,6 +1784,33 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCESynMemo.showWarningForLine(line: integer);
|
||||||
|
var
|
||||||
|
s: string;
|
||||||
|
p: TPoint;
|
||||||
|
c: TPoint = (x: 0; y: 0);
|
||||||
|
begin
|
||||||
|
s := getDscannerWarning(line);
|
||||||
|
if s.isNotEmpty then
|
||||||
|
begin
|
||||||
|
p.x := 0;
|
||||||
|
p.y := line;
|
||||||
|
p := RowColumnToPixels(p);
|
||||||
|
c := ClientToScreen(c);
|
||||||
|
p.Offset(c);
|
||||||
|
s := 'Warning(s):' + LineEnding + s;
|
||||||
|
fDDocWin.FontSize := Font.Size;
|
||||||
|
fDDocWin.HintRect := fDDocWin.CalcHintRect(0, s, nil);
|
||||||
|
fDDocWin.OffsetHintRect(p, Font.Size);
|
||||||
|
fDDocWin.ActivateHint(fDDocWin.HintRect, s);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCESynMemo.showCurLineWarning;
|
||||||
|
begin
|
||||||
|
showWarningForLine(CaretY);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCESynMemo.goToChangedArea(next: boolean);
|
procedure TCESynMemo.goToChangedArea(next: boolean);
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
|
@ -3227,24 +3262,14 @@ end;
|
||||||
procedure TCESynMemo.showHintEvent(Sender: TObject; HintInfo: PHintInfo);
|
procedure TCESynMemo.showHintEvent(Sender: TObject; HintInfo: PHintInfo);
|
||||||
var
|
var
|
||||||
p: TPoint;
|
p: TPoint;
|
||||||
s: string;
|
|
||||||
begin
|
begin
|
||||||
if cursor <> crDefault then
|
if cursor <> crDefault then
|
||||||
exit;
|
exit;
|
||||||
p := ScreenToClient(mouse.CursorPos);
|
p := ScreenToClient(mouse.CursorPos);
|
||||||
if p.x > Gutter.MarksPart.Width then
|
if p.x > Gutter.MarksPart.Width then
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
p := self.PixelsToRowColumn(p);
|
p := self.PixelsToRowColumn(p);
|
||||||
s := getDscannerWarning(p.y);
|
showWarningForLine(p.y);
|
||||||
if s.isNotEmpty then
|
|
||||||
begin
|
|
||||||
s := 'Warning(s):' + LineEnding + s;
|
|
||||||
fDDocWin.FontSize := Font.Size;
|
|
||||||
fDDocWin.HintRect := fDDocWin.CalcHintRect(0, s, nil);
|
|
||||||
fDDocWin.OffsetHintRect(mouse.CursorPos, Font.Size);
|
|
||||||
fDDocWin.ActivateHint(fDDocWin.HintRect, s);
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESynMemo.removeDebugTimeMarks;
|
procedure TCESynMemo.removeDebugTimeMarks;
|
||||||
|
|
Loading…
Reference in New Issue