mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-16 18:09:23 +02:00
IDE: Use a faster compare method for case-insensitive strings and StringLists.
git-svn-id: trunk@64440 -
This commit is contained in:
parent
9c257cbd04
commit
20c5ac47c0
@ -19,6 +19,8 @@ uses
|
||||
Classes,
|
||||
// LCL
|
||||
Controls, ComCtrls, Menus,
|
||||
// LazUtils
|
||||
LazUTF8,
|
||||
// IdeIntf
|
||||
IDECommands, MenuIntf, IDEImagesIntf, SrcEditorIntf;
|
||||
|
||||
@ -120,8 +122,8 @@ type
|
||||
|
||||
TIDEToolButtonCategories = class
|
||||
private
|
||||
FButtonNames: TStringList;
|
||||
FCategories: TStringList;
|
||||
FButtonNames: TStringListUTF8Fast;
|
||||
FCategories: TStringListUTF8Fast;
|
||||
function GetItems(Index: Integer): TIDEToolButtonCategory;
|
||||
public
|
||||
constructor Create;
|
||||
@ -530,10 +532,10 @@ end;
|
||||
|
||||
constructor TIDEToolButtonCategories.Create;
|
||||
begin
|
||||
FButtonNames := TStringList.Create;
|
||||
FButtonNames := TStringListUTF8Fast.Create;
|
||||
FButtonNames.Sorted := True;
|
||||
FButtonNames.Duplicates := dupIgnore;
|
||||
FCategories := TStringList.Create;
|
||||
FCategories := TStringListUTF8Fast.Create;
|
||||
FCategories.Sorted := True;
|
||||
FCategories.Duplicates := dupIgnore;
|
||||
FCategories.OwnsObjects := True;
|
||||
|
@ -44,10 +44,14 @@ unit SynCompletion;
|
||||
interface
|
||||
|
||||
uses
|
||||
LCLProc, LCLIntf, LCLType, LazUTF8, LMessages, Classes, Graphics, Forms,
|
||||
Controls, StdCtrls, ExtCtrls, Menus, SysUtils, types, Themes,
|
||||
SynEditMiscProcs, SynEditKeyCmds, SynEdit, SynEditTypes, SynEditPlugins
|
||||
{$IF FPC_FULLVERSION >= 20701}, character{$ENDIF};
|
||||
Classes, SysUtils, Types, Character,
|
||||
// LCL
|
||||
LCLProc, LCLIntf, LCLType, LMessages, Graphics, Forms,
|
||||
Controls, StdCtrls, ExtCtrls, Menus, Themes,
|
||||
// LazUtils
|
||||
LazUTF8,
|
||||
// SynEdit
|
||||
SynEditMiscProcs, SynEditKeyCmds, SynEdit, SynEditTypes, SynEditPlugins;
|
||||
|
||||
type
|
||||
TSynBaseCompletionPaintItem =
|
||||
@ -1152,8 +1156,8 @@ begin
|
||||
end;
|
||||
end else begin
|
||||
for i := 0 to Pred(ItemList.Count) do
|
||||
if 0 = WideCompareText(UTF8Decode(fCurrentString),
|
||||
UTF8Decode(Copy(ItemList[i], 1, Length(fCurrentString))))
|
||||
if 0 = UTF8CompareLatinTextFast(fCurrentString,
|
||||
Copy(ItemList[i], 1, Length(fCurrentString)))
|
||||
then begin
|
||||
Position := i;
|
||||
break;
|
||||
|
@ -37,7 +37,7 @@ uses
|
||||
// CodeTools
|
||||
CodeCache, CodeToolManager, FileProcs,
|
||||
// LazUtils
|
||||
LConvEncoding, LazFileUtils, LazFileCache, LazStringUtils, AvgLvlTree,
|
||||
LConvEncoding, LazFileUtils, LazFileCache, LazStringUtils, LazUTF8, AvgLvlTree,
|
||||
// IDEIntf
|
||||
IDEWindowIntf, SrcEditorIntf, IDEHelpIntf, IDEImagesIntf,
|
||||
// IDE
|
||||
@ -97,7 +97,7 @@ end;
|
||||
|
||||
procedure TChgEncodingDialog.FormCreate(Sender: TObject);
|
||||
var
|
||||
List: TStringList;
|
||||
List: TStringListUTF8Fast;
|
||||
Encoding: string;
|
||||
i: Integer;
|
||||
begin
|
||||
@ -126,7 +126,7 @@ begin
|
||||
PreviewListView.Column[1].Caption:=uemEncoding;
|
||||
|
||||
// get possible encodings
|
||||
List:=TStringList.Create;
|
||||
List:=TStringListUTF8Fast.Create;
|
||||
GetSupportedEncodings(List);
|
||||
for i:=List.Count-1 downto 0 do begin
|
||||
Encoding:=List[i];
|
||||
@ -139,7 +139,7 @@ begin
|
||||
NewEncodingComboBox.Text:='UTF-8';
|
||||
|
||||
// get possible filters
|
||||
List:=TStringList.Create;
|
||||
List:=TStringListUTF8Fast.Create;
|
||||
List.Add('*.pas;*.pp;*.p;*.inc;*.lpr;*.lfm;*.lrs;*.txt');
|
||||
List.Sort;
|
||||
FileFilterCombobox.Items.Assign(List);
|
||||
@ -147,7 +147,7 @@ begin
|
||||
FileFilterCombobox.Text:=FileFilterCombobox.Items[0];
|
||||
|
||||
// get possible projects and packages
|
||||
List:=TStringList.Create;
|
||||
List:=TStringListUTF8Fast.Create;
|
||||
for i:=0 to PackageGraph.Count-1 do
|
||||
if (List.IndexOf(PackageGraph[i].Name)<0)
|
||||
and (not PackageGraph[i].ReadOnly)
|
||||
|
@ -84,7 +84,7 @@ type
|
||||
fResAction: TResAction;
|
||||
fAddUnitEvent: TAddUnitEvent;
|
||||
// Delphi Function names to replace with FCL/LCL functions.
|
||||
fDefinedProcNames: TStringList;
|
||||
fDefinedProcNames: TStringMap;
|
||||
// List of TFuncReplacement.
|
||||
fFuncsToReplace: TObjectList;
|
||||
|
||||
@ -667,7 +667,7 @@ var
|
||||
var
|
||||
FuncDefInfo, FuncCallInfo: TFuncReplacement;
|
||||
IdentName: string;
|
||||
i, x, IdentEndPos, IdentLen: Integer;
|
||||
i, IdentEndPos, IdentLen: Integer;
|
||||
begin
|
||||
IdentEndPos:=xStart;
|
||||
with fCTLink.CodeTool, fCTLink.Settings do
|
||||
@ -679,7 +679,7 @@ var
|
||||
StrMove(PChar(IdentName), @Src[xStart], IdentLen);
|
||||
// Don't try to uselessly find short identifiers
|
||||
if (IdentLen<ReplaceFuncs.MinFuncLen) and (IdentName<>'Ptr') then Exit;
|
||||
if fDefinedProcNames.Find(IdentName, x) then Exit;
|
||||
if fDefinedProcNames.Contains(IdentName) then Exit;
|
||||
if not ReplaceFuncs.Funcs.Find(IdentName, i) then Exit;
|
||||
// Now function name is found in replacement list, get function info.
|
||||
FuncDefInfo:=ReplaceFuncs.FuncAtInd(i);
|
||||
@ -801,9 +801,7 @@ begin
|
||||
Result:=false;
|
||||
with fCTLink.CodeTool do begin
|
||||
fFuncsToReplace:=TObjectList.Create;
|
||||
fDefinedProcNames:=TStringList.Create;
|
||||
fDefinedProcNames.Sorted:=True;
|
||||
fDefinedProcNames.Duplicates:=dupIgnore;
|
||||
fDefinedProcNames:=TStringMap.Create(False);
|
||||
ActivateGlobalWriteLock;
|
||||
try
|
||||
BuildTree(lsrEnd);
|
||||
|
@ -135,7 +135,7 @@ type
|
||||
// The user selected path when searching missing units.
|
||||
fPrevSelectedPath: string;
|
||||
// Missing units that are commented automatically in all units.
|
||||
fAllCommentedUnits: TStringList;
|
||||
fAllCommentedUnits: TStringListUTF8Fast;
|
||||
function DoMissingUnits({%H-}AUsedUnitsTool: TUsedUnitsTool): integer; virtual;
|
||||
function GetCachedUnitPath(const AUnitName: string): string;
|
||||
protected
|
||||
@ -177,10 +177,10 @@ type
|
||||
// Main unit with resource code
|
||||
fMainUnitConverter: TDelphiUnit;
|
||||
// Unit search path for project settings.
|
||||
fUnitSearchPaths: TStringList;
|
||||
fUnitSearchPaths: TStringListUTF8Fast;
|
||||
// Units that are found and will be added to project or package and converted.
|
||||
fUnitsToAddToProject: TStringList;
|
||||
fFilesToDelete: TStringList;
|
||||
fUnitsToAddToProject: TStringListUTF8Fast;
|
||||
fFilesToDelete: TStringListUTF8Fast;
|
||||
fUseThreads: boolean; // The project/package uses TThread.
|
||||
function ConvertSub: TModalResult;
|
||||
procedure CleanUpCompilerOptionsSearchPaths(Options: TBaseCompilerOptions);
|
||||
@ -957,16 +957,16 @@ constructor TConvertDelphiProjPack.Create(const AFilename, ADescription: string)
|
||||
begin
|
||||
inherited Create(AFilename, ADescription);
|
||||
fUseThreads:=False;
|
||||
fUnitSearchPaths:=TStringList.Create;
|
||||
fUnitSearchPaths:=TStringListUTF8Fast.Create;
|
||||
fUnitSearchPaths.Delimiter:=';';
|
||||
fUnitSearchPaths.StrictDelimiter:=True;
|
||||
fCachedUnitNames:=TStringToStringTree.Create(False);
|
||||
fCachedRealFileNames:=TStringToStringTree.Create(True);
|
||||
fAllCommentedUnits:=TStringList.Create;
|
||||
fAllCommentedUnits:=TStringListUTF8Fast.Create;
|
||||
fAllCommentedUnits.Sorted:=True;
|
||||
fUnitsToAddToProject:=TStringList.Create;
|
||||
fUnitsToAddToProject:=TStringListUTF8Fast.Create;
|
||||
fUnitsToAddToProject.Sorted:=True;
|
||||
fFilesToDelete:=TStringList.Create;
|
||||
fFilesToDelete:=TStringListUTF8Fast.Create;
|
||||
fFilesToDelete.Sorted:=True;
|
||||
fMainUnitConverter:=nil;
|
||||
end;
|
||||
@ -1384,7 +1384,6 @@ begin
|
||||
// Delete from file system because compiler would find it otherwise.
|
||||
if not DeleteFileUTF8(s) then
|
||||
exit(mrCancel);
|
||||
//fFilesToDelete.Delete(i);
|
||||
fSettings.AddLogLine(mluNote, Format(lisConvDeletedFile,[s]));
|
||||
end;
|
||||
end;
|
||||
|
@ -20,7 +20,7 @@ type
|
||||
TStringMapUpdater = class
|
||||
private
|
||||
fStringToStringMap: TStringToStringTree;
|
||||
fSeenNames: TStringList;
|
||||
fSeenNames: TStringMap;
|
||||
public
|
||||
constructor Create(AStringToStringMap: TStringToStringTree);
|
||||
destructor Destroy; override;
|
||||
@ -204,7 +204,7 @@ end;
|
||||
constructor TStringMapUpdater.Create(AStringToStringMap: TStringToStringTree);
|
||||
begin
|
||||
fStringToStringMap:=AStringToStringMap;
|
||||
fSeenNames:=TStringList.Create;
|
||||
fSeenNames:=TStringMap.Create(False);
|
||||
end;
|
||||
|
||||
destructor TStringMapUpdater.Destroy;
|
||||
@ -272,7 +272,7 @@ function TGridUpdater.AddUnique(AOldIdent: string): string;
|
||||
// Add a new Delphi -> Lazarus mapping to the grid.
|
||||
// Returns the replacement string.
|
||||
begin
|
||||
if fSeenNames.IndexOf(AOldIdent)<0 then begin
|
||||
if not fSeenNames.Contains(AOldIdent) then begin
|
||||
// Add only one instance of each name.
|
||||
fSeenNames.Add(AOldIdent);
|
||||
FindReplacement(AOldIdent, Result);
|
||||
|
@ -8,6 +8,8 @@ uses
|
||||
Classes, SysUtils,
|
||||
// LCL
|
||||
Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, ButtonPanel, EditBtn, Spin,
|
||||
// LazUtils
|
||||
LazUTF8,
|
||||
// IdeIntf
|
||||
IDEHelpIntf,
|
||||
// DebuggerIntf
|
||||
@ -203,12 +205,12 @@ var
|
||||
ws: TDBGWatchPointScope;
|
||||
wk: TDBGWatchPointKind;
|
||||
i: SizeInt;
|
||||
EnableGroupList, DisableGroupList: TStringList;
|
||||
EnableGroupList, DisableGroupList: TStringListUTF8Fast;
|
||||
begin
|
||||
if FBreakpoint = nil then Exit;
|
||||
|
||||
EnableGroupList := TStringList.Create;
|
||||
DisableGroupList := TStringList.Create;
|
||||
EnableGroupList := TStringListUTF8Fast.Create;
|
||||
DisableGroupList := TStringListUTF8Fast.Create;
|
||||
|
||||
try
|
||||
EnableGroupList.Delimiter := ';';
|
||||
|
@ -8,6 +8,8 @@ uses
|
||||
Classes,
|
||||
// LCL
|
||||
Forms, Controls, ButtonPanel, StdCtrls, CheckLst,
|
||||
// LazUtils
|
||||
LazUTF8,
|
||||
// IDE
|
||||
Debugger, LazarusIDEStrConsts;
|
||||
|
||||
@ -23,7 +25,7 @@ type
|
||||
Label1: TLabel;
|
||||
protected
|
||||
FBrkPointPoint: TIDEBreakPoint;
|
||||
FGroupList: TStringList;
|
||||
FGroupList: TStringListUTF8Fast;
|
||||
FAvailableGroups: TIDEBreakPointGroups;
|
||||
public
|
||||
{ public declarations }
|
||||
@ -75,7 +77,7 @@ begin
|
||||
inherited Create(nil);
|
||||
FBrkPointPoint := ABrkPointPoint;
|
||||
FAvailableGroups := AAvailableGroups;
|
||||
FGroupList := TStringList.Create;
|
||||
FGroupList := TStringListUTF8Fast.Create;
|
||||
FGroupList.Delimiter := ';';
|
||||
FGroupList.DelimitedText := AGroupList;
|
||||
|
||||
|
@ -29,7 +29,7 @@ uses
|
||||
// LCL
|
||||
Forms, Controls, StdCtrls, ExtCtrls, Buttons, Dialogs, ComCtrls, Menus,
|
||||
// LazUtils
|
||||
FileUtil, LazFileUtils, LazStringUtils, LazFileCache, LazLoggerBase,
|
||||
FileUtil, LazFileUtils, LazStringUtils, LazFileCache, LazLoggerBase, LazUTF8,
|
||||
// DebuggerIntf
|
||||
DbgIntfDebuggerBase,
|
||||
// IdeIntf
|
||||
@ -294,11 +294,11 @@ end;
|
||||
|
||||
procedure TDebuggerClassOptionsFrame.FillDebuggerClassDropDown;
|
||||
var
|
||||
List: TStringList;
|
||||
List: TStringListUTF8Fast;
|
||||
i: Integer;
|
||||
d: TDebuggerClass;
|
||||
begin
|
||||
List := TStringList.Create;
|
||||
List := TStringListUTF8Fast.Create;
|
||||
for i := 0 to TBaseDebugManagerIntf.DebuggerCount - 1 do begin
|
||||
d := TBaseDebugManagerIntf.Debuggers[i];
|
||||
List.AddObject(d.Caption, TObject(d));
|
||||
|
@ -36,9 +36,17 @@ unit LocalsDlg;
|
||||
interface
|
||||
|
||||
uses
|
||||
SysUtils, Classes, Forms, ClipBrd, LCLProc, LazLoggerBase, strutils,
|
||||
IDEWindowIntf, DebuggerStrConst, ComCtrls, ActnList, Menus, BaseDebugManager,
|
||||
Debugger, DebuggerDlg, DbgIntfDebuggerBase;
|
||||
SysUtils, Classes, StrUtils,
|
||||
// LCL
|
||||
Forms, ClipBrd, ComCtrls, ActnList, Menus,
|
||||
// LazUtils
|
||||
LazLoggerBase, LazUTF8,
|
||||
// IdeIntf
|
||||
IDEWindowIntf,
|
||||
// DebuggerIntf
|
||||
DbgIntfDebuggerBase,
|
||||
// IDE
|
||||
DebuggerStrConst, BaseDebugManager, Debugger, DebuggerDlg;
|
||||
|
||||
type
|
||||
|
||||
@ -387,7 +395,7 @@ end;
|
||||
procedure TLocalsDlg.LocalsChanged(Sender: TObject);
|
||||
var
|
||||
n, idx: Integer;
|
||||
List: TStringList;
|
||||
List: TStringListUTF8Fast;
|
||||
Item: TListItem;
|
||||
S: String;
|
||||
Locals: TIDELocals;
|
||||
@ -422,7 +430,7 @@ begin
|
||||
Caption:= lisLocals;
|
||||
end;
|
||||
|
||||
List := TStringList.Create;
|
||||
List := TStringListUTF8Fast.Create;
|
||||
try
|
||||
BeginUpdate;
|
||||
try
|
||||
|
@ -36,10 +36,17 @@ unit RegistersDlg;
|
||||
interface
|
||||
|
||||
uses
|
||||
SysUtils, Classes, Controls, Forms, Clipbrd,
|
||||
BaseDebugManager, IDEWindowIntf, DebuggerStrConst,
|
||||
ComCtrls, ActnList, Menus, Grids, Debugger, DebuggerDlg,
|
||||
LazarusIDEStrConsts, IDEImagesIntf, DbgIntfDebuggerBase, Types;
|
||||
SysUtils, Classes, Types,
|
||||
// LCL
|
||||
Controls, Forms, Clipbrd, ComCtrls, ActnList, Menus, Grids,
|
||||
// LazUtils
|
||||
LazUTF8,
|
||||
// IdeIntf
|
||||
IDEWindowIntf, IDEImagesIntf,
|
||||
// DebuggerIntf
|
||||
DbgIntfDebuggerBase,
|
||||
// IDE
|
||||
BaseDebugManager, LazarusIDEStrConsts, DebuggerStrConst, Debugger, DebuggerDlg;
|
||||
|
||||
type
|
||||
|
||||
@ -446,7 +453,7 @@ end;
|
||||
procedure TRegistersDlg.RegistersChanged(Sender: TObject);
|
||||
var
|
||||
n, i, idx, Cnt: Integer;
|
||||
List: TStringList;
|
||||
List: TStringListUTF8Fast;
|
||||
S: String;
|
||||
Reg: TRegisters;
|
||||
begin
|
||||
@ -472,7 +479,7 @@ begin
|
||||
exit;
|
||||
end;
|
||||
|
||||
List := TStringList.Create;
|
||||
List := TStringListUTF8Fast.Create;
|
||||
try
|
||||
//Get existing items
|
||||
for n := 1 to lvRegisters.RowCount - 1 do
|
||||
|
@ -39,7 +39,7 @@ uses
|
||||
// LCL
|
||||
Forms, Controls, Dialogs, StdCtrls, Buttons, Spin, ExtCtrls, Graphics,
|
||||
// LazUtils
|
||||
LazUtilities,
|
||||
LazUtilities, LazUTF8,
|
||||
// IdeIntf
|
||||
IDECommands, PropEdits, IDEDialogs, IDEImagesIntf,
|
||||
// IDE
|
||||
@ -937,7 +937,7 @@ end;
|
||||
|
||||
procedure TAnchorDesigner.FillComboBoxWithSiblings(AComboBox: TComboBox);
|
||||
var
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
i: Integer;
|
||||
CurControl: TControl;
|
||||
j: Integer;
|
||||
@ -961,7 +961,7 @@ var
|
||||
end;
|
||||
|
||||
begin
|
||||
sl:=TStringList.Create;
|
||||
sl:=TStringListUTF8Fast.Create;
|
||||
sl.Add(AnchorDesignerNoSiblingText);
|
||||
HasSelectedSiblings:=false;
|
||||
SelectedControls:=GetSelectedControls;
|
||||
|
@ -24,7 +24,7 @@ type
|
||||
strict private
|
||||
FLastSortIndex: integer;
|
||||
FMenu: TMenu;
|
||||
FscList: TStringList;
|
||||
FscList: TStringListUTF8Fast;
|
||||
FSingleMenuOnly: boolean;
|
||||
FShortcutsOnly: boolean;
|
||||
FShortcuts: TMenuShortcuts;
|
||||
@ -371,7 +371,7 @@ var
|
||||
begin
|
||||
Assert(FMenu<>nil,'TShortcutDisplayDlg.UpdateFromMenu: FMenu is nil');
|
||||
FreeAndNil(FscList);
|
||||
FscList:=TStringList.Create;
|
||||
FscList:=TStringListUTF8Fast.Create;
|
||||
FscList.CaseSensitive:=False;
|
||||
FDualDisplay.ClearContents;
|
||||
for i:=0 to FMenu.Items.Count-1 do
|
||||
|
@ -108,10 +108,10 @@ end;
|
||||
|
||||
procedure TBuildModeDiffDialog.FillModeComboBox;
|
||||
var
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
i: Integer;
|
||||
begin
|
||||
sl:=TStringList.Create;
|
||||
sl:=TStringListUTF8Fast.Create;
|
||||
try
|
||||
if BuildModes<>nil then
|
||||
for i:=0 to BuildModes.Count-1 do
|
||||
|
@ -205,11 +205,12 @@ begin
|
||||
FOptions:=AValue;
|
||||
end;
|
||||
|
||||
procedure TCheckCompilerOptsDlg.SetMsgDirectory(Index: integer;
|
||||
const CurDir: string);
|
||||
procedure TCheckCompilerOptsDlg.SetMsgDirectory(Index: integer; const CurDir: string);
|
||||
begin
|
||||
if FDirectories=nil then FDirectories:=TStringList.Create;
|
||||
while FDirectories.Count<=Index do FDirectories.Add('');
|
||||
if FDirectories=nil then
|
||||
FDirectories:=TStringList.Create;
|
||||
while FDirectories.Count<=Index do
|
||||
FDirectories.Add('');
|
||||
FDirectories[Index]:=CurDir;
|
||||
end;
|
||||
|
||||
@ -694,13 +695,13 @@ var
|
||||
p: Integer;
|
||||
Directory: String;
|
||||
FileInfo: TSearchRec;
|
||||
WarnedDirectories: TStringList;
|
||||
WarnedDirectories: TStringListUTF8Fast;
|
||||
begin
|
||||
FTest:=cotCheckFPCUnitPathsContainSources;
|
||||
LabelTest.Caption:=dlgCCOTestSrcInPPUPaths;
|
||||
|
||||
Result:=mrCancel;
|
||||
WarnedDirectories:=TStringList.Create;
|
||||
WarnedDirectories:=TStringListUTF8Fast.Create;
|
||||
p:=1;
|
||||
while p<=length(FPCCfgUnitPath) do begin
|
||||
Directory:=TrimFilename(GetNextDirectoryInSearchPath(FPCCfgUnitPath,p));
|
||||
|
@ -156,18 +156,13 @@ end;
|
||||
|
||||
procedure TCheckCompOptsForNewUnitDialog.FormCreate(Sender: TObject);
|
||||
var
|
||||
sl: TStringList;
|
||||
i: Integer;
|
||||
begin
|
||||
Caption:=lisDirectivesForNewUnit;
|
||||
ButtonPanel1.OKButton.Caption:=lisContinue;
|
||||
|
||||
ModeLabel.Caption:=lisSyntaxMode;
|
||||
sl:=TStringList.Create;
|
||||
for i:=low(FPCSyntaxModes) to high(FPCSyntaxModes) do
|
||||
sl.Add(FPCSyntaxModes[i]);
|
||||
ModeComboBox.Items.Assign(sl);
|
||||
sl.Free;
|
||||
ModeComboBox.Items.Add(FPCSyntaxModes[i]);
|
||||
AnsistringCheckBox.Caption:=lisUseAnsistrings;
|
||||
DoNotWarnCheckBox.Caption:=lisDoNotShowThisDialogForThisProject;
|
||||
end;
|
||||
|
@ -402,10 +402,8 @@ begin
|
||||
finally
|
||||
RemoveFilterRegExpr.Free;
|
||||
KeepFilterRegExpr.Free;
|
||||
if not Result then begin
|
||||
List.Free;
|
||||
List:=nil;
|
||||
end;
|
||||
if not Result then
|
||||
FreeAndNil(List);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -54,7 +54,7 @@ uses
|
||||
BasicCodeTools, DefineTemplates, CodeTree, CodeCache, CodeToolManager,
|
||||
PascalParserTool, LinkScanner, FileProcs, CodeIndex, StdCodeTools, SourceLog,
|
||||
// LazUtils
|
||||
LazFileUtils, LazStringUtils, AvgLvlTree,
|
||||
LazFileUtils, LazStringUtils, LazUTF8, AvgLvlTree,
|
||||
// IDEIntf
|
||||
IDEWindowIntf, SrcEditorIntf, IDEMsgIntf, IDEDialogs, LazConfigStorage,
|
||||
IDEHelpIntf, PackageIntf, IDECommands, LazIDEIntf, IDEExternToolIntf,
|
||||
@ -782,11 +782,11 @@ end;
|
||||
|
||||
procedure TCodeBrowserView.FillScopeComboBox;
|
||||
var
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
i: Integer;
|
||||
begin
|
||||
if ScopeComboBox.Items.Count=0 then begin
|
||||
sl:=TStringList.Create;
|
||||
sl:=TStringListUTF8Fast.Create;
|
||||
try
|
||||
if PackageGraph<>nil then begin
|
||||
for i:=0 to PackageGraph.Count-1 do
|
||||
|
@ -2792,7 +2792,6 @@ var
|
||||
I, J, LeftMost : Integer;
|
||||
begin
|
||||
try
|
||||
Lines := nil;
|
||||
Lines := TStringList.Create;
|
||||
Lines.Text := Comment;
|
||||
|
||||
|
@ -36,7 +36,7 @@ uses
|
||||
LCLProc, Forms, Controls, Dialogs, ClipBrd, StdCtrls, ExtCtrls, Menus,
|
||||
ButtonPanel, EditBtn,
|
||||
// LazUtils
|
||||
FileUtil, LazFileUtils, LazLoggerBase, LazStringUtils,
|
||||
FileUtil, LazFileUtils, LazLoggerBase, LazStringUtils, LazUTF8,
|
||||
// synedit
|
||||
SynEdit, SynHighlighterPas, SynEditAutoComplete,
|
||||
// codetools
|
||||
@ -654,9 +654,8 @@ begin
|
||||
lastword:=re.MatchPos[0];
|
||||
until (not re.ExecNext);
|
||||
end;
|
||||
s:=st[st.count-1];
|
||||
st.Delete(st.count-1);
|
||||
st.Insert(0,s);
|
||||
if st.Count>1 then
|
||||
st.Move(st.count-1, 0);
|
||||
if(iParam<0)then
|
||||
begin
|
||||
p.X:=SrcEdit.CursorTextXY.x;
|
||||
@ -1069,9 +1068,9 @@ end;
|
||||
procedure TCodeTemplateDialog.FillCodeTemplateListBox;
|
||||
var
|
||||
a: PtrInt;
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
begin
|
||||
sl:=TStringList.Create;
|
||||
sl:=TStringListUTF8Fast.Create;
|
||||
try
|
||||
for a:=0 to SynAutoComplete.Completions.Count-1 do begin
|
||||
// Add the index in SynAutoComplete as Object, since both indexes won't
|
||||
|
@ -183,7 +183,7 @@ type
|
||||
fInvalidOptions: TStringList; // and will be included in output.
|
||||
// List of categories parsed from "fpc -i". Contains category names,
|
||||
// Objects[] contains another StringList for the selection list.
|
||||
fSupportedCategories: TStringList;
|
||||
fSupportedCategories: TStringListUTF8Fast;
|
||||
// Hierarchy of options parsed from "fpc -h".
|
||||
fRootOptGroup: TCompilerOptGroup;
|
||||
fCompilerExecutable: string; // Compiler path must be set by caller.
|
||||
@ -938,7 +938,7 @@ begin
|
||||
inherited Create;
|
||||
fDefines := TStringList.Create;
|
||||
fInvalidOptions := TStringList.Create;
|
||||
fSupportedCategories := TStringList.Create;
|
||||
fSupportedCategories := TStringListUTF8Fast.Create;
|
||||
fSupportedCategories.Sorted := True;
|
||||
fGeneratedOptions := TStringList.Create;
|
||||
fRootOptGroup := TCompilerOptGroup.Create(Self, Nil);
|
||||
|
@ -37,7 +37,7 @@ uses
|
||||
LCLType, Forms, Controls, Graphics, StdCtrls, ExtCtrls, ComCtrls, Menus, Buttons,
|
||||
Dialogs, ImgList,
|
||||
// LazUtils
|
||||
LazLoggerBase,
|
||||
LazLoggerBase, LazUTF8,
|
||||
// LazControls
|
||||
TreeFilterEdit,
|
||||
// IdeIntf
|
||||
@ -94,7 +94,7 @@ type
|
||||
private
|
||||
PrevChangeStamp: Integer;
|
||||
// List for Component inheritence view
|
||||
FClassList: TStringList;
|
||||
FClassList: TStringListUTF8Fast;
|
||||
FKeepSelected: Boolean;
|
||||
FInitialized: Boolean;
|
||||
FIgnoreSelection: Boolean;
|
||||
@ -398,13 +398,12 @@ begin
|
||||
ListTree.BeginUpdate;
|
||||
PalletteTree.BeginUpdate;
|
||||
InheritanceTree.Items.BeginUpdate;
|
||||
FClassList := TStringList.Create;
|
||||
FClassList := TStringListUTF8Fast.Create;
|
||||
try
|
||||
ListTree.Items.Clear;
|
||||
PalletteTree.Items.Clear;
|
||||
InheritanceTree.Items.Clear;
|
||||
FClassList.Sorted := true;
|
||||
FClassList.CaseSensitive := false;
|
||||
FClassList.Duplicates := dupIgnore;
|
||||
// ParentInheritence := InheritanceTree.Items.Add(nil, 'TComponent');
|
||||
// FClassList.AddObject('TComponent', ParentInheritence);
|
||||
|
@ -34,10 +34,16 @@ unit CompPagesPopup;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, math, FileUtil, LazLoggerBase, Forms, Controls, Graphics,
|
||||
LMessages, Dialogs, ComCtrls, ExtCtrls, Buttons, LCLIntf, LCLType,
|
||||
IDEImagesIntf, MenuIntf, LazarusIDEStrConsts, MainBar,
|
||||
ComponentPalette_Options, MainBase;
|
||||
Classes, SysUtils, math,
|
||||
// LCL
|
||||
LCLIntf, LCLType, LMessages, Forms, Controls, ComCtrls, ExtCtrls,
|
||||
Graphics, Dialogs, Buttons,
|
||||
// LazUtils
|
||||
LazLoggerBase, LazUTF8,
|
||||
// IdeIntf
|
||||
IDEImagesIntf, MenuIntf,
|
||||
// IDE
|
||||
LazarusIDEStrConsts, ComponentPalette_Options, MainBase, MainBar;
|
||||
|
||||
type
|
||||
|
||||
@ -55,7 +61,7 @@ type
|
||||
procedure TreeView1Click(Sender: TObject);
|
||||
private
|
||||
fViewAllNode, fOptionsNode: TTreeNode;
|
||||
fGroups: TStringList; // Objects have group TreeNodes
|
||||
fGroups: TStringListUTF8Fast; // Objects have group TreeNodes
|
||||
fLastCloseUp: QWord;
|
||||
fLastCanShowCheck: Boolean;
|
||||
procedure AppDeactivated(Sender: TObject);
|
||||
@ -305,7 +311,7 @@ begin
|
||||
TreeView1.Items.AddChild(nil,'Sorry, No Pages');
|
||||
Exit;
|
||||
end;
|
||||
fGroups := TStringList.Create;
|
||||
fGroups := TStringListUTF8Fast.Create;
|
||||
try
|
||||
FindGroups;
|
||||
for i:=0 to MainIDEBar.ComponentPageControl.PageCount-1 do
|
||||
|
@ -45,6 +45,7 @@ uses
|
||||
Forms, Menus, Dialogs,
|
||||
// LazUtils
|
||||
FileUtil, LazFileUtils, LazFileCache, CompWriterPas, LazLoggerBase, LazTracer,
|
||||
LazUTF8,
|
||||
// Codetools
|
||||
CodeCache, CodeTree, CodeToolManager, FindDeclarationTool,
|
||||
// IDEIntf
|
||||
@ -1969,7 +1970,7 @@ begin
|
||||
// cache defined properties
|
||||
if (DefinePropertiesReader<>nil)
|
||||
and (DefinePropertiesReader.DefinePropertyNames<>nil) then begin
|
||||
CacheItem.DefineProperties:=TStringList.Create;
|
||||
CacheItem.DefineProperties:=TStringListUTF8Fast.Create;
|
||||
CacheItem.DefineProperties.Assign(DefinePropertiesReader.DefinePropertyNames);
|
||||
debugln('TCustomFormEditor.FindDefineProperty Class=',APersistentClassName,
|
||||
' DefineProps="',CacheItem.DefineProperties.Text,'"');
|
||||
@ -2004,7 +2005,7 @@ begin
|
||||
CacheItem:=TDefinePropertiesCacheItem(ANode.Data);
|
||||
end;
|
||||
if (CacheItem.DefineProperties=nil) then
|
||||
CacheItem.DefineProperties:=TStringList.Create;
|
||||
CacheItem.DefineProperties:=TStringListUTF8Fast.Create;
|
||||
if (CacheItem.DefineProperties.IndexOf(Identifier)<0) then
|
||||
CacheItem.DefineProperties.Add(Identifier);
|
||||
end;
|
||||
@ -2618,7 +2619,8 @@ end;
|
||||
procedure TDefinePropertiesReader.AddPropertyName(const Name: string);
|
||||
begin
|
||||
debugln('TDefinePropertiesReader.AddPropertyName Name="',Name,'"');
|
||||
if FDefinePropertyNames=nil then FDefinePropertyNames:=TStringList.Create;
|
||||
if FDefinePropertyNames=nil then
|
||||
FDefinePropertyNames:=TStringListUTF8Fast.Create;
|
||||
if FDefinePropertyNames.IndexOf(Name)<=0 then
|
||||
FDefinePropertyNames.Add(Name);
|
||||
end;
|
||||
|
@ -35,6 +35,8 @@ uses
|
||||
Classes, SysUtils, Laz_AVL_Tree,
|
||||
// LCL
|
||||
Forms, Controls, Dialogs, ExtCtrls, StdCtrls, ButtonPanel, LCLProc,
|
||||
// LazUtils
|
||||
LazUTF8,
|
||||
// Codetools
|
||||
BasicCodeTools, CodeTree, CodeCache, CodeToolManager, ExtractProcTool,
|
||||
// IdeIntf
|
||||
@ -304,12 +306,12 @@ procedure TExtractProcDialog.UpdateFunction;
|
||||
var
|
||||
AVLNode: TAVLTreeNode;
|
||||
Variable: TExtractedProcVariable;
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
begin
|
||||
FuncVariableComboBox.Items.BeginUpdate;
|
||||
FuncVariableComboBox.Items.Clear;
|
||||
if Variables<>nil then begin
|
||||
sl:=TStringList.Create;
|
||||
sl:=TStringListUTF8Fast.Create;
|
||||
try
|
||||
AVLNode:=Variables.FindLowest;
|
||||
while AVLNode<>nil do begin
|
||||
|
@ -32,7 +32,7 @@ uses
|
||||
// LCL
|
||||
Controls, Dialogs, Graphics, StdCtrls,
|
||||
// LazUtils
|
||||
LazFileUtils, LazStringUtils,
|
||||
LazFileUtils, LazStringUtils, LazUTF8,
|
||||
// CodeTools
|
||||
DefineTemplates,
|
||||
// IdeIntf
|
||||
@ -229,7 +229,7 @@ end;
|
||||
procedure TCompilerConfigTargetFrame.UpdateByTargetCPU(aTargetCPU: string);
|
||||
var
|
||||
ParsingFrame: TCompilerParsingOptionsFrame;
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
i: Integer;
|
||||
begin
|
||||
if aTargetCPU = '' then
|
||||
@ -240,7 +240,7 @@ begin
|
||||
end;
|
||||
|
||||
// Update selection list for target processor
|
||||
sl:=TStringList.Create;
|
||||
sl:=TStringListUTF8Fast.Create;
|
||||
GetTargetProcessors(aTargetCPU,sl);
|
||||
sl.Sort;
|
||||
sl.Insert(0,'('+lisDefault+')');
|
||||
|
@ -642,16 +642,16 @@ var
|
||||
Macros: TLazBuildMacros;
|
||||
Macro: TLazBuildMacro;
|
||||
LCLWidgetTypeMacro: TLazBuildMacro;
|
||||
List: TStringList;
|
||||
xList: TStringListUTF8Fast;
|
||||
MenuIndex: Integer;
|
||||
MacroMenuItem: TMenuItem;
|
||||
PkgList: TFPList;
|
||||
begin
|
||||
LCLWidgetTypeMacro:=Nil;
|
||||
PkgList:=nil;
|
||||
List:=TStringList.Create;
|
||||
xList:=TStringListUTF8Fast.Create;
|
||||
try
|
||||
// First collect all macros from all used packages to a sorted list.
|
||||
// First collect all macros from all used packages to a sorted xList.
|
||||
PackageGraph.GetAllRequiredPackages(nil,LazProject.FirstRequiredDependency,PkgList);
|
||||
if PkgList<>nil then begin
|
||||
for i:=0 to PkgList.Count-1 do begin
|
||||
@ -662,20 +662,20 @@ begin
|
||||
if Macro.Identifier = 'LCLWidgetType' then
|
||||
LCLWidgetTypeMacro:=Macro
|
||||
else if IsValidIdent(Macro.Identifier) then
|
||||
List.AddObject(Macro.Identifier,Macro);
|
||||
xList.AddObject(Macro.Identifier,Macro);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
List.Sort;
|
||||
xList.Sort;
|
||||
// LCLWidgetType gets its own button.
|
||||
BMMAddLclWidgetButton.Enabled:=Assigned(LCLWidgetTypeMacro);
|
||||
if Assigned(LCLWidgetTypeMacro) then
|
||||
AddLCLWidgetTypeValues(BMMAddLclWidgetPopupMenu, LCLWidgetTypeMacro);
|
||||
// Place other macros to the popup menu opened from "Add" button.
|
||||
MenuIndex:=BMMNewTargetMenuItem.MenuIndex;
|
||||
for i:=0 to List.Count-1 do begin
|
||||
for i:=0 to xList.Count-1 do begin
|
||||
inc(MenuIndex);
|
||||
Macro:=TLazBuildMacro(List.Objects[i]);
|
||||
Macro:=TLazBuildMacro(xList.Objects[i]);
|
||||
if BMMAddOtherPopupMenu.Items.Count=MenuIndex then
|
||||
BMMAddOtherPopupMenu.Items.Add(TMenuItem.Create(Self));
|
||||
MacroMenuItem:=BMMAddOtherPopupMenu.Items[MenuIndex];
|
||||
@ -684,7 +684,7 @@ begin
|
||||
end;
|
||||
finally
|
||||
PkgList.Free;
|
||||
List.Free;
|
||||
xList.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -26,10 +26,10 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
// LazUtils
|
||||
FileUtil,
|
||||
// LCL
|
||||
Forms, StdCtrls, Dialogs, LCLProc, ExtCtrls, Spin,
|
||||
// LazUtils
|
||||
FileUtil, LazUTF8,
|
||||
// LazControls
|
||||
DividerBevel,
|
||||
// IdeIntf
|
||||
@ -105,14 +105,14 @@ procedure TDesktopOptionsFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
|
||||
var
|
||||
i: Integer;
|
||||
LangID: String;
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
begin
|
||||
// language
|
||||
lblLanguage.Caption := dlgEnvLanguage;
|
||||
LanguageComboBox.Hint := dlgEnvLanguageHint;
|
||||
|
||||
// languages: first the automatic, then sorted the rest
|
||||
sl:=TStringList.Create;
|
||||
sl:=TStringListUTF8Fast.Create;
|
||||
for i:=0 to LazarusTranslations.Count-1 do
|
||||
begin
|
||||
LangID:=LazarusTranslations[i].ID;
|
||||
|
@ -8,6 +8,8 @@ uses
|
||||
Classes, SysUtils,
|
||||
// LCL
|
||||
Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,
|
||||
// LazUtils
|
||||
LazUTF8,
|
||||
// IdeIntf
|
||||
IDEOptionsIntf, IDEOptEditorIntf, ProjectIntf, IDEImagesIntf,
|
||||
// IDE
|
||||
@ -237,7 +239,7 @@ var
|
||||
|
||||
procedure FillAvailFormsListBox;
|
||||
var
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
i: integer;
|
||||
begin
|
||||
FormsAvailFormsListBox.Items.BeginUpdate;
|
||||
@ -245,7 +247,7 @@ var
|
||||
|
||||
if (Project <> nil) then
|
||||
begin
|
||||
sl := TStringList.Create;
|
||||
sl := TStringListUTF8Fast.Create;
|
||||
try
|
||||
for i := 0 to Project.UnitCount - 1 do
|
||||
if (Project.Units[i].IsPartOfProject) and
|
||||
|
@ -46,8 +46,8 @@ type
|
||||
FModified: Boolean;
|
||||
private
|
||||
FAddResourceItemDuplicates: integer;
|
||||
FResourceNameList: TStringList; // to keep resource names unique
|
||||
FResourceFileNameList: TStringList; // to keep resource file names unique
|
||||
FResourceNameList: TStringListUTF8Fast; // to keep resource names unique
|
||||
FResourceFileNameList: TStringListUTF8Fast; // to keep resource file names unique
|
||||
// Used to know what was resource name before editing.
|
||||
FCurrentResName: string;
|
||||
// Begin adding resources.
|
||||
@ -288,11 +288,11 @@ constructor TResourcesOptionsFrame.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
|
||||
FResourceNameList := TStringList.Create;
|
||||
FResourceNameList := TStringListUTF8Fast.Create;
|
||||
FResourceNameList.Sorted := True;
|
||||
FResourceNameList.Duplicates := dupError;
|
||||
|
||||
FResourceFileNameList := TStringList.Create;
|
||||
FResourceFileNameList := TStringListUTF8Fast.Create;
|
||||
FResourceFileNameList.Sorted := True;
|
||||
FResourceFileNameList.Duplicates := dupError;
|
||||
end;
|
||||
|
@ -42,7 +42,7 @@ uses
|
||||
LCLProc, LCLIntf, Dialogs, Forms, Controls, StdCtrls, ExtCtrls, Graphics,
|
||||
ButtonPanel, LazHelpHTML,
|
||||
// LazUtils
|
||||
LazConfigStorage, LazFileUtils, LazFileCache,
|
||||
LazConfigStorage, LazFileUtils, LazFileCache, LazUTF8,
|
||||
// CodeTools
|
||||
FileProcs, CodeToolsFPCMsgs, CodeToolManager, CodeCache, DefineTemplates,
|
||||
// IdeIntf
|
||||
@ -639,10 +639,10 @@ end;
|
||||
|
||||
procedure TEditIDEMsgHelpDialog.FillAdditionsList;
|
||||
var
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
i: Integer;
|
||||
begin
|
||||
sl:=TStringList.Create;
|
||||
sl:=TStringListUTF8Fast.Create;
|
||||
try
|
||||
for i:=0 to Additions.Count-1 do
|
||||
sl.Add(Additions[i].Name);
|
||||
|
@ -264,15 +264,15 @@ end;
|
||||
procedure TIDEInfoDialog.GatherEnvironmentVars(sl: TStrings);
|
||||
var
|
||||
i: Integer;
|
||||
l: TStringList;
|
||||
TempList: TStringListUTF8Fast;
|
||||
begin
|
||||
sl.Add('Environment variables:');
|
||||
l:=TStringList.Create;
|
||||
TempList:=TStringListUTF8Fast.Create;
|
||||
for i:=0 to GetEnvironmentVariableCount-1 do
|
||||
l.Add(GetEnvironmentStringUTF8(i));
|
||||
l.Sort;
|
||||
sl.AddStrings(l);
|
||||
l.free;
|
||||
TempList.Add(GetEnvironmentStringUTF8(i));
|
||||
TempList.Sort;
|
||||
sl.AddStrings(TempList);
|
||||
TempList.free;
|
||||
sl.Add('');
|
||||
end;
|
||||
|
||||
|
@ -34,7 +34,7 @@ uses
|
||||
// LCL
|
||||
Forms, Controls, StdCtrls, ButtonPanel, LCLType,
|
||||
// LazUtils
|
||||
LazUtilities,
|
||||
LazUtilities, LazUTF8,
|
||||
// IdeIntf
|
||||
IDEWindowIntf, LazIDEIntf, ProjectIntf, PackageIntf,
|
||||
// IDE
|
||||
@ -195,10 +195,10 @@ end;
|
||||
|
||||
procedure TIDEInfoNeedBuildDlg.FillTargets;
|
||||
var
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
i: Integer;
|
||||
begin
|
||||
sl:=TStringList.Create;
|
||||
sl:=TStringListUTF8Fast.Create;
|
||||
try
|
||||
for i:=0 to PackageGraph.Count-1 do
|
||||
sl.Add(PackageGraph[i].Name);
|
||||
|
@ -216,19 +216,16 @@ function TIDEInstances.ProjectIsOpenInAnotherInstance(aProjectFileName: string
|
||||
var
|
||||
xStartClient: TResponseClient;
|
||||
I: Integer;
|
||||
xServerIDs, xOpenedProjectFiles: TStringList;
|
||||
xServerIDs: TStringList;
|
||||
xProjFileName: string;
|
||||
begin
|
||||
aProjectFileName := ExtractFilePath(aProjectFileName)+ExtractFileNameOnly(aProjectFileName);
|
||||
|
||||
xStartClient := nil;
|
||||
xServerIDs := nil;
|
||||
xOpenedProjectFiles := nil;
|
||||
try
|
||||
xStartClient := TResponseClient.Create(nil);
|
||||
xServerIDs := TStringList.Create;
|
||||
xOpenedProjectFiles := TStringList.Create;
|
||||
|
||||
xStartClient.FindRunningServers(LazServerPrefix, xServerIDs);
|
||||
|
||||
for I := 0 to xServerIDs.Count-1 do
|
||||
@ -246,9 +243,7 @@ begin
|
||||
finally
|
||||
xStartClient.Free;
|
||||
xServerIDs.Free;
|
||||
xOpenedProjectFiles.Free;
|
||||
end;
|
||||
|
||||
Result := False;
|
||||
end;
|
||||
|
||||
@ -395,11 +390,11 @@ function TIDEInstances.AllowStartNewInstance(const aFiles: TStrings;
|
||||
var
|
||||
xStartClient: TResponseClient;
|
||||
I: Integer;
|
||||
xServerIDs: TStringList;
|
||||
xServerIDs: TStringListUTF8Fast;
|
||||
begin
|
||||
Result := ofrStartNewInstance;
|
||||
xStartClient := TResponseClient.Create(nil);
|
||||
xServerIDs := TStringList.Create;
|
||||
xServerIDs := TStringListUTF8Fast.Create;
|
||||
try //check for multiple instances
|
||||
xStartClient.FindRunningServers(LazServerPrefix, xServerIDs);
|
||||
xServerIDs.Sort;
|
||||
|
@ -758,7 +758,7 @@ end;
|
||||
function CompareRecentListItem(s1, s2: string; ListType: TRecentListType): boolean;
|
||||
begin
|
||||
case ListType of
|
||||
rltCaseInsensitive: Result:=UTF8LowerCase(s1)=UTF8LowerCase(s2);
|
||||
rltCaseInsensitive: Result:=UTF8CompareLatinTextFast(s1,s2)=0;
|
||||
rltFile: Result:=CompareFilenames(ChompPathDelim(s1),ChompPathDelim(s2))=0;
|
||||
else Result:=s1=s2;
|
||||
end;
|
||||
@ -1059,10 +1059,10 @@ end;
|
||||
procedure RemoveDoubles(List: TStrings);
|
||||
var
|
||||
i: Integer;
|
||||
List2: TStringList;
|
||||
List2: TStringListUTF8Fast;
|
||||
begin
|
||||
if List=nil then exit;
|
||||
List2:=TStringList.Create;
|
||||
List2:=TStringListUTF8Fast.Create;
|
||||
List2.AddStrings(List);
|
||||
List2.Sort;
|
||||
List.Assign(List2);
|
||||
|
@ -247,7 +247,7 @@ begin
|
||||
SplashForm := nil;
|
||||
|
||||
// get command line parameters
|
||||
FCmdLineParams := TStringList.Create;
|
||||
FCmdLineParams := TStringListUTF8Fast.Create;
|
||||
ParseCommandLine(FCmdLineParams, FLazarusPID, FShowSplashOption);
|
||||
if FShowSplashOption then
|
||||
ShowSplash;
|
||||
|
@ -60,7 +60,7 @@ uses
|
||||
// LCL
|
||||
LCLProc, Buttons, Menus, ComCtrls, Controls, Graphics, Dialogs, Forms, ImgList,
|
||||
// LazUtils
|
||||
LazFileUtils,
|
||||
LazFileUtils, LazUTF8,
|
||||
// Codetools
|
||||
CodeToolManager,
|
||||
// SynEdit
|
||||
@ -1527,8 +1527,8 @@ var
|
||||
i, EditorIndex, ItemCountProject, ItemCountOther, IconInd: Integer;
|
||||
CurMenuItem: TIDEMenuItem;
|
||||
AForm: TForm;
|
||||
EdList: TStringList;
|
||||
EditorCur: TSourceEditor;
|
||||
EdList: TStringListUTF8Fast;
|
||||
se: TSourceEditor;
|
||||
P: TIDEPackage;
|
||||
aSection: TIDEMenuSection;
|
||||
s: String;
|
||||
@ -1594,27 +1594,23 @@ begin
|
||||
if SourceEditorManager.SourceEditorCount > 0 then begin
|
||||
ItemCountProject := 0;
|
||||
ItemCountOther := 0;
|
||||
EdList := TStringList.Create;
|
||||
EdList := TStringListUTF8Fast.Create;
|
||||
EdList.OwnsObjects := False;
|
||||
EdList.Sorted := True;
|
||||
// sort
|
||||
for i := 0 to SourceEditorManager.SourceEditorCount - 1 do begin
|
||||
EdList.AddObject(SourceEditorManager.SourceEditors[i].PageName+' '
|
||||
+SourceEditorManager.SourceEditors[i].FileName
|
||||
+SourceEditorManager.SourceEditors[i].Owner.Name,
|
||||
TObject(PtrUInt(i))
|
||||
);
|
||||
se := SourceEditorManager.SourceEditors[i];
|
||||
EdList.AddObject(se.PageName+' '+se.FileName+se.Owner.Name, TObject(PtrUInt(i)));
|
||||
end;
|
||||
EdList.Sorted := True;
|
||||
for i := 0 to EdList.Count - 1 do
|
||||
begin
|
||||
EditorIndex := PtrUInt(EdList.Objects[i]);
|
||||
EditorCur := SourceEditorManager.SourceEditors[EditorIndex];
|
||||
if (EditorCur.GetProjectFile <> nil) and (EditorCur.GetProjectFile.IsPartOfProject) then begin
|
||||
se := SourceEditorManager.SourceEditors[EditorIndex];
|
||||
if (se.GetProjectFile <> nil) and (se.GetProjectFile.IsPartOfProject) then begin
|
||||
aSection := itmTabListProject;
|
||||
CurMenuItem := GetMenuItem(ItemCountProject, aSection);
|
||||
inc(ItemCountProject);
|
||||
end else begin
|
||||
SourceEditorManager.OnPackageForSourceEditor(P, EditorCur);
|
||||
SourceEditorManager.OnPackageForSourceEditor(P, se);
|
||||
if P <> nil then begin
|
||||
s := Format(lisTabsFor, [p.Name]);
|
||||
if itmTabListPackage.FindByName(S) is TIDEMenuSection then
|
||||
@ -1629,13 +1625,13 @@ begin
|
||||
end;
|
||||
end;
|
||||
aSection.Visible := True;
|
||||
if EditorCur.SharedEditorCount > 1 then
|
||||
CurMenuItem.Caption := EditorCur.PageName + ' ('+TForm(EditorCur.Owner).Caption+')'
|
||||
if se.SharedEditorCount > 1 then
|
||||
CurMenuItem.Caption := se.PageName + ' ('+TForm(se.Owner).Caption+')'
|
||||
else
|
||||
CurMenuItem.Caption := EditorCur.PageName;
|
||||
CurMenuItem.Caption := se.PageName;
|
||||
if CurMenuItem.MenuItem <> nil then
|
||||
CurMenuItem.Checked := SourceEditorManager.ActiveEditor = EditorCur;
|
||||
if (SourceEditorManager.ActiveEditor = EditorCur) and (aSection.MenuItem <> nil) then
|
||||
CurMenuItem.Checked := SourceEditorManager.ActiveEditor = se;
|
||||
if (SourceEditorManager.ActiveEditor = se) and (aSection.MenuItem <> nil) then
|
||||
aSection.Checked := true;
|
||||
CurMenuItem.OnClick := @mnuWindowSourceItemClick;
|
||||
CurMenuItem.Tag := EditorIndex;
|
||||
|
@ -265,14 +265,14 @@ end;
|
||||
// Fill the list of inheritable items in the project
|
||||
procedure TNewOtherDialog.FillProjectInheritableItemsList;
|
||||
var
|
||||
aComponentList: TStringList;
|
||||
aComponentList: TStringListUTF8Fast;
|
||||
i: integer;
|
||||
ListItem: TListViewDataItem;
|
||||
AnUnitInfo: TUnitInfo;
|
||||
Begin
|
||||
try
|
||||
// Auxiliar stringlist to sort component list
|
||||
aComponentList := TStringList.Create;
|
||||
aComponentList := TStringListUTF8Fast.Create;
|
||||
|
||||
// Loop trough project units which have a component
|
||||
for i := 0 to Project1.UnitCount-1 do begin
|
||||
|
@ -26,7 +26,7 @@ uses
|
||||
LCLType, LCLProc, Forms, Controls, Buttons, StdCtrls, Dialogs, Menus, Graphics,
|
||||
ButtonPanel, Clipbrd,
|
||||
// LazUtils
|
||||
FileUtil, LazFileUtils, LazStringUtils, LazFileCache,
|
||||
FileUtil, LazFileUtils, LazStringUtils, LazFileCache, LazUTF8,
|
||||
// LazControls
|
||||
ShortPathEdit,
|
||||
// IdeIntf
|
||||
@ -83,7 +83,7 @@ type
|
||||
private
|
||||
FBaseDirectory: string;
|
||||
FEffectiveBaseDirectory: string;
|
||||
FTemplateList: TStringList;
|
||||
FTemplateList: TStringListUTF8Fast;
|
||||
procedure AddPath(aPath: String; aObject: TObject);
|
||||
function GetPath: string;
|
||||
function BaseRelative(const APath: string): String;
|
||||
@ -408,7 +408,7 @@ procedure TPathEditorDialog.FormCreate(Sender: TObject);
|
||||
const
|
||||
Filt = 'Text file (*.txt)|*.txt|All files (*)|*';
|
||||
begin
|
||||
FTemplateList := TStringList.Create;
|
||||
FTemplateList := TStringListUTF8Fast.Create;
|
||||
Caption:=dlgDebugOptionsPathEditorDlgCaption;
|
||||
PathGroupBox.Caption:=lisPathEditSearchPaths;
|
||||
MoveUpButton.Hint:=lisPathEditMovePathUp;
|
||||
|
@ -36,7 +36,7 @@ uses
|
||||
// LCL
|
||||
LCLType, Forms, StdCtrls, Dialogs, Buttons, ButtonPanel, LCLIntf,
|
||||
// LazUtils
|
||||
FileUtil, LazFileUtils, LazLoggerBase, UITypes,
|
||||
FileUtil, LazFileUtils, LazLoggerBase, UITypes, LazUTF8,
|
||||
// BuildIntf
|
||||
ProjPackIntf, CompOptsIntf, PublishModuleIntf,
|
||||
// IdeIntf
|
||||
@ -94,10 +94,10 @@ type
|
||||
// Some of them may be above the main project/package directory.
|
||||
FTopDir: string;
|
||||
// Project/package member files already copied. Not copied again by filters.
|
||||
FCopiedFiles: TStringList;
|
||||
FCopiedFiles: TStringListUTF8Fast;
|
||||
// Copying by filters failed.
|
||||
FCopyFailedCount: Integer;
|
||||
FProjDirs: TStringList;
|
||||
FProjDirs: TStringListUTF8Fast;
|
||||
FBackupDir, FLibDir: String;
|
||||
procedure AdjustTopDir(const AFileName: string);
|
||||
function CopyAFile(const AFileName: string): TModalResult;
|
||||
@ -162,8 +162,8 @@ begin
|
||||
+ EnvironmentOptions.BackupInfoProjectFiles.SubDirectory);
|
||||
COpts := FProjPack.LazCompilerOptions as TBaseCompilerOptions;
|
||||
FLibDir := COpts.GetUnitOutPath(True,coptParsed);
|
||||
FCopiedFiles := TStringList.Create;
|
||||
FProjDirs := TStringList.Create;
|
||||
FCopiedFiles := TStringListUTF8Fast.Create;
|
||||
FProjDirs := TStringListUTF8Fast.Create;
|
||||
end;
|
||||
|
||||
destructor TPublisher.Destroy;
|
||||
@ -369,7 +369,7 @@ begin
|
||||
begin
|
||||
for I := 0 to FCopiedFiles.Count - 1 do
|
||||
begin
|
||||
RelPath := ExtractRelativePath(FTopDir, FCopiedFiles.Strings[I]);
|
||||
RelPath := ExtractRelativePath(FTopDir, FCopiedFiles[I]);
|
||||
Drive := ExtractFileDrive(RelPath);
|
||||
if Trim(Drive) <> '' then
|
||||
RelPath := StringReplace(RelPath, AppendPathDelim(Drive), '', [rfIgnoreCase]);
|
||||
|
@ -32,7 +32,9 @@ interface
|
||||
uses
|
||||
Classes, Contnrs,
|
||||
// LCL
|
||||
LCLPlatformDef, LCLProc, Forms, StdCtrls, ComCtrls, ExtCtrls, Buttons,
|
||||
LCLPlatformDef, Forms, StdCtrls, ComCtrls, ExtCtrls, Buttons,
|
||||
// LazUtils
|
||||
LazUTF8, LazLoggerBase,
|
||||
// LazControls
|
||||
TreeFilterEdit,
|
||||
// IdeIntf
|
||||
@ -150,7 +152,7 @@ end;
|
||||
procedure TRestrictionBrowserView.UpdateIssueList;
|
||||
var
|
||||
I, ID: PtrInt;
|
||||
Issues: TStringList;
|
||||
Issues: TStringListUTF8Fast;
|
||||
P: TLCLPlatform;
|
||||
WidgetSetFilter: TLCLPlatforms;
|
||||
Component: TComponent;
|
||||
@ -163,7 +165,7 @@ begin
|
||||
if (Component as TSpeedButton).Down then
|
||||
Include(WidgetSetFilter, P);
|
||||
end;
|
||||
Issues := TStringList.Create;
|
||||
Issues := TStringListUTF8Fast.Create;
|
||||
try
|
||||
for I := 0 to High(FIssueList) do
|
||||
if FIssueList[I].WidgetSet in WidgetSetFilter then
|
||||
|
@ -1887,7 +1887,7 @@ var
|
||||
I: integer;
|
||||
Mng: TSourceEditorManager;
|
||||
New: TSourceListItem;
|
||||
AddedFileNames: TStringList;
|
||||
AddedFileNames: TStringListUTF8Fast;
|
||||
begin
|
||||
FSourceList.Clear;
|
||||
if FIncludeWords=icwDontInclude then
|
||||
@ -1906,7 +1906,7 @@ begin
|
||||
|
||||
if FIncludeWords=icwIncludeFromAllUnits then
|
||||
begin
|
||||
AddedFileNames := TStringList.Create;
|
||||
AddedFileNames := TStringListUTF8Fast.Create;
|
||||
try
|
||||
AddedFileNames.Sorted := True;
|
||||
AddedFileNames.Duplicates := dupIgnore;
|
||||
@ -2286,7 +2286,7 @@ procedure TSourceEditCompletion.ccExecute(Sender: TObject);
|
||||
// init completion form
|
||||
// called by OnExecute just before showing
|
||||
var
|
||||
S: TStrings;
|
||||
SL: TStrings;
|
||||
Prefix: String;
|
||||
I: Integer;
|
||||
NewStr: String;
|
||||
@ -2334,12 +2334,12 @@ Begin
|
||||
FActiveEditTextHighLightColor := SynEditor.MarkupIdentComplWindow.HighlightColor;
|
||||
end;
|
||||
|
||||
S := TStringList.Create;
|
||||
SL := TStringList.Create;
|
||||
try
|
||||
Prefix := CurrentString;
|
||||
case CurrentCompletionType of
|
||||
ctIdentCompletion:
|
||||
if InitIdentCompletionValues(S) then begin
|
||||
if InitIdentCompletionValues(SL) then begin
|
||||
ToggleReplaceWhole:=not CodeToolsOpts.IdentComplReplaceIdentifier;
|
||||
end else begin
|
||||
ItemList.Clear;
|
||||
@ -2361,16 +2361,16 @@ Begin
|
||||
NewStr:=#3'B'+NewStr+#3'b';
|
||||
while length(NewStr)<10+4 do NewStr:=NewStr+' ';
|
||||
NewStr:=NewStr+' '+Manager.CodeTemplateModul.CompletionComments[I];
|
||||
S.Add(NewStr);
|
||||
SL.Add(NewStr);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
ItemList := S;
|
||||
ItemList := SL;
|
||||
finally
|
||||
S.Free;
|
||||
SL.Free;
|
||||
end;
|
||||
CurrentString:=Prefix;
|
||||
// set colors
|
||||
@ -2671,8 +2671,7 @@ begin
|
||||
// let plugin rebuild completion list
|
||||
SL:=TStringList.Create;
|
||||
try
|
||||
Manager.ActiveCompletionPlugin.PrefixChanged(CurrentString,
|
||||
APosition,sl);
|
||||
Manager.ActiveCompletionPlugin.PrefixChanged(CurrentString,APosition,sl);
|
||||
ItemList:=SL;
|
||||
finally
|
||||
SL.Free;
|
||||
@ -6819,7 +6818,7 @@ var
|
||||
EditorCur: TSourceEditor;
|
||||
P: TIDEPackage;
|
||||
RecMenu, ProjMenu, M: TIDEMenuSection;
|
||||
EdList: TStringList;
|
||||
EdList: TStringListUTF8Fast;
|
||||
begin
|
||||
PopM:=TPopupMenu(Sender);
|
||||
SourceTabMenuRoot.MenuItem:=PopM.Items;
|
||||
@ -6846,13 +6845,11 @@ begin
|
||||
|
||||
SrcEditMenuSectionEditors.Clear;
|
||||
if Manager <> nil then begin
|
||||
EdList := TStringList.Create;
|
||||
EdList := TStringListUTF8Fast.Create;
|
||||
EdList.OwnsObjects := False;
|
||||
EdList.Sorted := True;
|
||||
// sort
|
||||
for i := 0 to EditorCount - 1 do
|
||||
EdList.AddObject(Editors[i].PageName+' '+Editors[i].FileName, Editors[i]);
|
||||
|
||||
EdList.Sorted := True;
|
||||
|
||||
RecMenu := RegisterIDESubMenu(SrcEditMenuSectionEditors, lisRecentTabs, lisRecentTabs);
|
||||
RecMenu.Visible := False;
|
||||
|
@ -30,7 +30,7 @@ uses
|
||||
// LazControls
|
||||
TreeFilterEdit,
|
||||
// LazUtils
|
||||
Laz2_XMLCfg,
|
||||
Laz2_XMLCfg, LazUTF8,
|
||||
// IdeIntf
|
||||
ToolBarIntf, IDEImagesIntf, IDEWindowIntf,
|
||||
// IDE
|
||||
@ -382,10 +382,10 @@ var
|
||||
xCategory: TIDEToolButtonCategory;
|
||||
xCaption: string;
|
||||
Node: TTreeNode;
|
||||
SortedCtgList: TStringList;
|
||||
SortedCtgList: TStringListUTF8Fast;
|
||||
begin
|
||||
TV.Items.BeginUpdate;
|
||||
SortedCtgList := TStringList.Create;
|
||||
SortedCtgList := TStringListUTF8Fast.Create;
|
||||
try
|
||||
SortedCtgList.OwnsObjects := False;
|
||||
for i := 0 to IDEToolButtonCategories.Count-1 do
|
||||
|
@ -44,8 +44,7 @@ uses
|
||||
CodeToolManager, DefineTemplates, CTUnitGraph, CTUnitGroupGraph,
|
||||
FileProcs, CodeCache, AvgLvlTree,
|
||||
// LazUtils
|
||||
LazLoggerBase, LazFileUtils, LazFileCache, LazStringUtils, LazUTF8,
|
||||
LvlGraphCtrl,
|
||||
LazLoggerBase, LazFileUtils, LazFileCache, LazStringUtils, LazUTF8, LvlGraphCtrl,
|
||||
// IDE interface
|
||||
LazIDEIntf, ProjectIntf, IDEWindowIntf, PackageIntf, SrcEditorIntf, IDEImagesIntf,
|
||||
IDEMsgIntf, IDEExternToolIntf, IDECommands, IDEDialogs,
|
||||
@ -255,7 +254,7 @@ type
|
||||
fImgIndexOverlayImplCycle: integer;
|
||||
fAllUnitsTVSearchStartNode: TTreeNode;
|
||||
fSelUnitsTVSearchStartNode: TTreeNode;
|
||||
FGroupLvlGraphSelectionsList: TStringList;
|
||||
FGroupLvlGraphSelectionsList: TStringListUTF8Fast;
|
||||
function CreateAllUnitsTree: TUDNode;
|
||||
function CreateSelUnitsTree: TUDNode;
|
||||
procedure DoLoadedOpts(Sender: TObject);
|
||||
@ -565,7 +564,7 @@ procedure TUnitDependenciesWindow.FormCreate(Sender: TObject);
|
||||
begin
|
||||
Name := NonModalIDEWindowNames[nmiwUnitDependencies];
|
||||
|
||||
FGroupLvlGraphSelectionsList := TStringList.Create;
|
||||
FGroupLvlGraphSelectionsList := TStringListUTF8Fast.Create;
|
||||
FPendingUnitDependencyRoute:=TStringList.Create;
|
||||
CreateUsesGraph(FUsesGraph,FGroups);
|
||||
|
||||
@ -1989,8 +1988,8 @@ begin
|
||||
if IsProjectGroup(Group) then begin
|
||||
// project
|
||||
GroupObj:=LazarusIDE.ActiveProject;
|
||||
GraphGroup.Selected:=(FGroupLvlGraphSelectionsList.Count=0) or
|
||||
(FGroupLvlGraphSelectionsList.IndexOf(Group.Name)>= 0);
|
||||
GraphGroup.Selected:=(FGroupLvlGraphSelectionsList.Count=0)
|
||||
or (FGroupLvlGraphSelectionsList.IndexOf(Group.Name)>=0);
|
||||
GraphGroup.ImageIndex := fImgIndexProject;
|
||||
end else begin
|
||||
// package
|
||||
|
@ -34,7 +34,9 @@ interface
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
// LCL
|
||||
LCLProc, Forms, Controls, ComCtrls, StdCtrls, ExtCtrls, Buttons, Dialogs,
|
||||
Forms, Controls, ComCtrls, StdCtrls, ExtCtrls, Buttons, Dialogs,
|
||||
// LazUtils
|
||||
LazUTF8, LazLoggerBase,
|
||||
// Codetools
|
||||
CodeCache, CodeToolManager,
|
||||
// IdeIntf
|
||||
@ -102,7 +104,7 @@ end;
|
||||
function ShowUnusedUnitsDialog(Code: TCodeBuffer): TModalResult;
|
||||
var
|
||||
UnusedUnitsDialog: TUnusedUnitsDialog;
|
||||
Units: TStringList;
|
||||
xUnits: TStringListUTF8Fast;
|
||||
RemoveUnits: TStrings;
|
||||
i: Integer;
|
||||
DlgResult: TModalResult;
|
||||
@ -114,17 +116,17 @@ begin
|
||||
|
||||
UnusedUnitsDialog:=nil;
|
||||
RemoveUnits:=nil;
|
||||
Units:=TStringList.Create;
|
||||
xUnits:=TStringListUTF8Fast.Create;
|
||||
try
|
||||
if not CodeToolBoss.FindUnusedUnits(Code,Units) then begin
|
||||
if not CodeToolBoss.FindUnusedUnits(Code,xUnits) then begin
|
||||
DebugLn(['ShowUnusedUnitsDialog CodeToolBoss.FindUnusedUnits failed']);
|
||||
LazarusIDE.DoJumpToCodeToolBossError;
|
||||
exit(mrCancel);
|
||||
end;
|
||||
Units.Sort;
|
||||
xUnits.Sort;
|
||||
|
||||
UnusedUnitsDialog:=TUnusedUnitsDialog.Create(nil);
|
||||
UnusedUnitsDialog.Units:=Units;
|
||||
UnusedUnitsDialog.Units:=xUnits;
|
||||
UnusedUnitsDialog.Code:=Code;
|
||||
DlgResult:=UnusedUnitsDialog.ShowModal;
|
||||
if DlgResult=mrOk then
|
||||
@ -160,7 +162,7 @@ begin
|
||||
CodeToolBoss.SourceCache.ClearAllSourceLogEntries;
|
||||
RemoveUnits.Free;
|
||||
UnusedUnitsDialog.Free;
|
||||
Units.Free;
|
||||
xUnits.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -30,11 +30,21 @@ unit UseUnitDlg;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Forms, Controls, StdCtrls, ExtCtrls, Buttons, ButtonPanel,
|
||||
Dialogs, LCLProc, FileProcs, Graphics, LCLType, SourceEditor, LazIDEIntf,
|
||||
IDEImagesIntf, LazarusIDEStrConsts, ProjectIntf, IDEWindowIntf, Project,
|
||||
CodeCache, CodeToolManager, IdentCompletionTool, CodeTree, ListFilterEdit,
|
||||
LinkScanner, EnvironmentOpts, MainIntf, LazFileUtils;
|
||||
Classes, SysUtils,
|
||||
// LCL
|
||||
LCLType, Forms, Controls, StdCtrls, ExtCtrls, ButtonPanel, Dialogs, Graphics,
|
||||
// LazControls
|
||||
ListFilterEdit,
|
||||
// LazUtils
|
||||
LazUTF8, LazFileUtils,
|
||||
// Codetools
|
||||
FileProcs, LinkScanner, CodeCache, CodeTree, CodeToolManager, IdentCompletionTool,
|
||||
// BuildIntf
|
||||
ProjectIntf,
|
||||
// IdeIntf
|
||||
LazIDEIntf, IDEImagesIntf, IDEWindowIntf,
|
||||
// IDE
|
||||
LazarusIDEStrConsts, SourceEditor, Project, EnvironmentOpts, MainIntf;
|
||||
|
||||
type
|
||||
|
||||
@ -63,9 +73,8 @@ type
|
||||
var AHeight: Integer);
|
||||
private
|
||||
UnitImgInd: Integer;
|
||||
FMainUsedUnits: TStringList;
|
||||
FImplUsedUnits: TStringList;
|
||||
FProjUnits, FOtherUnits: TStringList;
|
||||
FMainUsedUnits, FImplUsedUnits: TStringList;
|
||||
FProjUnits, FOtherUnits: TStringListUTF8Fast;
|
||||
DlgType: TUseUnitDialogType;
|
||||
procedure AddImplUsedUnits;
|
||||
function GetProjUnits(SrcEdit: TSourceEditor): Boolean;
|
||||
@ -194,7 +203,7 @@ begin
|
||||
ButtonPanel1.OKButton.Caption:=lisMenuOk;
|
||||
ButtonPanel1.CancelButton.Caption:=lisCancel;
|
||||
UnitImgInd := IDEImages.LoadImage('item_unit');
|
||||
FProjUnits:=TStringList.Create;
|
||||
FProjUnits:=TStringListUTF8Fast.Create;
|
||||
end;
|
||||
|
||||
procedure TUseUnitDialog.FormDestroy(Sender: TObject);
|
||||
@ -360,14 +369,10 @@ begin
|
||||
FImplUsedUnits := TStringList.Create;
|
||||
end;
|
||||
Result := True;
|
||||
if Assigned(FMainUsedUnits) then begin
|
||||
if Assigned(FMainUsedUnits) then
|
||||
FMainUsedUnits.Sorted := True;
|
||||
FMainUsedUnits.CaseSensitive := False;
|
||||
end;
|
||||
if Assigned(FImplUsedUnits) then begin
|
||||
if Assigned(FImplUsedUnits) then
|
||||
FImplUsedUnits.Sorted := True;
|
||||
FImplUsedUnits.CaseSensitive := False;
|
||||
end;
|
||||
if SrcEdit.GetProjectFile is TUnitInfo then
|
||||
CurrentUnitName := TUnitInfo(SrcEdit.GetProjectFile).Unit_Name
|
||||
else
|
||||
@ -395,8 +400,7 @@ begin
|
||||
if not (Assigned(FMainUsedUnits) and Assigned(FImplUsedUnits)) then Exit;
|
||||
Screen.BeginWaitCursor;
|
||||
try
|
||||
FOtherUnits := TStringList.Create;
|
||||
FOtherUnits.Sorted := True;
|
||||
FOtherUnits := TStringListUTF8Fast.Create;
|
||||
SrcEdit := SourceEditorManager.ActiveEditor;
|
||||
with CodeToolBoss do
|
||||
if GatherUnitNames(SrcEdit.CodeBuffer) then
|
||||
@ -412,6 +416,7 @@ begin
|
||||
IdentifierList.FilteredItems[i]);
|
||||
end;
|
||||
end;
|
||||
FOtherUnits.Sorted := True;
|
||||
finally
|
||||
Screen.EndWaitCursor;
|
||||
end;
|
||||
|
@ -10,6 +10,8 @@ uses
|
||||
LResources, Forms, Controls, Graphics, Dialogs, ButtonPanel, StdCtrls,
|
||||
// LazControls
|
||||
ListFilterEdit,
|
||||
// LazUtils
|
||||
LazUTF8,
|
||||
// BuildIntf
|
||||
PackageIntf,
|
||||
// IdeIntf
|
||||
@ -31,7 +33,7 @@ type
|
||||
procedure OKButtonClick(Sender: TObject);
|
||||
private
|
||||
FResultDependencies: TPkgDependencyList;
|
||||
FPackageNameList: TStringList;
|
||||
FPackageNameList: TStringListUTF8Fast;
|
||||
procedure UpdateAvailableDependencyNames;
|
||||
public
|
||||
constructor Create(TheOwner: TComponent); override;
|
||||
@ -112,7 +114,7 @@ end;
|
||||
constructor TAddFPMakeDependencyDialog.Create(TheOwner: TComponent);
|
||||
begin
|
||||
inherited Create(TheOwner);
|
||||
FPackageNameList := TStringList.Create;
|
||||
FPackageNameList := TStringListUTF8Fast.Create;
|
||||
|
||||
Caption:=lisProjAddNewRequirement;
|
||||
|
||||
|
@ -35,7 +35,7 @@ uses
|
||||
LCLProc, LCLType, Forms, Controls, Buttons, ExtDlgs, StdCtrls, ExtCtrls,
|
||||
Dialogs, ComCtrls, ButtonPanel,
|
||||
// LazUtils
|
||||
FileUtil, LazFileUtils,
|
||||
FileUtil, LazFileUtils, LazUTF8,
|
||||
// IDEIntf
|
||||
NewItemIntf, PackageIntf, FormEditingIntf, IDEWindowIntf, ComponentReg,
|
||||
IDEDialogs,
|
||||
@ -608,7 +608,7 @@ end;
|
||||
procedure TAddToPackageDlg.UpdateAvailableAncestorTypes;
|
||||
var
|
||||
ANode: TAVLTreeNode;
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
OldAncestorType: String;
|
||||
begin
|
||||
// get all available registered components
|
||||
@ -620,7 +620,7 @@ begin
|
||||
true,true);
|
||||
end;
|
||||
// put them into a list
|
||||
sl:=TStringList.Create;
|
||||
sl:=TStringListUTF8Fast.Create;
|
||||
ANode:=fPkgComponents.FindLowest;
|
||||
while ANode<>nil do begin
|
||||
sl.Add(TPkgComponent(ANode.Data).ComponentClass.ClassName);
|
||||
@ -641,10 +641,10 @@ procedure TAddToPackageDlg.UpdateAvailablePageNames;
|
||||
var
|
||||
i: Integer;
|
||||
APageName: String;
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
begin
|
||||
// get all current pagenames (excluding the hidden page)
|
||||
sl:=TStringList.Create;
|
||||
sl:=TStringListUTF8Fast.Create;
|
||||
for i:=0 to IDEComponentPalette.Pages.Count-1 do begin
|
||||
APageName:=IDEComponentPalette.Pages[i].PageName;
|
||||
if APageName<>'' then
|
||||
|
@ -46,7 +46,7 @@ uses
|
||||
// Codetools
|
||||
BasicCodeTools,
|
||||
// LazUtils
|
||||
LazFileUtils, Laz2_XMLCfg,
|
||||
LazFileUtils, Laz2_XMLCfg, LazUTF8,
|
||||
// IdeIntf
|
||||
PackageDependencyIntf, PackageIntf, IDEImagesIntf, IDEHelpIntf, IDEDialogs, IDEWindowIntf, PackageLinkIntf,
|
||||
// IDE
|
||||
@ -650,10 +650,10 @@ var
|
||||
NewPackageID: TLazPackageID;
|
||||
APackage: TLazPackage;
|
||||
FilteredBranch: TTreeFilterBranch;
|
||||
List: TStringList;
|
||||
List: TStringListUTF8Fast;
|
||||
i: Integer;
|
||||
begin
|
||||
List:=TStringList.Create;
|
||||
List:=TStringListUTF8Fast.Create;
|
||||
try
|
||||
for i:=0 to FNewInstalledPackages.Count-1 do begin
|
||||
NewPackageID:=TLazPackageID(FNewInstalledPackages[i]);
|
||||
|
@ -33,6 +33,8 @@ uses
|
||||
Classes, SysUtils,
|
||||
// LCL
|
||||
Forms, Controls, StdCtrls, ButtonPanel,
|
||||
// LazUtils
|
||||
LazUTF8,
|
||||
// IdeIntf
|
||||
PackageIntf,
|
||||
// IDE
|
||||
@ -89,11 +91,11 @@ end;
|
||||
|
||||
procedure TNewPkgComponentDialog.FillPkgsListBox;
|
||||
var
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
Pkg: TLazPackage;
|
||||
i: Integer;
|
||||
begin
|
||||
sl:=TStringList.Create;
|
||||
sl:=TStringListUTF8Fast.Create;
|
||||
try
|
||||
for i:=0 to PackageGraph.Count-1 do begin
|
||||
Pkg:=PackageGraph[i];
|
||||
|
@ -3110,7 +3110,6 @@ var
|
||||
OldPkgName: String;
|
||||
i: Integer;
|
||||
Macro: TLazBuildMacro;
|
||||
RenamedMacros: TStringList;
|
||||
OldMacroName: String;
|
||||
BaseCompOpts: TBaseCompilerOptions;
|
||||
begin
|
||||
@ -3123,22 +3122,16 @@ begin
|
||||
if RenameMacros then
|
||||
begin
|
||||
// rename macros
|
||||
RenamedMacros:=TStringList.Create;
|
||||
try
|
||||
for i:=0 to APackage.CompilerOptions.BuildMacros.Count-1 do
|
||||
begin
|
||||
Macro:=APackage.CompilerOptions.BuildMacros[i];
|
||||
if SysUtils.CompareText(OldPkgName,copy(Macro.Identifier,1,length(OldPkgName)))=0
|
||||
then begin
|
||||
OldMacroName:=Macro.Identifier;
|
||||
RenamedMacros.Add(OldMacroName);
|
||||
Macro.Identifier:=NewName+copy(OldMacroName,length(OldPkgName)+1,256);
|
||||
BaseCompOpts:=TBaseCompilerOptions(APackage.CompilerOptions);
|
||||
BaseCompOpts.RenameMacro(OldMacroName,Macro.Identifier,true);
|
||||
end;
|
||||
for i:=0 to APackage.CompilerOptions.BuildMacros.Count-1 do
|
||||
begin
|
||||
Macro:=APackage.CompilerOptions.BuildMacros[i];
|
||||
if SysUtils.CompareText(OldPkgName,copy(Macro.Identifier,1,length(OldPkgName)))=0
|
||||
then begin
|
||||
OldMacroName:=Macro.Identifier;
|
||||
Macro.Identifier:=NewName+copy(OldMacroName,length(OldPkgName)+1,256);
|
||||
BaseCompOpts:=TBaseCompilerOptions(APackage.CompilerOptions);
|
||||
BaseCompOpts.RenameMacro(OldMacroName,Macro.Identifier,true);
|
||||
end;
|
||||
finally
|
||||
RenamedMacros.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -5526,7 +5519,7 @@ begin
|
||||
continue; // no lpk found again => do not show again
|
||||
end;
|
||||
if ListOfPackages=nil then
|
||||
ListOfPackages:=TStringList.Create;
|
||||
ListOfPackages:=TStringListUTF8Fast.Create;
|
||||
ListOfPackages.AddObject(NewFilename,APackage);
|
||||
end;
|
||||
end;
|
||||
|
@ -1499,9 +1499,9 @@ end;
|
||||
procedure TPkgManager.SaveAutoInstallDependencies;
|
||||
var
|
||||
Dependency: TPkgDependency;
|
||||
sl: TStringList;
|
||||
sl: TStringListUTF8Fast;
|
||||
begin
|
||||
sl:=TStringList.Create;
|
||||
sl:=TStringListUTF8Fast.Create;
|
||||
Dependency:=PackageGraph.FirstAutoInstallDependency;
|
||||
while Dependency<>nil do begin
|
||||
if (Dependency.LoadPackageResult=lprSuccess)
|
||||
@ -2664,18 +2664,14 @@ var
|
||||
MovedFiles: TFilenameToPointerTree;
|
||||
ResFileList: TStringList;
|
||||
j: Integer;
|
||||
OldFilenames: TStringList;
|
||||
begin
|
||||
Result:=false;
|
||||
TargetFilesEdit.BeginUpdate;
|
||||
SrcFilesEdit.BeginUpdate;
|
||||
OldFilenames:=TStringList.Create;
|
||||
MovedFiles:=TFilenameToPointerTree.Create(false);
|
||||
try
|
||||
for i:=0 to IDEFiles.Count-1 do
|
||||
OldFilenames.Add(TIDEOwnedFile(IDEFiles[i]).GetFullFilename);
|
||||
for i:=0 to OldFilenames.Count-1 do begin
|
||||
OldFilename:=OldFilenames[i];
|
||||
for i:=0 to IDEFiles.Count-1 do begin
|
||||
OldFilename:=TIDEOwnedFile(IDEFiles[i]).GetFullFilename;
|
||||
if not MoveOrCopyFile(OldFilename,MovedFiles) then exit;
|
||||
ResFileList:=TStringList(UnitFilenameToResFileList[OldFilename]);
|
||||
if ResFileList=nil then continue;
|
||||
@ -2684,7 +2680,6 @@ var
|
||||
end;
|
||||
finally
|
||||
MovedFiles.Free;
|
||||
OldFilenames.Free;
|
||||
SrcFilesEdit.EndUpdate;
|
||||
TargetFilesEdit.EndUpdate;
|
||||
end;
|
||||
@ -4498,7 +4493,7 @@ begin
|
||||
UnitList:=nil;
|
||||
CurPackages:=nil;
|
||||
AllPackages:=nil;
|
||||
CurUnitNames:=TStringList.Create;
|
||||
CurUnitNames:=TStringListUTF8Fast.Create;
|
||||
try
|
||||
for CurClassID:=0 to ComponentClasses.Count-1 do
|
||||
begin
|
||||
@ -4511,10 +4506,9 @@ begin
|
||||
CurCompReq:=nil;
|
||||
if UnitList=nil then
|
||||
begin
|
||||
UnitList:=TStringList.Create;
|
||||
UnitList:=TStringListUTF8Fast.Create;
|
||||
UnitList.Sorted:=True;
|
||||
UnitList.Duplicates:=dupIgnore;
|
||||
UnitList.CaseSensitive:=False;
|
||||
end;
|
||||
try
|
||||
if CurRegComp.ComponentClass<>nil then
|
||||
@ -4525,8 +4519,8 @@ begin
|
||||
//DebugLn(['TPkgManager.GetUnitsAndDepsForComps: CurUnitName=',CurUnitName]);
|
||||
if CurUnitName='' then
|
||||
CurUnitName:=CurRegComp.GetUnitName;
|
||||
Assert(CurUnitNames.IndexOf(CurUnitName)<0,
|
||||
'TPkgManager.GetUnitsAndDepsForComps: Name already in CurUnitNames.');
|
||||
//Assert(CurUnitNames.IndexOf(CurUnitName)<0,
|
||||
// 'TPkgManager.GetUnitsAndDepsForComps: Name already in CurUnitNames.');
|
||||
CurUnitNames.Add(CurUnitName);
|
||||
if CurCompReq<>nil then
|
||||
CurCompReq.RequiredUnits(CurUnitNames);
|
||||
@ -4547,18 +4541,16 @@ begin
|
||||
begin
|
||||
if CurPackages=nil then
|
||||
begin
|
||||
CurPackages:=TStringList.Create;
|
||||
CurPackages:=TStringListUTF8Fast.Create;
|
||||
CurPackages.Sorted:=True;
|
||||
CurPackages.Duplicates:=dupIgnore;
|
||||
CurPackages.CaseSensitive:=False;
|
||||
end else
|
||||
CurPackages.Clear;
|
||||
if AllPackages=nil then
|
||||
begin
|
||||
AllPackages:=TStringList.Create;
|
||||
AllPackages:=TStringListUTF8Fast.Create;
|
||||
AllPackages.Sorted:=True;
|
||||
AllPackages.Duplicates:=dupIgnore;
|
||||
AllPackages.CaseSensitive:=False;
|
||||
end;
|
||||
CurPackages.Add(RequiredPackage.Name);
|
||||
if Assigned(CurCompReq) then
|
||||
@ -4715,7 +4707,8 @@ function TPkgManager.GetSourceFilesOfOwners(OwnerList: TFPList): TStrings;
|
||||
|
||||
procedure AddFile(TheOwner: TObject; const Filename: string);
|
||||
begin
|
||||
if Result=nil then Result:=TStringList.Create;
|
||||
if Result=nil then
|
||||
Result:=TStringList.Create;
|
||||
Result.AddObject(Filename,TheOwner);
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user