mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-10 13:56:01 +02:00
SourceEditor: Refactor, removed dependency on Project unit
git-svn-id: trunk@24231 -
This commit is contained in:
parent
f9165e7f9e
commit
dac2e43b34
78
ide/main.pp
78
ide/main.pp
@ -68,7 +68,7 @@ uses
|
||||
CodeBeautifier, FindDeclarationTool, LinkScanner, BasicCodeTools, AVL_Tree,
|
||||
Laz_XMLCfg, CodeToolsStructs, CodeToolManager, CodeCache, DefineTemplates,
|
||||
// synedit
|
||||
SynEditKeyCmds, SynBeautifier,
|
||||
SynEditKeyCmds, SynBeautifier, SynEditMarks,
|
||||
// IDE interface
|
||||
AllIDEIntf, BaseIDEIntf, ObjectInspector, PropEdits, PropEditUtils,
|
||||
MacroIntf, IDECommands,
|
||||
@ -389,7 +389,12 @@ type
|
||||
Reason: TSynEditorCommand; SetIndentProc: TSynBeautifierSetIndentProc): Boolean;
|
||||
procedure OnSrcNotebookDeleteLastJumPoint(Sender: TObject);
|
||||
procedure OnSrcNotebookEditorVisibleChanged(Sender: TObject);
|
||||
procedure OnSrcNotebookEditorPlaceBookmark(Sender: TObject; var Mark: TSynEditMark);
|
||||
procedure OnSrcNotebookEditorClearBookmark(Sender: TObject; var Mark: TSynEditMark);
|
||||
procedure OnSrcNotebookProject1BookmarkMeeded(Sender: TObject);
|
||||
procedure OnSrcNotebookEditorChanged(Sender: TObject);
|
||||
procedure OnSrcNotebookEditorMoved(Sender: TObject);
|
||||
procedure OnSrcNotebookEditorClosed(Sender: TObject);
|
||||
procedure OnSrcNotebookCurCodeBufferChanged(Sender: TObject);
|
||||
procedure OnSrcNotebookFileNew(Sender: TObject);
|
||||
procedure OnSrcNotebookFileOpen(Sender: TObject);
|
||||
@ -859,6 +864,8 @@ type
|
||||
deprecated; // deprecated in 0.9.29 March 2010
|
||||
procedure GetDesignerUnit(ADesigner: TDesigner;
|
||||
var ActiveSourceEditor: TSourceEditor; var ActiveUnitInfo: TUnitInfo); override;
|
||||
function GetDesignerForProjectEditor(AEditor: TSourceEditorInterface;
|
||||
LoadForm: boolean): TIDesigner; override;
|
||||
function GetDesignerWithProjectFile(AFile: TLazProjectFile;
|
||||
LoadForm: boolean): TIDesigner; override;
|
||||
function GetDesignerFormOfSource(AnUnitInfo: TUnitInfo;
|
||||
@ -1935,6 +1942,11 @@ begin
|
||||
SourceEditorManager.OnDeleteLastJumpPoint := @OnSrcNotebookDeleteLastJumPoint;
|
||||
SourceEditorManager.OnEditorVisibleChanged := @OnSrcNotebookEditorVisibleChanged;
|
||||
SourceEditorManager.OnEditorChanged := @OnSrcNotebookEditorChanged;
|
||||
SourceEditorManager.OnEditorMoved := @OnSrcNotebookEditorMoved;
|
||||
SourceEditorManager.OnEditorClosed := @OnSrcNotebookEditorClosed;
|
||||
SourceEditorManager.OnPlaceBookmark := @OnSrcNotebookEditorPlaceBookmark;
|
||||
SourceEditorManager.OnClearBookmark := @OnSrcNotebookEditorClearBookmark;
|
||||
SourceEditorManager.OnProject1BookmarksNeeded := @OnSrcNotebookProject1BookmarkMeeded;
|
||||
SourceEditorManager.OnEditorPropertiesClicked := @mnuEnvEditorOptionsClicked;
|
||||
SourceEditorManager.OnFindDeclarationClicked := @OnSrcNotebookFindDeclaration;
|
||||
SourceEditorManager.OnInitIdentCompletion :=@OnSrcNotebookInitIdentCompletion;
|
||||
@ -3968,6 +3980,7 @@ begin
|
||||
// save shortcuts to editor options
|
||||
EnvironmentOptions.ExternalTools.SaveShortCuts(EditorOpts.KeyMap);
|
||||
EditorOpts.Save;
|
||||
UpdateHighlighters(True);
|
||||
SourceEditorManager.ReloadEditorOptions;
|
||||
UpdateCustomToolsInMenu;
|
||||
end;
|
||||
@ -4269,6 +4282,7 @@ begin
|
||||
end;
|
||||
if IDEOptionsDialog.ShowModal = mrOk then begin
|
||||
IDEOptionsDialog.WriteAll;
|
||||
UpdateHighlighters(True);
|
||||
SourceEditorManager.ReloadEditorOptions;
|
||||
end;
|
||||
finally
|
||||
@ -4385,6 +4399,7 @@ end;
|
||||
procedure TMainIDE.DoEditorOptionsAfterWrite(Sender: TObject);
|
||||
begin
|
||||
Project1.UpdateAllSyntaxHighlighter;
|
||||
UpdateHighlighters(True);
|
||||
SourceEditorManager.ReloadEditorOptions;
|
||||
ReloadMenuShortCuts;
|
||||
end;
|
||||
@ -4540,8 +4555,10 @@ end;
|
||||
|
||||
procedure TMainIDE.mnuEnvCodeTemplatesClicked(Sender: TObject);
|
||||
begin
|
||||
if ShowCodeTemplateDialog=mrOk then
|
||||
if ShowCodeTemplateDialog=mrOk then begin
|
||||
UpdateHighlighters(True);
|
||||
SourceEditorManager.ReloadEditorOptions;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuEnvCodeToolsDefinesEditorClicked(Sender: TObject);
|
||||
@ -11527,6 +11544,19 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function TMainIDE.GetDesignerForProjectEditor(AEditor: TSourceEditorInterface;
|
||||
LoadForm: boolean): TIDesigner;
|
||||
var
|
||||
AProjectFile: TLazProjectFile;
|
||||
begin
|
||||
AProjectFile := Project1.UnitWithEditorComponent(AEditor);
|
||||
if AProjectFile <> nil then
|
||||
Result:=LazarusIDE.GetDesignerWithProjectFile(
|
||||
Project1.UnitWithEditorComponent(AEditor), LoadForm)
|
||||
else
|
||||
Result := nil;
|
||||
end;
|
||||
|
||||
function TMainIDE.GetDesignerWithProjectFile(AFile: TLazProjectFile;
|
||||
LoadForm: boolean): TIDesigner;
|
||||
var
|
||||
@ -14424,6 +14454,10 @@ var
|
||||
begin
|
||||
if SourceEditorManager.SourceEditorCount = 0 then Exit;
|
||||
|
||||
if Sender <> nil then
|
||||
Project1.UpdateVisibleUnit(TSourceNotebook(Sender).ActiveEditor,
|
||||
SourceEditorManager.IndexOfSourceWindow(TSourceNotebook(Sender)));
|
||||
|
||||
ActiveUnitInfo :=
|
||||
Project1.UnitWithEditorComponent(SourceEditorManager.ActiveEditor);
|
||||
if ActiveUnitInfo = nil then Exit;
|
||||
@ -14435,6 +14469,25 @@ begin
|
||||
MainIDEBar.ToggleFormSpeedBtn.Enabled := MainIDEBar.itmViewToggleFormUnit.Enabled;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.OnSrcNotebookEditorPlaceBookmark(Sender: TObject;
|
||||
var Mark: TSynEditMark);
|
||||
begin
|
||||
Project1.UnitWithEditorComponent(TSourceEditor(Sender)).AddBookmark
|
||||
(Mark.Column, Mark.Line, Mark.BookmarkNumber);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.OnSrcNotebookEditorClearBookmark(Sender: TObject;
|
||||
var Mark: TSynEditMark);
|
||||
begin
|
||||
Project1.UnitWithEditorComponent(TSourceEditor(Sender)).DeleteBookmark
|
||||
(Mark.BookmarkNumber);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.OnSrcNotebookProject1BookmarkMeeded(Sender: TObject);
|
||||
begin
|
||||
SourceEditorManager.Project1BookMarks := Project1.Bookmarks;
|
||||
end;
|
||||
|
||||
//this is fired when the editor is focused, changed, ?. Anything that causes the status change
|
||||
procedure TMainIDE.OnSrcNotebookEditorChanged(Sender: TObject);
|
||||
begin
|
||||
@ -14442,6 +14495,27 @@ begin
|
||||
UpdateSaveMenuItemsAndButtons(false);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.OnSrcNotebookEditorMoved(Sender: TObject);
|
||||
var
|
||||
p: TUnitInfo;
|
||||
begin
|
||||
p :=Project1.UnitWithEditorComponent(TSourceEditor(Sender));
|
||||
if p = nil then exit;
|
||||
p.EditorIndex := TSourceEditor(Sender).PageIndex;
|
||||
p.WindowIndex := SourceEditorManager.IndexOfSourceWindow(TSourceEditor(Sender).SourceNotebook);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.OnSrcNotebookEditorClosed(Sender: TObject);
|
||||
var
|
||||
p: TUnitInfo;
|
||||
SrcEditor: TSourceEditor;
|
||||
begin
|
||||
SrcEditor := TSourceEditor(Sender);
|
||||
p :=Project1.UnitWithEditorComponent(SrcEditor);
|
||||
if (p <> nil) then
|
||||
p.EditorComponent := nil // Set EditorIndex := -1
|
||||
end;
|
||||
|
||||
procedure TMainIDE.OnSrcNotebookCurCodeBufferChanged(Sender: TObject);
|
||||
begin
|
||||
if SourceEditorManager.SourceEditorCount = 0 then Exit;
|
||||
|
@ -1125,11 +1125,27 @@ begin
|
||||
end;
|
||||
|
||||
procedure TMainIDEBase.UpdateHighlighters(Immediately: boolean = false);
|
||||
var
|
||||
ASrcEdit: TSourceEditor;
|
||||
AnUnitInfo: TUnitInfo;
|
||||
h: TLazSyntaxHighlighter;
|
||||
i: Integer;
|
||||
begin
|
||||
if Immediately then begin
|
||||
FNeedUpdateHighlighters:=false;
|
||||
Project1.UpdateAllSyntaxHighlighter;
|
||||
SourceEditorManager.ReloadHighlighters;
|
||||
for h := Low(TLazSyntaxHighlighter) to High(TLazSyntaxHighlighter) do
|
||||
if Highlighters[h]<>nil then begin
|
||||
Highlighters[h].BeginUpdate;
|
||||
EditorOpts.GetHighlighterSettings(Highlighters[h]);
|
||||
Highlighters[h].EndUpdate;
|
||||
end;
|
||||
for i := 0 to SourceEditorManager.SourceEditorCount - 1 do begin
|
||||
ASrcEdit := SourceEditorManager.SourceEditors[i];
|
||||
AnUnitInfo:=Project1.UnitWithEditorComponent(ASrcEdit);
|
||||
if AnUnitInfo<>nil then
|
||||
ASrcEdit.SyntaxHighlighterType := AnUnitInfo.SyntaxHighlighter;
|
||||
end;
|
||||
end else begin
|
||||
FNeedUpdateHighlighters:=true;
|
||||
end;
|
||||
|
@ -50,9 +50,7 @@ uses
|
||||
{$ENDIF}
|
||||
Classes, SysUtils, TypInfo, FPCAdds, LCLProc, LCLIntf, LCLType, Forms,
|
||||
Controls, Dialogs, InterfaceBase,
|
||||
Laz_XMLCfg, ExprEval, FileUtil, DefineTemplates, CodeToolManager, CodeCache,
|
||||
// IDEIntf
|
||||
PropEdits, ProjectIntf, MacroIntf, LazIDEIntf,
|
||||
Laz_XMLCfg, ExprEval, FileUtil, DefineTemplates, CodeToolManager, CodeCache, ProjectIntf, MacroIntf, LazIDEIntf,
|
||||
// IDE
|
||||
CompOptsModes, ProjectResources, LazConf, frmCustomApplicationOptions,
|
||||
LazarusIDEStrConsts, CompilerOptions,
|
||||
|
@ -50,10 +50,11 @@ uses
|
||||
SynEditHighlighter, SynEditAutoComplete, SynEditKeyCmds, SynCompletion,
|
||||
SynEditMiscClasses, SynEditMarkupHighAll, SynEditMarks,
|
||||
SynBeautifier, SynEditTextBase, SynPluginTemplateEdit, SynPluginSyncroEdit,
|
||||
SynPluginSyncronizedEditBase, ProjectIntf, SrcEditorIntf, MenuIntf, LazIDEIntf, PackageIntf,
|
||||
IDEDialogs, IDEHelpIntf, IDEImagesIntf,
|
||||
SynPluginSyncronizedEditBase,
|
||||
// Intf
|
||||
SrcEditorIntf, MenuIntf, LazIDEIntf, PackageIntf, IDEHelpIntf, IDEImagesIntf,
|
||||
// IDE units
|
||||
LazarusIDEStrConsts, IDECommands, EditorOptions, Project,
|
||||
IDEDialogs, LazarusIDEStrConsts, IDECommands, EditorOptions,
|
||||
WordCompletion, FindReplaceDialog, IDEProcs, IDEOptionDefs,
|
||||
MacroPromptDlg, TransferMacros, CodeContextForm, SrcEditHintFrm,
|
||||
EnvironmentOpts, MsgView, InputHistory, CodeMacroPrompt,
|
||||
@ -76,6 +77,7 @@ type
|
||||
|
||||
TOnLinesInsertedDeleted = procedure(Sender : TObject;
|
||||
FirstLine,Count : Integer) of Object;
|
||||
TPlaceBookMarkEvent = procedure(Sender: TObject; var Mark: TSynEditMark) of object;
|
||||
|
||||
TCharSet = set of Char;
|
||||
|
||||
@ -169,10 +171,8 @@ type
|
||||
FLineInfoNotification: TIDELineInfoNotification;
|
||||
FModified: boolean;
|
||||
|
||||
FOnAfterClose: TNotifyEvent;
|
||||
FOnAfterOpen: TNotifyEvent;
|
||||
FOnAfterSave: TNotifyEvent;
|
||||
FOnBeforeClose: TNotifyEvent;
|
||||
FOnBeforeOpen: TNotifyEvent;
|
||||
FOnBeforeSave: TNotifyEvent;
|
||||
FOnEditorChange: TNotifyEvent;
|
||||
@ -386,7 +386,6 @@ type
|
||||
procedure SetLines(const AValue: TStrings); override;
|
||||
|
||||
// context
|
||||
function GetProjectFile: TLazProjectFile; override;
|
||||
procedure UpdateProjectFile; override;
|
||||
function GetDesigner(LoadForm: boolean): TIDesigner; override;
|
||||
|
||||
@ -411,9 +410,6 @@ type
|
||||
property ExecutionLine: integer read FExecutionLine write SetExecutionLine;
|
||||
property HasExecutionMarks: Boolean read FHasExecutionMarks;
|
||||
property InsertMode: Boolean read GetInsertmode;
|
||||
property OnAfterClose: TNotifyEvent read FOnAfterClose write FOnAfterClose;
|
||||
property OnBeforeClose: TNotifyEvent read FOnBeforeClose
|
||||
write FOnBeforeClose;
|
||||
property OnAfterOpen: TNotifyEvent read FOnAfterOpen write FOnAfterOpen;
|
||||
property OnBeforeOpen: TNotifyEvent read FOnBeforeOpen write FOnBeforeOpen;
|
||||
property OnAfterSave: TNotifyEvent read FOnAfterSave write FOnAfterSave;
|
||||
@ -721,7 +717,6 @@ type
|
||||
procedure CopyFilenameClicked(Sender: TObject);
|
||||
|
||||
procedure ReloadEditorOptions;
|
||||
procedure ReloadHighlighters;
|
||||
procedure CheckFont;
|
||||
function GetEditorControlSettings(EditControl: TControl): boolean; override;
|
||||
deprecated {$IFDEF VER2_5}'use SourceEditorManager'{$ENDIF}; // deprecated in 0.9.29 March 2010
|
||||
@ -835,8 +830,10 @@ type
|
||||
|
||||
TSourceEditorManager = class(TSourceEditorManagerBase)
|
||||
private
|
||||
FProject1BookMarks: TProjectBookmarkList;
|
||||
function GetActiveSourceNotebook: TSourceNotebook;
|
||||
function GetActiveSrcEditor: TSourceEditor;
|
||||
function GetProject1BookMarks: TProjectBookmarkList;
|
||||
function GetSourceEditorsByPage(WindowIndex, PageIndex: integer
|
||||
): TSourceEditor;
|
||||
function GetSrcEditors(Index: integer): TSourceEditor;
|
||||
@ -873,7 +870,6 @@ type
|
||||
procedure ClearExecutionLines;
|
||||
procedure ClearExecutionMarks;
|
||||
procedure ReloadEditorOptions;
|
||||
procedure ReloadHighlighters;
|
||||
// find / replace text
|
||||
procedure FindClicked(Sender: TObject);
|
||||
procedure FindNextClicked(Sender: TObject);
|
||||
@ -898,6 +894,8 @@ type
|
||||
procedure BookMarkGotoNext(GoForward: boolean);
|
||||
procedure BookMarkNextClicked(Sender: TObject);
|
||||
procedure BookMarkPrevClicked(Sender: TObject);
|
||||
property Project1BookMarks: TProjectBookmarkList
|
||||
read GetProject1BookMarks write FProject1BookMarks; // get Project1.Bookmarks
|
||||
protected
|
||||
// macros
|
||||
function MacroFuncCol(const s:string; const Data: PtrInt;
|
||||
@ -948,11 +946,14 @@ type
|
||||
function CreateNewWindow(Activate: Boolean= False): TSourceNotebook;
|
||||
private
|
||||
FOnAddJumpPoint: TOnAddJumpPoint;
|
||||
FOnClearBookmark: TPlaceBookMarkEvent;
|
||||
FOnClickLink: TMouseEvent;
|
||||
FOnCloseClicked: TOnCloseSrcEditor;
|
||||
FOnCurrentCodeBufferChanged: TNotifyEvent;
|
||||
FOnDeleteLastJumpPoint: TNotifyEvent;
|
||||
FOnEditorChanged: TNotifyEvent;
|
||||
FOnEditorClosed: TNotifyEvent;
|
||||
FOnEditorMoved: TNotifyEvent;
|
||||
FOnEditorPropertiesClicked: TNotifyEvent;
|
||||
FOnFindDeclarationClicked: TNotifyEvent;
|
||||
FOnGetIndent: TOnGetIndentEvent;
|
||||
@ -961,8 +962,10 @@ type
|
||||
FOnJumpToHistoryPoint: TOnJumpToHistoryPoint;
|
||||
FOnMouseLink: TSynMouseLinkEvent;
|
||||
FOnOpenFileAtCursorClicked: TNotifyEvent;
|
||||
FOnPlaceMark: TPlaceBookMarkEvent;
|
||||
FOnPopupMenu: TSrcEditPopupMenuEvent;
|
||||
FOnProcessUserCommand: TOnProcessUserCommand;
|
||||
FOnProject1BookmarksNeeded: TNotifyEvent;
|
||||
fOnReadOnlyChanged: TNotifyEvent;
|
||||
FOnShowCodeContext: TOnShowCodeContext;
|
||||
FOnShowHintForSource: TOnShowHintForSource;
|
||||
@ -988,6 +991,10 @@ type
|
||||
read FOnDeleteLastJumpPoint write FOnDeleteLastJumpPoint;
|
||||
property OnEditorChanged: TNotifyEvent
|
||||
read FOnEditorChanged write FOnEditorChanged;
|
||||
property OnEditorMoved: TNotifyEvent
|
||||
read FOnEditorMoved write FOnEditorMoved;
|
||||
property OnEditorClosed: TNotifyEvent
|
||||
read FOnEditorClosed write FOnEditorClosed;
|
||||
property OnEditorPropertiesClicked: TNotifyEvent
|
||||
read FOnEditorPropertiesClicked write FOnEditorPropertiesClicked;
|
||||
property OnFindDeclarationClicked: TNotifyEvent
|
||||
@ -1000,6 +1007,12 @@ type
|
||||
read FOnShowCodeContext write FOnShowCodeContext;
|
||||
property OnJumpToHistoryPoint: TOnJumpToHistoryPoint
|
||||
read FOnJumpToHistoryPoint write FOnJumpToHistoryPoint;
|
||||
property OnPlaceBookmark: TPlaceBookMarkEvent
|
||||
read FOnPlaceMark write FOnPlaceMark;
|
||||
property OnClearBookmark: TPlaceBookMarkEvent
|
||||
read FOnClearBookmark write FOnClearBookmark;
|
||||
property OnProject1BookmarksNeeded: TNotifyEvent
|
||||
read FOnProject1BookmarksNeeded write FOnProject1BookmarksNeeded;
|
||||
property OnOpenFileAtCursorClicked: TNotifyEvent
|
||||
read FOnOpenFileAtCursorClicked write FOnOpenFileAtCursorClicked;
|
||||
property OnProcessUserCommand: TOnProcessUserCommand
|
||||
@ -1092,13 +1105,14 @@ var
|
||||
|
||||
procedure RegisterStandardSourceEditorMenuItems;
|
||||
|
||||
var
|
||||
Highlighters: array[TLazSyntaxHighlighter] of TSynCustomHighlighter;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
var
|
||||
Highlighters: array[TLazSyntaxHighlighter] of TSynCustomHighlighter;
|
||||
SourceCompletionTimer: TIdleTimer = nil;
|
||||
SourceCompletionCaretXY: TPoint;
|
||||
AWordCompletion: TWordCompletion = nil;
|
||||
@ -3727,23 +3741,14 @@ Begin
|
||||
end;
|
||||
|
||||
Function TSourceEditor.Close: Boolean;
|
||||
var
|
||||
p: TUnitInfo;
|
||||
Begin
|
||||
Result := True;
|
||||
If Assigned(FOnBeforeClose) then
|
||||
FOnBeforeClose(Self);
|
||||
|
||||
Visible := False;
|
||||
Manager.EditorRemoved(self);
|
||||
Manager.EditorRemoved(Self);
|
||||
SourceEditorMarks.DeleteAllForEditor(FEditor);
|
||||
UnbindEditor;
|
||||
FEditor.Parent:=nil;
|
||||
CodeBuffer := nil;
|
||||
If Assigned(FOnAfterClose) then FOnAfterClose(Self);
|
||||
p :=Project1.UnitWithEditorComponent(Self);
|
||||
if p <> nil then
|
||||
p.EditorComponent := nil; // Set EditorIndex := -1
|
||||
end;
|
||||
|
||||
procedure TSourceEditor.BeginUndoBlock;
|
||||
@ -3844,13 +3849,15 @@ end;
|
||||
procedure TSourceEditor.EditorPlaceBookmark(Sender: TObject;
|
||||
var Mark: TSynEditMark);
|
||||
begin
|
||||
Project1.UnitWithEditorComponent(self).AddBookmark(Mark.Column, Mark.Line, Mark.BookmarkNumber);
|
||||
if Assigned(Manager) and Assigned(Manager.OnPlaceBookmark) then
|
||||
Manager.OnPlaceBookmark(Self, Mark);
|
||||
end;
|
||||
|
||||
procedure TSourceEditor.EditorClearBookmark(Sender: TObject;
|
||||
var Mark: TSynEditMark);
|
||||
begin
|
||||
Project1.UnitWithEditorComponent(self).DeleteBookmark(Mark.BookmarkNumber);
|
||||
if Assigned(Manager) and Assigned(Manager.OnClearBookmark) then
|
||||
Manager.OnClearBookmark(Self, Mark);
|
||||
end;
|
||||
|
||||
procedure TSourceEditor.EditorEnter(Sender: TObject);
|
||||
@ -3977,30 +3984,15 @@ begin
|
||||
FEditor.Lines:=AValue;
|
||||
end;
|
||||
|
||||
function TSourceEditor.GetProjectFile: TLazProjectFile;
|
||||
begin
|
||||
Result:=Project1.UnitWithEditorComponent(Self);
|
||||
end;
|
||||
|
||||
procedure TSourceEditor.UpdateProjectFile;
|
||||
var
|
||||
p: TUnitInfo;
|
||||
begin
|
||||
p :=Project1.UnitWithEditorComponent(Self);
|
||||
if p = nil then exit;
|
||||
p.EditorIndex := PageIndex;
|
||||
p.WindowIndex := Manager.IndexOfSourceWindow(SourceNotebook);
|
||||
if Assigned(Manager) and Assigned(Manager.OnEditorMoved)
|
||||
then Manager.OnEditorMoved(self);
|
||||
end;
|
||||
|
||||
function TSourceEditor.GetDesigner(LoadForm: boolean): TIDesigner;
|
||||
var
|
||||
AProjectFile: TLazProjectFile;
|
||||
begin
|
||||
AProjectFile:=GetProjectFile;
|
||||
if AProjectFile<>nil then
|
||||
Result:=LazarusIDE.GetDesignerWithProjectFile(AProjectFile,LoadForm)
|
||||
else
|
||||
Result:=nil;
|
||||
Result:=LazarusIDE.GetDesignerForProjectEditor(Self, LoadForm)
|
||||
end;
|
||||
|
||||
function TSourceEditor.GetCursorScreenXY: TPoint;
|
||||
@ -4619,7 +4611,7 @@ begin
|
||||
for BookMarkID:=0 to 9 do begin
|
||||
MarkDesc:=' '+IntToStr(BookMarkID);
|
||||
MarkSrcEdit := TSourceEditor(
|
||||
Project1.Bookmarks.EditorComponentForBookmarkWithIndex(BookMarkID));
|
||||
Manager.Project1BookMarks.EditorComponentForBookmarkWithIndex(BookMarkID));
|
||||
if (MarkSrcEdit<>nil)
|
||||
and MarkSrcEdit.EditorComponent.GetBookMark(BookMarkID,BookMarkX,BookMarkY)
|
||||
then begin
|
||||
@ -6207,10 +6199,9 @@ Begin
|
||||
(TempEditor.FileName <> '') then
|
||||
TempEditor.FillExecutionMarks;
|
||||
if Assigned(Manager.OnEditorVisibleChanged) then
|
||||
Manager.OnEditorVisibleChanged(sender);
|
||||
Manager.OnEditorVisibleChanged(Self);
|
||||
end;
|
||||
|
||||
Project1.UpdateVisibleUnit(TempEditor, Manager.IndexOfSourceWindow(self));
|
||||
CheckCurrentCodeBufferChanged;
|
||||
Manager.UpdateFPDocEditor;
|
||||
end;
|
||||
@ -6310,14 +6301,6 @@ var
|
||||
I: integer;
|
||||
h: TLazSyntaxHighlighter;
|
||||
Begin
|
||||
// this reloads the colors for the highlighter and other editor settings.
|
||||
for h:=Low(TLazSyntaxHighlighter) to High(TLazSyntaxHighlighter) do
|
||||
if Highlighters[h]<>nil then begin
|
||||
Highlighters[h].BeginUpdate;
|
||||
EditorOpts.GetHighlighterSettings(Highlighters[h]);
|
||||
Highlighters[h].EndUpdate;
|
||||
end;
|
||||
ReloadHighlighters;
|
||||
for i := 0 to EditorCount-1 do
|
||||
Editors[i].RefreshEditorSettings;
|
||||
|
||||
@ -6335,20 +6318,6 @@ Begin
|
||||
UpdatePageNames;
|
||||
end;
|
||||
|
||||
procedure TSourceNotebook.ReloadHighlighters;
|
||||
var
|
||||
i: Integer;
|
||||
ASrcEdit: TSourceEditor;
|
||||
AnUnitInfo: TUnitInfo;
|
||||
begin
|
||||
for i := 0 to EditorCount-1 do begin
|
||||
ASrcEdit:=Editors[i];
|
||||
AnUnitInfo:=Project1.UnitWithEditorComponent(ASrcEdit);
|
||||
if AnUnitInfo<>nil then
|
||||
ASrcEdit.SyntaxHighlighterType:=AnUnitInfo.SyntaxHighlighter;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSourceNotebook.CheckFont;
|
||||
var
|
||||
SrcEdit: TSourceEditor;
|
||||
@ -7100,15 +7069,10 @@ begin
|
||||
inherited Notification(AComponent, Operation);
|
||||
if Operation=opRemove then
|
||||
begin
|
||||
if AComponent is TSourceNotebook then begin
|
||||
FChangeNotifyLists[semWindowDestroy].CallNotifyEvents(AComponent);
|
||||
end
|
||||
else begin
|
||||
if Assigned(fCompletionPlugins) then
|
||||
fCompletionPlugins.Remove(AComponent);
|
||||
if ActiveCompletionPlugin = AComponent then
|
||||
DeactivateCompletionForm;
|
||||
end;
|
||||
if Assigned(fCompletionPlugins) then
|
||||
fCompletionPlugins.Remove(AComponent);
|
||||
if ActiveCompletionPlugin = AComponent then
|
||||
DeactivateCompletionForm;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -7214,6 +7178,13 @@ begin
|
||||
Result := TSourceEditor(inherited ActiveEditor);
|
||||
end;
|
||||
|
||||
function TSourceEditorManager.GetProject1BookMarks: TProjectBookmarkList;
|
||||
begin
|
||||
if Assigned(OnProject1BookmarksNeeded) then
|
||||
OnProject1BookmarksNeeded(Self);
|
||||
Result := FProject1BookMarks;
|
||||
end;
|
||||
|
||||
function TSourceEditorManager.GetSourceEditorsByPage(WindowIndex,
|
||||
PageIndex: integer): TSourceEditor;
|
||||
begin
|
||||
@ -7324,6 +7295,8 @@ procedure TSourceEditorManager.EditorRemoved(AEditor: TSourceEditor);
|
||||
begin
|
||||
if FDefaultCompletionForm <> nil then
|
||||
FDefaultCompletionForm.RemoveEditor(AEditor.EditorComponent);
|
||||
if Assigned(OnEditorClosed) then
|
||||
OnEditorClosed(AEditor);
|
||||
end;
|
||||
|
||||
procedure TSourceEditorManager.Notification(AComponent: TComponent;
|
||||
@ -7381,14 +7354,6 @@ begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TSourceEditorManager.ReloadHighlighters;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
for i := FSourceWindowList.Count - 1 downto 0 do
|
||||
SourceWindows[i].ReloadHighlighters;
|
||||
end;
|
||||
|
||||
procedure TSourceEditorManager.FindClicked(Sender: TObject);
|
||||
begin
|
||||
if ActiveEditor <> nil then ActiveEditor.StartFindAndReplace(false);
|
||||
@ -7460,7 +7425,7 @@ Begin
|
||||
NewXY := ActEdit.EditorComponent.CaretXY;
|
||||
|
||||
SetMark:=true;
|
||||
OldEdit := TSourceEditor(Project1.Bookmarks.EditorComponentForBookmarkWithIndex(Value));
|
||||
OldEdit := TSourceEditor(Project1BookMarks.EditorComponentForBookmarkWithIndex(Value));
|
||||
if (OldEdit<>nil) and OldEdit.EditorComponent.GetBookMark(Value,OldX,OldY) then
|
||||
begin
|
||||
if (not Toggle) and (OldX=NewXY.X) and (OldY=NewXY.Y) then
|
||||
@ -7480,7 +7445,7 @@ var
|
||||
i: Integer;
|
||||
begin
|
||||
for i:=0 to 9 do
|
||||
if (Project1.Bookmarks.BookmarkWithID(i) = nil) then begin
|
||||
if (Project1BookMarks.BookmarkWithID(i) = nil) then begin
|
||||
BookMarkSet(i);
|
||||
exit;
|
||||
end;
|
||||
@ -7500,7 +7465,7 @@ procedure TSourceEditorManager.BookMarkGoTo(Index: Integer);
|
||||
var
|
||||
AnEditor:TSourceEditor;
|
||||
begin
|
||||
AnEditor := TSourceEditor(Project1.Bookmarks.EditorComponentForBookmarkWithIndex(Index));
|
||||
AnEditor := TSourceEditor(Project1BookMarks.EditorComponentForBookmarkWithIndex(Index));
|
||||
if AnEditor = nil then exit;
|
||||
ActiveEditor := AnEditor;
|
||||
ShowActiveWindowOnTop(True);
|
||||
@ -7537,7 +7502,7 @@ var
|
||||
BestBookmarkID: Integer;
|
||||
CurPos: TProjectBookmark;
|
||||
begin
|
||||
if Project1.Bookmarks.Count = 0 then exit;
|
||||
if Project1BookMarks.Count = 0 then exit;
|
||||
SrcEdit := ActiveEditor;
|
||||
if SrcEdit = nil then exit;
|
||||
|
||||
@ -7546,8 +7511,8 @@ begin
|
||||
List := TFPList.Create;
|
||||
CurPos := TProjectBookmark.Create(i, SrcEdit.EditorComponent.CaretY, -1, SrcEdit);
|
||||
try
|
||||
for i := 0 to Project1.Bookmarks.Count - 1 do
|
||||
List.Add(Project1.Bookmarks[i]);
|
||||
for i := 0 to Project1BookMarks.Count - 1 do
|
||||
List.Add(Project1BookMarks[i]);
|
||||
List.Add(CurPos);
|
||||
List.Sort(TListSortCompare(@CompareBookmarkEditorPos));
|
||||
|
||||
@ -8049,6 +8014,8 @@ begin
|
||||
FActiveWindow := nil
|
||||
else if FActiveWindow = AWindow then
|
||||
FActiveWindow := SourceWindows[Max(0, Min(i, SourceWindowCount-1))];
|
||||
if i >= 0 then
|
||||
FChangeNotifyLists[semWindowDestroy].CallNotifyEvents(AWindow);
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
@ -271,6 +271,8 @@ type
|
||||
procedure AbortBuild; virtual; abstract;
|
||||
|
||||
// designer
|
||||
function GetDesignerForProjectEditor(AEditor: TSourceEditorInterface;
|
||||
LoadForm: boolean): TIDesigner; virtual; abstract;
|
||||
function GetDesignerWithProjectFile(AFile: TLazProjectFile;
|
||||
LoadForm: boolean): TIDesigner; virtual; abstract;
|
||||
function GetProjectFileWithRootComponent(AComponent: TComponent): TLazProjectFile; virtual; abstract;
|
||||
|
Loading…
Reference in New Issue
Block a user