add page option detectModuleName

This commit is contained in:
Basile Burg 2016-08-11 21:38:25 +02:00
parent bdd275103d
commit d65c1cb7bd
2 changed files with 40 additions and 9 deletions

View File

@ -24,6 +24,7 @@ type
fMoveRight: TShortCut; fMoveRight: TShortCut;
fNextPage: TShortCut; fNextPage: TShortCut;
fPrevPage: TShortCut; fPrevPage: TShortCut;
fDetectModuleName: boolean;
fShCount: integer; fShCount: integer;
function optionedWantCategory(): string; function optionedWantCategory(): string;
function optionedWantEditorKind: TOptionEditorKind; function optionedWantEditorKind: TOptionEditorKind;
@ -42,6 +43,7 @@ type
property previousPage: TShortCut read fPrevPage write fPrevPage; property previousPage: TShortCut read fPrevPage write fPrevPage;
property moveLeft: TShortCut read fMoveLeft write fMoveLeft; property moveLeft: TShortCut read fMoveLeft write fMoveLeft;
property moveRight: TShortCut read fMoveRight write fMoveRight; property moveRight: TShortCut read fMoveRight write fMoveRight;
property detectModuleName: boolean read fDetectModuleName write fDetectModuleName default true;
public public
procedure assign(source: TPersistent); override; procedure assign(source: TPersistent); override;
procedure assignTo(target: TPersistent); override; procedure assignTo(target: TPersistent); override;
@ -111,6 +113,7 @@ type
procedure updateImperative; override; procedure updateImperative; override;
procedure setToolBarFlat(value: boolean); override; procedure setToolBarFlat(value: boolean); override;
private private
fDetectModuleName: boolean;
fOptions: TCEPagesOptions; fOptions: TCEPagesOptions;
pageControl: TCEPageControl; pageControl: TCEPageControl;
fKeyChanged: boolean; fKeyChanged: boolean;
@ -135,6 +138,7 @@ type
procedure getSymbolLoc; procedure getSymbolLoc;
procedure focusedEditorChanged; procedure focusedEditorChanged;
procedure memoCmdProcessed(Sender: TObject; var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer); procedure memoCmdProcessed(Sender: TObject; var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer);
procedure setDetectModuleName(value: boolean);
// //
procedure docNew(document: TCESynMemo); procedure docNew(document: TCESynMemo);
procedure docClosing(document: TCESynMemo); procedure docClosing(document: TCESynMemo);
@ -178,6 +182,7 @@ begin
inherited create(editorWidg); inherited create(editorWidg);
EntitiesConnector.addObserver(self); EntitiesConnector.addObserver(self);
// //
fDetectModuleName := true;
fname := getCoeditDocPath + optname; fname := getCoeditDocPath + optname;
if fname.fileExists then if fname.fileExists then
begin begin
@ -200,6 +205,7 @@ begin
begin begin
fPageButtons := fEditorWidget.pageControl.buttons; fPageButtons := fEditorWidget.pageControl.buttons;
fPageOptions := fEditorWidget.pageControl.options; fPageOptions := fEditorWidget.pageControl.options;
fDetectModuleName:= fEditorWidget.fDetectModuleName;
end end
else inherited; else inherited;
end; end;
@ -210,6 +216,7 @@ begin
begin begin
fEditorWidget.pageControl.buttons := fPageButtons; fEditorWidget.pageControl.buttons := fPageButtons;
fEditorWidget.pageControl.options := fPageOptions; fEditorWidget.pageControl.options := fPageOptions;
fEditorWidget.setDetectModuleName(fDetectModuleName);
end end
else inherited; else inherited;
end; end;
@ -284,6 +291,7 @@ constructor TCEEditorWidget.create(aOwner: TComponent);
begin begin
inherited; inherited;
toolbarVisible:=false; toolbarVisible:=false;
fDetectModuleName:=true;
// //
pageControl := TCEPageControl.Create(self); pageControl := TCEPageControl.Create(self);
pageControl.Parent := Content; pageControl.Parent := Content;
@ -522,6 +530,24 @@ begin
pageControl.currentPage.Caption:='<new document>'; pageControl.currentPage.Caption:='<new document>';
end; end;
procedure TCEEditorWidget.setDetectModuleName(value: boolean);
var
i, j: integer;
begin
if fDetectModuleName = value then
exit;
fDetectModuleName:=value;
j := pageControl.pageIndex;
if j = -1 then
exit;
for i:= 0 to pageControl.pageCount-1 do
begin
pageControl.pageIndex:= i;
updatePageCaption;
end;
pageControl.pageIndex:= j;
end;
procedure TCEEditorWidget.focusedEditorChanged; procedure TCEEditorWidget.focusedEditorChanged;
begin begin
if fDoc.isNil then exit; if fDoc.isNil then exit;
@ -720,16 +746,21 @@ var
begin begin
if fDoc.isNotNil then if fDoc.isNotNil then
begin begin
if fDoc.isDSource then if fDetectModuleName then
begin begin
lex(fDoc.Lines.Text, fTokList, @lexFindToken, [lxoNoComments]); if fDoc.isDSource then
md := getModuleName(fTokList); begin
fTokList.Clear; lex(fDoc.Lines.Text, fTokList, @lexFindToken, [lxoNoComments]);
if md.isEmpty then md := getModuleName(fTokList);
md := fDoc.fileName.extractFileName; fTokList.Clear;
if md.isEmpty then
md := fDoc.fileName.extractFileName;
end
else if fDoc.fileName.fileExists then
md := fDoc.fileName.extractFileName
end end
else if fDoc.fileName.fileExists then else if fDoc.fileName.fileExists then
md := fDoc.fileName.extractFileName md := fDoc.fileName.extractFileName
end; end;
pageControl.currentPage.Caption := md; pageControl.currentPage.Caption := md;
end; end;

View File

@ -255,7 +255,7 @@ begin
// TODO-cbugfix: filtering does not work on sub components (see editor options, highlighterDlang) // TODO-cbugfix: filtering does not work on sub components (see editor options, highlighterDlang)
if (len > 2) and (nme[len - 2 .. len] = 'Tag') then if (len > 2) and (nme[len - 2 .. len] = 'Tag') then
aShow := false aShow := false
else if (len > 3) and (nme[len - 3 .. len] = 'Name') then else if nme = 'Name' then
aShow := false aShow := false
else if aEditor.GetPropInfo^.PropType = TypeInfo(TCollection) then else if aEditor.GetPropInfo^.PropType = TypeInfo(TCollection) then
aShow := false; aShow := false;