mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2026-02-25 06:08:33 +01:00
BuildIntf: TMessageLines refactoring and reordering.
This commit is contained in:
parent
4fd3a8e598
commit
225dbbc5c6
@ -215,9 +215,9 @@ type
|
||||
|
||||
TMessageLines = class
|
||||
private
|
||||
FBaseDirectory: string;
|
||||
FChangeStamp: int64;
|
||||
FCritSec: TRTLCriticalSection;
|
||||
FBaseDirectory: string;
|
||||
fItems: TFPList; // list of TMessageLine
|
||||
FMessageLineClass: TMessageLineClass;
|
||||
FOnMarksFixed: TETMarksFixedEvent;
|
||||
@ -233,14 +233,11 @@ type
|
||||
UrgencyCounts: array[TMessageLineUrgency] of integer;
|
||||
constructor Create(aOwner: TObject; aMsgLineClass: TMessageLineClass);
|
||||
destructor Destroy; override;
|
||||
property Owner: TObject read FOwner;
|
||||
procedure EnterCriticalSection; // always use before access
|
||||
procedure LeaveCriticalSection;
|
||||
function Count: integer; inline;
|
||||
procedure Clear;
|
||||
property Items[Index: integer]: TMessageLine read GetItems; default;
|
||||
function GetLastLine: TMessageLine;
|
||||
property BaseDirectory: string read FBaseDirectory write SetBaseDirectory; // always trimmed and with trailing /
|
||||
function CreateLine(OutputIndex: integer): TMessageLine; // create, but do not yet add it
|
||||
procedure Add(MsgLine: TMessageLine);
|
||||
procedure Remove(MsgLine: TMessageLine);
|
||||
@ -250,19 +247,24 @@ type
|
||||
procedure FetchAll(SrcLines: TMessageLines);
|
||||
procedure SourceLinesInserted(Filename: string; Line, InsertedCount: integer);
|
||||
procedure SourceLinesDeleted(Filename: string; FirstLine, DeletedCount: integer);
|
||||
property MessageLineClass: TMessageLineClass read FMessageLineClass;
|
||||
property OnMarksFixed: TETMarksFixedEvent read FOnMarksFixed write FOnMarksFixed;
|
||||
property ChangeStamp: int64 read FChangeStamp;
|
||||
procedure IncreaseChangeStamp; inline;
|
||||
function IndexOfOutputIndex(OutputIndex: integer): integer;
|
||||
function EnumerateFile(aFilename: string;
|
||||
MinLine: integer = 0; MaxLine: integer = High(integer)): TMessageLineEnumerator;
|
||||
property UpdateSortedSrcPos: boolean // disable this while updating many Filename,Line,Col without changes the order
|
||||
read FUpdateSortedSrcPos write FUpdateSortedSrcPos;
|
||||
procedure AddChangedHandler(const OnLineChanged: TNotifyEvent;
|
||||
AsFirst: boolean = false);
|
||||
procedure RemoveChangedHandler(const OnLineChanged: TNotifyEvent);
|
||||
procedure ConsistencyCheck;
|
||||
public
|
||||
// always trimmed and with trailing /
|
||||
property BaseDirectory: string read FBaseDirectory write SetBaseDirectory;
|
||||
property ChangeStamp: int64 read FChangeStamp;
|
||||
property Items[Index: integer]: TMessageLine read GetItems; default;
|
||||
property MessageLineClass: TMessageLineClass read FMessageLineClass;
|
||||
property Owner: TObject read FOwner;
|
||||
property OnMarksFixed: TETMarksFixedEvent read FOnMarksFixed write FOnMarksFixed;
|
||||
// disable this while updating many Filename,Line,Col without changes the order
|
||||
property UpdateSortedSrcPos: boolean read FUpdateSortedSrcPos write FUpdateSortedSrcPos;
|
||||
end;
|
||||
|
||||
{ The output is parsed in chunks (multiple lines) at a time.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user