mirror of https://gitlab.com/basile.b/dexed.git
or_4
This commit is contained in:
parent
5987571333
commit
3ae7eae9b3
|
@ -106,6 +106,7 @@ end;
|
||||||
|
|
||||||
destructor TCEEditorWidget.destroy;
|
destructor TCEEditorWidget.destroy;
|
||||||
begin
|
begin
|
||||||
|
EntitiesConnector.removeObserver(self);
|
||||||
tokLst.Free;
|
tokLst.Free;
|
||||||
errLst.Free;
|
errLst.Free;
|
||||||
inherited;
|
inherited;
|
||||||
|
@ -120,6 +121,7 @@ end;
|
||||||
|
|
||||||
procedure TCEEditorWidget.docClosing(const aDoc: TCESynMemo);
|
procedure TCEEditorWidget.docClosing(const aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
|
if fDoc <> aDoc then exit;
|
||||||
fDoc := nil;
|
fDoc := nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -146,6 +148,7 @@ end;
|
||||||
|
|
||||||
procedure TCEEditorWidget.projClosing(const aProject: TCEProject);
|
procedure TCEEditorWidget.projClosing(const aProject: TCEProject);
|
||||||
begin
|
begin
|
||||||
|
if fProj <> aProject then exit;
|
||||||
fProj := nil;
|
fProj := nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -156,6 +159,7 @@ end;
|
||||||
|
|
||||||
procedure TCEEditorWidget.projChanged(const aProject: TCEProject);
|
procedure TCEEditorWidget.projChanged(const aProject: TCEProject);
|
||||||
begin
|
begin
|
||||||
|
fProj := aProject;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEEditorWidget.projCompile(const aProject: TCEProject);
|
procedure TCEEditorWidget.projCompile(const aProject: TCEProject);
|
||||||
|
@ -238,14 +242,9 @@ begin
|
||||||
memo.OnKeyUp := @memoKeyDown;
|
memo.OnKeyUp := @memoKeyDown;
|
||||||
memo.OnKeyPress := @memoKeyPress;
|
memo.OnKeyPress := @memoKeyPress;
|
||||||
memo.OnMouseDown := @memoMouseDown;
|
memo.OnMouseDown := @memoMouseDown;
|
||||||
//memo.OnChange := @memoChange;
|
|
||||||
|
|
||||||
memo.OnMouseMove := @memoMouseMove;
|
memo.OnMouseMove := @memoMouseMove;
|
||||||
//
|
//
|
||||||
pageControl.ActivePage := sheet;
|
pageControl.ActivePage := sheet;
|
||||||
|
|
||||||
//http://bugs.freepascal.org/view.php?id=26320
|
|
||||||
//focusedEditorChanged;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEEditorWidget.removeEditor(const aIndex: NativeInt);
|
procedure TCEEditorWidget.removeEditor(const aIndex: NativeInt);
|
||||||
|
|
|
@ -127,7 +127,8 @@ type
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
ce_main;
|
||||||
|
|
||||||
function TCEMultiDocSubject.acceptObserver(aObject: TObject): boolean;
|
function TCEMultiDocSubject.acceptObserver(aObject: TObject): boolean;
|
||||||
begin
|
begin
|
||||||
|
|
|
@ -3044,20 +3044,4 @@ object CEMainForm: TCEMainForm
|
||||||
OnShowHint = ApplicationProperties1ShowHint
|
OnShowHint = ApplicationProperties1ShowHint
|
||||||
left = 96
|
left = 96
|
||||||
end
|
end
|
||||||
object LfmSyn: TSynLFMSyn
|
|
||||||
DefaultFilter = 'Fichiers fiches Lazarus (*.lfm)|*.lfm'
|
|
||||||
Enabled = False
|
|
||||||
CommentAttri.Foreground = clGreen
|
|
||||||
CommentAttri.FrameEdges = sfeAround
|
|
||||||
IdentifierAttri.Foreground = clBlack
|
|
||||||
IdentifierAttri.FrameEdges = sfeAround
|
|
||||||
KeyAttri.Foreground = clNavy
|
|
||||||
KeyAttri.FrameEdges = sfeAround
|
|
||||||
NumberAttri.Foreground = clPurple
|
|
||||||
NumberAttri.FrameEdges = sfeAround
|
|
||||||
SpaceAttri.FrameEdges = sfeAround
|
|
||||||
StringAttri.Foreground = clBlue
|
|
||||||
StringAttri.FrameEdges = sfeAround
|
|
||||||
left = 128
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -166,7 +166,6 @@ type
|
||||||
MenuItem7: TMenuItem;
|
MenuItem7: TMenuItem;
|
||||||
MenuItem8: TMenuItem;
|
MenuItem8: TMenuItem;
|
||||||
MenuItem9: TMenuItem;
|
MenuItem9: TMenuItem;
|
||||||
LfmSyn: TSynLFMSyn;
|
|
||||||
procedure actEdFindExecute(Sender: TObject);
|
procedure actEdFindExecute(Sender: TObject);
|
||||||
procedure actEdFindNextExecute(Sender: TObject);
|
procedure actEdFindNextExecute(Sender: TObject);
|
||||||
procedure actFileAddToProjExecute(Sender: TObject);
|
procedure actFileAddToProjExecute(Sender: TObject);
|
||||||
|
@ -682,6 +681,7 @@ end;
|
||||||
|
|
||||||
destructor TCEMainForm.destroy;
|
destructor TCEMainForm.destroy;
|
||||||
begin
|
begin
|
||||||
|
EntitiesConnector.removeObserver(self);
|
||||||
SaveSettings;
|
SaveSettings;
|
||||||
//
|
//
|
||||||
KillPlugs;
|
KillPlugs;
|
||||||
|
@ -900,6 +900,7 @@ end;
|
||||||
|
|
||||||
procedure TCEMainForm.docClosing(const aDoc: TCESynMemo);
|
procedure TCEMainForm.docClosing(const aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
|
if aDoc <> fDoc then exit;
|
||||||
fDoc := nil;
|
fDoc := nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -910,6 +911,7 @@ end;
|
||||||
|
|
||||||
procedure TCEMainForm.docChanged(const aDoc: TCESynMemo);
|
procedure TCEMainForm.docChanged(const aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
|
fDoc := aDoc;
|
||||||
end;
|
end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
|
@ -1158,7 +1160,6 @@ end;
|
||||||
procedure TCEMainForm.actEdFindExecute(Sender: TObject);
|
procedure TCEMainForm.actEdFindExecute(Sender: TObject);
|
||||||
var
|
var
|
||||||
win: TAnchorDockHostSite;
|
win: TAnchorDockHostSite;
|
||||||
ed: TCESynMemo;
|
|
||||||
str: string;
|
str: string;
|
||||||
begin
|
begin
|
||||||
win := DockMaster.GetAnchorSite(fFindWidg);
|
win := DockMaster.GetAnchorSite(fFindWidg);
|
||||||
|
@ -1214,13 +1215,8 @@ begin
|
||||||
dt^.project := fProject;
|
dt^.project := fProject;
|
||||||
dt^.position := getLineFromDmdMessage(msg);
|
dt^.position := getLineFromDmdMessage(msg);
|
||||||
if openFileFromDmdMessage(msg) then
|
if openFileFromDmdMessage(msg) then
|
||||||
dt^.editor := fDoc
|
|
||||||
else
|
|
||||||
dt^.editor := nil;
|
|
||||||
if dt^.editor = nil then
|
|
||||||
dt^.editor := fDoc
|
|
||||||
else
|
|
||||||
dt^.ctxt := mcEditor;
|
dt^.ctxt := mcEditor;
|
||||||
|
dt^.editor := fDoc;
|
||||||
fEditWidg.endUpdatebyDelay; // messages would be cleared by the delayed module name detection.
|
fEditWidg.endUpdatebyDelay; // messages would be cleared by the delayed module name detection.
|
||||||
fMesgWidg.addMessage(msg, dt);
|
fMesgWidg.addMessage(msg, dt);
|
||||||
application.ProcessMessages;
|
application.ProcessMessages;
|
||||||
|
|
|
@ -33,8 +33,8 @@ type
|
||||||
fActSaveMsg: TAction;
|
fActSaveMsg: TAction;
|
||||||
fActCopyMsg: TAction;
|
fActCopyMsg: TAction;
|
||||||
fActSelAll: TAction;
|
fActSelAll: TAction;
|
||||||
fProj: TCEProject;
|
|
||||||
fMaxMessCnt: Integer;
|
fMaxMessCnt: Integer;
|
||||||
|
fProj: TCEProject;
|
||||||
fDoc: TCESynMemo;
|
fDoc: TCESynMemo;
|
||||||
procedure filterMessages;
|
procedure filterMessages;
|
||||||
procedure clearOutOfRangeMessg;
|
procedure clearOutOfRangeMessg;
|
||||||
|
@ -53,6 +53,7 @@ type
|
||||||
property maxMessageCount: Integer read fMaxMessCnt write setMaxMessageCount default 125;
|
property maxMessageCount: Integer read fMaxMessCnt write setMaxMessageCount default 125;
|
||||||
public
|
public
|
||||||
constructor create(aOwner: TComponent); override;
|
constructor create(aOwner: TComponent); override;
|
||||||
|
destructor destroy; override;
|
||||||
//
|
//
|
||||||
procedure scrollToBack;
|
procedure scrollToBack;
|
||||||
procedure addMessage(const aMsg: string; aCtxt: TMessageContext = mcUnknown);
|
procedure addMessage(const aMsg: string; aCtxt: TMessageContext = mcUnknown);
|
||||||
|
@ -123,6 +124,12 @@ begin
|
||||||
EntitiesConnector.addObserver(self);
|
EntitiesConnector.addObserver(self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
destructor TCEMessagesWidget.destroy;
|
||||||
|
begin
|
||||||
|
EntitiesConnector.removeObserver(self);
|
||||||
|
Inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCEMessagesWidget.listDeletion(Sender: TObject; Node: TTreeNode);
|
procedure TCEMessagesWidget.listDeletion(Sender: TObject; Node: TTreeNode);
|
||||||
begin
|
begin
|
||||||
if node.Data <> nil then
|
if node.Data <> nil then
|
||||||
|
@ -299,6 +306,7 @@ end;
|
||||||
|
|
||||||
procedure TCEMessagesWidget.docChanged(const aDoc: TCESynMemo);
|
procedure TCEMessagesWidget.docChanged(const aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
|
fDoc := aDoc;
|
||||||
end;
|
end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
|
@ -561,7 +569,7 @@ begin
|
||||||
ext := extractFileExt(ident);
|
ext := extractFileExt(ident);
|
||||||
if not (ext = '.d') or (ext = '.di') then exit;
|
if not (ext = '.d') or (ext = '.di') then exit;
|
||||||
CEMainForm.openFile(ident);
|
CEMainForm.openFile(ident);
|
||||||
exit(true);
|
result := true;
|
||||||
end;
|
end;
|
||||||
ident += aMessage[i];
|
ident += aMessage[i];
|
||||||
end;
|
end;
|
||||||
|
|
|
@ -132,7 +132,8 @@ begin
|
||||||
fUpdating := true;
|
fUpdating := true;
|
||||||
fObservers.Remove(anObserver);
|
fObservers.Remove(anObserver);
|
||||||
for i := 0 to fSubjects.Count-1 do
|
for i := 0 to fSubjects.Count-1 do
|
||||||
(fSubjects[i] as ICESubject).removeObserver(anObserver);
|
if fSubjects[i] <> nil then
|
||||||
|
(fSubjects[i] as ICESubject).removeObserver(anObserver);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEEntitiesConnector.removeSubject(aSubject: TObject);
|
procedure TCEEntitiesConnector.removeSubject(aSubject: TObject);
|
||||||
|
|
|
@ -35,6 +35,7 @@ type
|
||||||
procedure UpdateByEvent; override;
|
procedure UpdateByEvent; override;
|
||||||
public
|
public
|
||||||
constructor create(aOwner: TComponent); override;
|
constructor create(aOwner: TComponent); override;
|
||||||
|
destructor destroy; override;
|
||||||
//
|
//
|
||||||
procedure projNew(const aProject: TCEProject);
|
procedure projNew(const aProject: TCEProject);
|
||||||
procedure projClosing(const aProject: TCEProject);
|
procedure projClosing(const aProject: TCEProject);
|
||||||
|
@ -54,6 +55,11 @@ begin
|
||||||
EntitiesConnector.addObserver(self);
|
EntitiesConnector.addObserver(self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
destructor TCEProjectConfigurationWidget.destroy;
|
||||||
|
begin
|
||||||
|
EntitiesConnector.removeObserver(self);
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCEProjectConfigurationWidget.projNew(const aProject: TCEProject);
|
procedure TCEProjectConfigurationWidget.projNew(const aProject: TCEProject);
|
||||||
begin
|
begin
|
||||||
|
|
|
@ -38,6 +38,7 @@ type
|
||||||
procedure actOpenFileExecute(sender: TObject);
|
procedure actOpenFileExecute(sender: TObject);
|
||||||
public
|
public
|
||||||
constructor create(aOwner: TComponent); override;
|
constructor create(aOwner: TComponent); override;
|
||||||
|
destructor destroy; override;
|
||||||
//
|
//
|
||||||
procedure projNew(const aProject: TCEProject);
|
procedure projNew(const aProject: TCEProject);
|
||||||
procedure projClosing(const aProject: TCEProject);
|
procedure projClosing(const aProject: TCEProject);
|
||||||
|
@ -75,6 +76,13 @@ begin
|
||||||
//
|
//
|
||||||
EntitiesConnector.addObserver(self);
|
EntitiesConnector.addObserver(self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
destructor TCEProjectInspectWidget.destroy;
|
||||||
|
begin
|
||||||
|
EntitiesConnector.removeObserver(self);
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
{$REGION ICEContextualActions---------------------------------------------------}
|
{$REGION ICEContextualActions---------------------------------------------------}
|
||||||
|
|
|
@ -97,6 +97,7 @@ end;
|
||||||
|
|
||||||
destructor TCESearchWidget.Destroy;
|
destructor TCESearchWidget.Destroy;
|
||||||
begin
|
begin
|
||||||
|
EntitiesConnector.removeObserver(self);
|
||||||
fSearchMru.Free;
|
fSearchMru.Free;
|
||||||
fReplaceMru.Free;
|
fReplaceMru.Free;
|
||||||
inherited;
|
inherited;
|
||||||
|
|
|
@ -59,6 +59,7 @@ type
|
||||||
property refreshOnFocus: boolean read fRefreshOnFocus write fRefreshOnFocus;
|
property refreshOnFocus: boolean read fRefreshOnFocus write fRefreshOnFocus;
|
||||||
public
|
public
|
||||||
constructor create(aOwner: TComponent); override;
|
constructor create(aOwner: TComponent); override;
|
||||||
|
destructor destroy; override;
|
||||||
//
|
//
|
||||||
procedure docNew(const aDoc: TCESynMemo);
|
procedure docNew(const aDoc: TCESynMemo);
|
||||||
procedure docClosing(const aDoc: TCESynMemo);
|
procedure docClosing(const aDoc: TCESynMemo);
|
||||||
|
@ -132,6 +133,13 @@ begin
|
||||||
//
|
//
|
||||||
EntitiesConnector.addObserver(self);
|
EntitiesConnector.addObserver(self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
destructor TCEStaticExplorerWidget.destroy;
|
||||||
|
begin
|
||||||
|
EntitiesConnector.removeObserver(self);
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
{$REGION ICEWidgetPersist ------------------------------------------------------}
|
{$REGION ICEWidgetPersist ------------------------------------------------------}
|
||||||
|
@ -225,6 +233,8 @@ end;
|
||||||
{$REGION ICEMultiDocObserver ---------------------------------------------------}
|
{$REGION ICEMultiDocObserver ---------------------------------------------------}
|
||||||
procedure TCEStaticExplorerWidget.docNew(const aDoc: TCESynMemo);
|
procedure TCEStaticExplorerWidget.docNew(const aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
|
fDoc := aDoc;
|
||||||
|
beginUpdateByDelay;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEStaticExplorerWidget.docClosing(const aDoc: TCESynMemo);
|
procedure TCEStaticExplorerWidget.docClosing(const aDoc: TCESynMemo);
|
||||||
|
|
|
@ -8,7 +8,7 @@ interface
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, SynEdit, SynMemo, ce_d2syn, SynEditHighlighter, controls,
|
Classes, SysUtils, SynEdit, SynMemo, ce_d2syn, SynEditHighlighter, controls,
|
||||||
lcltype, LazSynEditText, SynPluginSyncroEdit, SynEditKeyCmds, ce_project,
|
lcltype, LazSynEditText, SynPluginSyncroEdit, SynEditKeyCmds, ce_project,
|
||||||
SynEditMouseCmds, ce_common, ce_observer;
|
SynHighlighterLFM, SynEditMouseCmds, ce_common, ce_observer;
|
||||||
|
|
||||||
type
|
type
|
||||||
TCESynMemo = class(TSynMemo)
|
TCESynMemo = class(TSynMemo)
|
||||||
|
@ -53,11 +53,12 @@ type
|
||||||
|
|
||||||
var
|
var
|
||||||
D2Syn: TSynD2Syn;
|
D2Syn: TSynD2Syn;
|
||||||
|
LfmSyn: TSynLfmSyn;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
graphics, ce_main, ce_interfaces;
|
graphics, ce_interfaces;
|
||||||
|
|
||||||
constructor TCESynMemo.Create(aOwner: TComponent);
|
constructor TCESynMemo.Create(aOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
|
@ -83,14 +84,12 @@ begin
|
||||||
Highlighter := D2Syn;
|
Highlighter := D2Syn;
|
||||||
D2Syn.FoldKinds := [fkBrackets, fkComments1, fkComments2, fkStrings];
|
D2Syn.FoldKinds := [fkBrackets, fkComments1, fkComments2, fkStrings];
|
||||||
//
|
//
|
||||||
|
fTempFileName := GetTempDir(false) + 'temp_' + uniqueObjStr(self) + '.d';
|
||||||
fFilename := '<new document>';
|
fFilename := '<new document>';
|
||||||
fModified := false;
|
fModified := false;
|
||||||
ShowHint := true;
|
ShowHint := true;
|
||||||
TextBuffer.AddNotifyHandler(senrUndoRedoAdded, @changeNotify);
|
TextBuffer.AddNotifyHandler(senrUndoRedoAdded, @changeNotify);
|
||||||
|
//
|
||||||
// avoid many call to get envir.string
|
|
||||||
fTempFileName := GetTempDir(false) + 'temp_' + uniqueObjStr(self) + '.d';
|
|
||||||
|
|
||||||
fMultiDocSubject := TCEMultiDocSubject.create;
|
fMultiDocSubject := TCEMultiDocSubject.create;
|
||||||
subjDocNew(TCEMultiDocSubject(fMultiDocSubject), self);
|
subjDocNew(TCEMultiDocSubject(fMultiDocSubject), self);
|
||||||
end;
|
end;
|
||||||
|
@ -132,7 +131,7 @@ procedure TCESynMemo.SetHighlighter(const Value: TSynCustomHighlighter);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
fIsDSource := Highlighter = D2Syn;
|
fIsDSource := Highlighter = D2Syn;
|
||||||
fIsConfig := Highlighter = CEMainForm.LfmSyn;
|
fIsConfig := Highlighter = LfmSyn;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESynMemo.identifierToD2Syn;
|
procedure TCESynMemo.identifierToD2Syn;
|
||||||
|
@ -168,7 +167,8 @@ begin
|
||||||
fFilename := aFilename;
|
fFilename := aFilename;
|
||||||
FileAge(fFilename, fFileDate);
|
FileAge(fFilename, fFileDate);
|
||||||
fModified := false;
|
fModified := false;
|
||||||
subjDocChanged(TCEMultiDocSubject(fMultiDocSubject), self);
|
if fFilename <> fTempFileName then
|
||||||
|
subjDocChanged(TCEMultiDocSubject(fMultiDocSubject), self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESynMemo.save;
|
procedure TCESynMemo.save;
|
||||||
|
@ -176,7 +176,8 @@ begin
|
||||||
Lines.SaveToFile(fFilename);
|
Lines.SaveToFile(fFilename);
|
||||||
FileAge(fFilename, fFileDate);
|
FileAge(fFilename, fFileDate);
|
||||||
fModified := false;
|
fModified := false;
|
||||||
subjDocChanged(TCEMultiDocSubject(fMultiDocSubject), self);
|
if fFilename <> fTempFileName then
|
||||||
|
subjDocChanged(TCEMultiDocSubject(fMultiDocSubject), self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESynMemo.checkFileDate;
|
procedure TCESynMemo.checkFileDate;
|
||||||
|
@ -219,6 +220,8 @@ end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
D2Syn := TSynD2Syn.create(nil);
|
D2Syn := TSynD2Syn.create(nil);
|
||||||
|
LfmSyn := TSynLFMSyn.Create(nil);
|
||||||
finalization
|
finalization
|
||||||
D2Syn.free;
|
D2Syn.free;
|
||||||
|
LfmSyn.Free;
|
||||||
end.
|
end.
|
||||||
|
|
Loading…
Reference in New Issue