mirror of https://gitlab.com/basile.b/dexed.git
add commands to goto next / prev warning
This commit is contained in:
parent
1fd020978a
commit
b0c14cc3ef
|
@ -58,6 +58,10 @@ type
|
||||||
MenuItem10: TMenuItem;
|
MenuItem10: TMenuItem;
|
||||||
MenuItem11: TMenuItem;
|
MenuItem11: TMenuItem;
|
||||||
MenuItem12: TMenuItem;
|
MenuItem12: TMenuItem;
|
||||||
|
MenuItem13: TMenuItem;
|
||||||
|
MenuItem14: TMenuItem;
|
||||||
|
mnuedPrevWarn: TMenuItem;
|
||||||
|
mnuedNextWarn: TMenuItem;
|
||||||
mnuedDdocTmp: TMenuItem;
|
mnuedDdocTmp: TMenuItem;
|
||||||
mnuedPrevProtGrp: TMenuItem;
|
mnuedPrevProtGrp: TMenuItem;
|
||||||
mnuedNextProtGrp: TMenuItem;
|
mnuedNextProtGrp: TMenuItem;
|
||||||
|
@ -91,11 +95,13 @@ type
|
||||||
editorStatus: TStatusBar;
|
editorStatus: TStatusBar;
|
||||||
mnuEditor: TPopupMenu;
|
mnuEditor: TPopupMenu;
|
||||||
procedure mnuedDdocTmpClick(Sender: TObject);
|
procedure mnuedDdocTmpClick(Sender: TObject);
|
||||||
|
procedure mnuedNextWarnClick(Sender: TObject);
|
||||||
procedure mnuedPrevProtGrpClick(Sender: TObject);
|
procedure mnuedPrevProtGrpClick(Sender: TObject);
|
||||||
procedure mnuedNextProtGrpClick(Sender: TObject);
|
procedure mnuedNextProtGrpClick(Sender: TObject);
|
||||||
procedure mnuedNextCareaClick(Sender: TObject);
|
procedure mnuedNextCareaClick(Sender: TObject);
|
||||||
procedure mnuedPrevCareaClick(Sender: TObject);
|
procedure mnuedPrevCareaClick(Sender: TObject);
|
||||||
procedure mnuedLowcaseClick(Sender: TObject);
|
procedure mnuedLowcaseClick(Sender: TObject);
|
||||||
|
procedure mnuedPrevWarnClick(Sender: TObject);
|
||||||
procedure mnuedSortLinesClick(Sender: TObject);
|
procedure mnuedSortLinesClick(Sender: TObject);
|
||||||
procedure mnuedUpcaseClick(Sender: TObject);
|
procedure mnuedUpcaseClick(Sender: TObject);
|
||||||
procedure MenuItem5Click(Sender: TObject);
|
procedure MenuItem5Click(Sender: TObject);
|
||||||
|
@ -334,6 +340,8 @@ begin
|
||||||
AssignPng(mnuedSortLines.Bitmap, 'SORT_AZ');
|
AssignPng(mnuedSortLines.Bitmap, 'SORT_AZ');
|
||||||
AssignPng(mnuedNextProtGrp.Bitmap, 'GO_NEXT');
|
AssignPng(mnuedNextProtGrp.Bitmap, 'GO_NEXT');
|
||||||
AssignPng(mnuedPrevProtGrp.Bitmap, 'GO_PREVIOUS');
|
AssignPng(mnuedPrevProtGrp.Bitmap, 'GO_PREVIOUS');
|
||||||
|
AssignPng(mnuedNextWarn.Bitmap, 'GO_NEXT');
|
||||||
|
AssignPng(mnuedPrevWarn.Bitmap, 'GO_PREVIOUS');
|
||||||
//
|
//
|
||||||
EntitiesConnector.addObserver(self);
|
EntitiesConnector.addObserver(self);
|
||||||
EntitiesConnector.addSingleService(self);
|
EntitiesConnector.addSingleService(self);
|
||||||
|
@ -884,6 +892,12 @@ begin
|
||||||
fDoc.CommandProcessor(ecLowerCaseWordOrSel, #0, nil);
|
fDoc.CommandProcessor(ecLowerCaseWordOrSel, #0, nil);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCEEditorWidget.mnuedPrevWarnClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if fDoc.isNotNil then
|
||||||
|
fDoc.previousWarning;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCEEditorWidget.mnuedSortLinesClick(Sender: TObject);
|
procedure TCEEditorWidget.mnuedSortLinesClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if fDoc.isNotNil then
|
if fDoc.isNotNil then
|
||||||
|
@ -908,6 +922,12 @@ begin
|
||||||
fDoc.insertDdocTemplate;
|
fDoc.insertDdocTemplate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCEEditorWidget.mnuedNextWarnClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if fDoc.isNotNil then
|
||||||
|
fDoc.nextWarning;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCEEditorWidget.mnuedNextProtGrpClick(Sender: TObject);
|
procedure TCEEditorWidget.mnuedNextProtGrpClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if fDoc.isNotNil then
|
if fDoc.isNotNil then
|
||||||
|
|
|
@ -253,8 +253,9 @@ type
|
||||||
function lexCanCloseBrace: boolean;
|
function lexCanCloseBrace: boolean;
|
||||||
function lexInDdoc: char;
|
function lexInDdoc: char;
|
||||||
procedure handleStatusChanged(Sender: TObject; Changes: TSynStatusChanges);
|
procedure handleStatusChanged(Sender: TObject; Changes: TSynStatusChanges);
|
||||||
procedure gotoToChangedArea(next: boolean);
|
procedure goToChangedArea(next: boolean);
|
||||||
procedure gotoToProtectionGroup(next: boolean);
|
procedure goToProtectionGroup(next: boolean);
|
||||||
|
procedure goToWarning(next: boolean);
|
||||||
procedure autoClosePair(value: TAutoClosedPair);
|
procedure autoClosePair(value: TAutoClosedPair);
|
||||||
procedure setSelectionOrWordCase(upper: boolean);
|
procedure setSelectionOrWordCase(upper: boolean);
|
||||||
procedure sortSelectedLines(descending, caseSensitive: boolean);
|
procedure sortSelectedLines(descending, caseSensitive: boolean);
|
||||||
|
@ -319,6 +320,8 @@ type
|
||||||
procedure nextChangedArea;
|
procedure nextChangedArea;
|
||||||
procedure previousProtectionGroup;
|
procedure previousProtectionGroup;
|
||||||
procedure nextProtectionGroup;
|
procedure nextProtectionGroup;
|
||||||
|
procedure previousWarning;
|
||||||
|
procedure nextWarning;
|
||||||
procedure sortLines;
|
procedure sortLines;
|
||||||
procedure addCurLineBreakPoint;
|
procedure addCurLineBreakPoint;
|
||||||
procedure removeCurLineBreakPoint;
|
procedure removeCurLineBreakPoint;
|
||||||
|
@ -406,7 +409,9 @@ const
|
||||||
ecAddBreakpoint = ecUserFirst + 22;
|
ecAddBreakpoint = ecUserFirst + 22;
|
||||||
ecRemoveBreakpoint = ecUserFirst + 23;
|
ecRemoveBreakpoint = ecUserFirst + 23;
|
||||||
ecToggleBreakpoint = ecUserFirst + 24;
|
ecToggleBreakpoint = ecUserFirst + 24;
|
||||||
ecInsertDdocTemplate = ecUserFirst + 25;
|
ecInsertDdocTemplate = ecUserFirst + 25;
|
||||||
|
ecNextWarning = ecUserFirst + 26;
|
||||||
|
ecPrevWarning = ecUserFirst + 27;
|
||||||
|
|
||||||
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.
|
||||||
|
@ -1095,6 +1100,8 @@ begin
|
||||||
AddKey(ecRemoveBreakpoint, 0, [], 0, []);
|
AddKey(ecRemoveBreakpoint, 0, [], 0, []);
|
||||||
AddKey(ecToggleBreakpoint, 0, [], 0, []);
|
AddKey(ecToggleBreakpoint, 0, [], 0, []);
|
||||||
AddKey(ecInsertDdocTemplate, 0, [], 0, []);
|
AddKey(ecInsertDdocTemplate, 0, [], 0, []);
|
||||||
|
AddKey(ecPrevWarning, 0, [], 0, []);
|
||||||
|
AddKey(ecNextWarning, 0, [], 0, []);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -1126,6 +1133,8 @@ begin
|
||||||
'ecRemoveBreakpoint': begin Int := ecRemoveBreakpoint; exit(true); end;
|
'ecRemoveBreakpoint': begin Int := ecRemoveBreakpoint; exit(true); end;
|
||||||
'ecToggleBreakpoint': begin Int := ecToggleBreakpoint; exit(true); end;
|
'ecToggleBreakpoint': begin Int := ecToggleBreakpoint; exit(true); end;
|
||||||
'ecInsertDdocTemplate': begin Int := ecInsertDdocTemplate; exit(true); end;
|
'ecInsertDdocTemplate': begin Int := ecInsertDdocTemplate; exit(true); end;
|
||||||
|
'ecPrevWarning': begin Int := ecPrevWarning; exit(true); end;
|
||||||
|
'ecNextWarning': begin Int := ecNextWarning; exit(true); end;
|
||||||
else exit(false);
|
else exit(false);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -1158,6 +1167,8 @@ begin
|
||||||
ecRemoveBreakpoint: begin Ident := 'ecRemoveBreakpoint'; exit(true); end;
|
ecRemoveBreakpoint: begin Ident := 'ecRemoveBreakpoint'; exit(true); end;
|
||||||
ecToggleBreakpoint: begin Ident := 'ecToggleBreakpoint'; exit(true); end;
|
ecToggleBreakpoint: begin Ident := 'ecToggleBreakpoint'; exit(true); end;
|
||||||
ecInsertDdocTemplate: begin Ident := 'ecInsertDdocTemplate'; exit(true); end;
|
ecInsertDdocTemplate: begin Ident := 'ecInsertDdocTemplate'; exit(true); end;
|
||||||
|
ecPrevWarning: begin Ident := 'ecPrevWarning'; exit(true); end;
|
||||||
|
ecNextWarning: begin Ident := 'ecNextWarning'; exit(true); end;
|
||||||
else exit(false);
|
else exit(false);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -1209,9 +1220,9 @@ begin
|
||||||
ecShowPhobosDoc:
|
ecShowPhobosDoc:
|
||||||
ShowPhobosDoc;
|
ShowPhobosDoc;
|
||||||
ecNextChangedArea:
|
ecNextChangedArea:
|
||||||
gotoToChangedArea(true);
|
goToChangedArea(true);
|
||||||
ecPreviousChangedArea:
|
ecPreviousChangedArea:
|
||||||
gotoToChangedArea(false);
|
goToChangedArea(false);
|
||||||
ecUpperCaseWordOrSel:
|
ecUpperCaseWordOrSel:
|
||||||
setSelectionOrWordCase(true);
|
setSelectionOrWordCase(true);
|
||||||
ecLowerCaseWordOrSel:
|
ecLowerCaseWordOrSel:
|
||||||
|
@ -1230,6 +1241,10 @@ begin
|
||||||
toggleCurLineBreakpoint;
|
toggleCurLineBreakpoint;
|
||||||
ecInsertDdocTemplate:
|
ecInsertDdocTemplate:
|
||||||
insertDdocTemplate;
|
insertDdocTemplate;
|
||||||
|
ecPrevWarning:
|
||||||
|
goToWarning(false);
|
||||||
|
ecNextWarning:
|
||||||
|
goToWarning(true);
|
||||||
end;
|
end;
|
||||||
if fOverrideColMode and not SelAvail then
|
if fOverrideColMode and not SelAvail then
|
||||||
begin
|
begin
|
||||||
|
@ -1660,15 +1675,25 @@ end;
|
||||||
|
|
||||||
procedure TCESynMemo.nextChangedArea;
|
procedure TCESynMemo.nextChangedArea;
|
||||||
begin
|
begin
|
||||||
gotoToChangedArea(true);
|
goToChangedArea(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESynMemo.previousChangedArea;
|
procedure TCESynMemo.previousChangedArea;
|
||||||
begin
|
begin
|
||||||
gotoToChangedArea(false);
|
goToChangedArea(false);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESynMemo.gotoToChangedArea(next: boolean);
|
procedure TCESynMemo.previousWarning;
|
||||||
|
begin
|
||||||
|
goToWarning(false);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCESynMemo.nextWarning;
|
||||||
|
begin
|
||||||
|
goToWarning(true);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCESynMemo.goToChangedArea(next: boolean);
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
s: TSynLineState;
|
s: TSynLineState;
|
||||||
|
@ -1709,7 +1734,7 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESynMemo.gotoToProtectionGroup(next: boolean);
|
procedure TCESynMemo.goToProtectionGroup(next: boolean);
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
tk0, tk1: PLexToken;
|
tk0, tk1: PLexToken;
|
||||||
|
@ -1743,14 +1768,49 @@ begin
|
||||||
ExecuteCommand(ecGotoXY, #0, @tk^.position);
|
ExecuteCommand(ecGotoXY, #0, @tk^.position);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCESynMemo.goToWarning(next: boolean);
|
||||||
|
var
|
||||||
|
i: integer;
|
||||||
|
j: integer = -1;
|
||||||
|
begin
|
||||||
|
if not next then
|
||||||
|
begin
|
||||||
|
for i:= 0 to fDscannerResults.count-1 do
|
||||||
|
begin
|
||||||
|
j := i - 1;
|
||||||
|
if fDscannerResults.item[i]^.line >= caretY then
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
if j <> -1 then
|
||||||
|
begin
|
||||||
|
CaretY:= fDscannerResults.item[j]^.line;
|
||||||
|
EnsureCursorPosVisible;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
for i:= fDscannerResults.count-1 downto 0 do
|
||||||
|
begin
|
||||||
|
j := i + 1;
|
||||||
|
if fDscannerResults.item[i]^.line <= caretY then
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
if j < fDscannerResults.count then
|
||||||
|
begin
|
||||||
|
CaretY:= fDscannerResults.item[j]^.line;
|
||||||
|
EnsureCursorPosVisible;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCESynMemo.previousProtectionGroup;
|
procedure TCESynMemo.previousProtectionGroup;
|
||||||
begin
|
begin
|
||||||
gotoToProtectionGroup(false);
|
goToProtectionGroup(false);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESynMemo.nextProtectionGroup;
|
procedure TCESynMemo.nextProtectionGroup;
|
||||||
begin
|
begin
|
||||||
gotoToProtectionGroup(true);
|
goToProtectionGroup(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCESynMemo.implementMain: THasMain;
|
function TCESynMemo.implementMain: THasMain;
|
||||||
|
|
Loading…
Reference in New Issue