mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-22 16:39:26 +02:00
Converter: Improve messages. Show urgency, file name, coordinates. Relevant file now opens when clicking a message.
git-svn-id: trunk@51674 -
This commit is contained in:
parent
1a992ed303
commit
f42ebf10a7
@ -40,8 +40,10 @@ uses
|
||||
CodeCache, SourceChanger, CustomCodeTool, CodeToolsStructs,
|
||||
// LazUtils
|
||||
LazFileUtils,
|
||||
// IdeIntf
|
||||
LazIDEIntf, IDEExternToolIntf,
|
||||
// IDE
|
||||
LazIDEIntf, IDEExternToolIntf, FormEditor, LazarusIDEStrConsts,
|
||||
FormEditor, LazarusIDEStrConsts,
|
||||
// Converter
|
||||
ConverterTypes, ConvertSettings, ReplaceNamesUnit, ReplaceFuncsUnit;
|
||||
|
||||
@ -252,6 +254,7 @@ function TConvDelphiCodeTool.RenameUnitIfNeeded: boolean;
|
||||
// Change the unit name to match the disk name unless the disk name is all lowercase.
|
||||
var
|
||||
NamePos: TAtomPosition;
|
||||
CaretPos: TCodeXYPosition;
|
||||
DiskNm, UnitNm: String;
|
||||
begin
|
||||
Result:=false;
|
||||
@ -265,7 +268,10 @@ begin
|
||||
SrcCache.MainScanner:=CodeTool.Scanner;
|
||||
SrcCache.Replace(gtNone, gtNone, NamePos.StartPos, NamePos.EndPos, DiskNm);
|
||||
if not SrcCache.Apply then exit;
|
||||
fSettings.AddLogLine(Format(lisConvFixedUnitName, [UnitNm, DiskNm]));
|
||||
if CodeTool.CleanPosToCaret(NamePos.StartPos, CaretPos) then
|
||||
fSettings.AddLogLine(mluNote,
|
||||
Format(lisConvFixedUnitName, [UnitNm, DiskNm]), fCode.Filename,
|
||||
CaretPos.Y, CaretPos.X);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -496,6 +502,7 @@ var
|
||||
|
||||
var
|
||||
FuncInfo: TFuncReplacement;
|
||||
CaretPos: TCodeXYPosition;
|
||||
PossibleCommentPos: Integer; // Start looking for comments here.
|
||||
i: Integer;
|
||||
s, NewFunc, Comment: String;
|
||||
@ -510,24 +517,29 @@ begin
|
||||
ReplacementParams.Clear;
|
||||
PossibleCommentPos:=ParseReplacementParams(FuncInfo.ReplFunc);
|
||||
// Replace only if the params match somehow, so eg. a variable is not replaced.
|
||||
if (FuncInfo.Params.Count>0) or (ReplacementParams.Count=0) then begin
|
||||
if (FuncInfo.Params.Count>0) or (ReplacementParams.Count=0) then
|
||||
with fCTLink do
|
||||
begin
|
||||
NewFunc:=InsertParams2Replacement(FuncInfo);
|
||||
// Separate function body
|
||||
NewFunc:=NewFunc+FuncInfo.InclEmptyBrackets+FuncInfo.InclSemiColon;
|
||||
if fCTLink.fSettings.FuncReplaceComment then
|
||||
if fSettings.FuncReplaceComment then
|
||||
NewFunc:=NewFunc+Format(lisConvConvertedFrom, [FuncInfo.FuncName]);
|
||||
Comment:=GetComment(FuncInfo.ReplFunc, PossibleCommentPos);
|
||||
if Comment<>'' then // Possible comment from the configuration
|
||||
NewFunc:=NewFunc+' { ' +Comment+' }';
|
||||
// Old function call with params for IDE message output.
|
||||
s:=copy(fCTLink.CodeTool.Src, FuncInfo.StartPos, FuncInfo.EndPos-FuncInfo.StartPos);
|
||||
s:=copy(CodeTool.Src, FuncInfo.StartPos, FuncInfo.EndPos-FuncInfo.StartPos);
|
||||
s:=StringReplace(s, #10, '', [rfReplaceAll]);
|
||||
s:=StringReplace(s, #13, '', [rfReplaceAll]);
|
||||
// Now replace it.
|
||||
fCTLink.ResetMainScanner;
|
||||
if not fCTLink.SrcCache.Replace(gtNone, gtNone,
|
||||
ResetMainScanner;
|
||||
if not SrcCache.Replace(gtNone, gtNone,
|
||||
FuncInfo.StartPos, FuncInfo.EndPos, NewFunc) then exit;
|
||||
fCTLink.fSettings.AddLogLine(Format(lisConvReplacedCall, [s, NewFunc]));
|
||||
if CodeTool.CleanPosToCaret(FuncInfo.StartPos, CaretPos) then
|
||||
fSettings.AddLogLine(mluNote,
|
||||
Format(lisConvReplacedCall, [s, NewFunc]), fCode.Filename,
|
||||
CaretPos.Y, CaretPos.X);
|
||||
// Add the required unit name to uses section if needed.
|
||||
if Assigned(AddUnitEvent) and (FuncInfo.UnitName<>'') then
|
||||
AddUnitEvent(FuncInfo.UnitName);
|
||||
|
@ -39,7 +39,7 @@ uses
|
||||
// LazUtils
|
||||
LConvEncoding, FileUtil, LazFileUtils, LazUTF8, LazUTF8Classes,
|
||||
// IDEIntf
|
||||
ComponentReg, LazIDEIntf, PackageIntf, ProjectIntf, IDEDialogs,
|
||||
ComponentReg, LazIDEIntf, PackageIntf, ProjectIntf, IDEDialogs, IDEExternToolIntf,
|
||||
// IDE
|
||||
IDEProcs, DialogProcs, EditorOptions, CompilerOptions,
|
||||
ProjPackBase, Project, ProjectDefs, PackageDefs, PackageSystem, PackageEditor,
|
||||
@ -461,7 +461,8 @@ begin
|
||||
fLazFileExt:='';
|
||||
fUnitInfo:=nil;
|
||||
if not LazarusIDE.BeginCodeTools then
|
||||
fOwnerConverter.fSettings.AddLogLine(lisConvDelphiBeginCodeToolsFailed);
|
||||
fOwnerConverter.fSettings.AddLogLine(mluFatal,
|
||||
lisConvDelphiBeginCodeToolsFailed, fLazUnitFilename);
|
||||
fCTLink:=Nil; // Will be created later.
|
||||
fUsedUnitsTool:=Nil;
|
||||
end;
|
||||
@ -490,8 +491,6 @@ function TDelphiUnit.CopyAndLoadFile: TModalResult;
|
||||
var
|
||||
CodeOk, CodeFixed: Boolean;
|
||||
begin
|
||||
fOwnerConverter.fSettings.AddLogLine(Format(lisConvDelphiConvertingFile,
|
||||
[fOrigUnitFilename]));
|
||||
// Convert unit in place. File must be writable.
|
||||
Result:=CheckFileIsWritable(fOrigUnitFilename,[mbAbort]);
|
||||
if Result<>mrOK then exit;
|
||||
@ -509,8 +508,9 @@ begin
|
||||
if Result<>mrOK then exit;
|
||||
// Change encoding to UTF-8
|
||||
if fPascalBuffer.DiskEncoding<>EncodingUTF8 then begin
|
||||
fOwnerConverter.fSettings.AddLogLine(Format(lisConvDelphiChangedEncodingToUTF8,
|
||||
[fPascalBuffer.DiskEncoding]));
|
||||
fOwnerConverter.fSettings.AddLogLine(mluNote,
|
||||
Format(lisConvDelphiChangedEncodingToUTF8, [fPascalBuffer.DiskEncoding]),
|
||||
fLazUnitFilename);
|
||||
fPascalBuffer.DiskEncoding:=EncodingUTF8; // Takes effect when buffer is saved.
|
||||
end;
|
||||
// Create a shared link for codetools.
|
||||
@ -604,8 +604,9 @@ begin
|
||||
// Change encoding to UTF-8
|
||||
if TempLFMBuffer.DiskEncoding<>EncodingUTF8 then
|
||||
begin
|
||||
fOwnerConverter.fSettings.AddLogLine(Format(lisConvDelphiChangedEncodingToUTF8,
|
||||
[TempLFMBuffer.DiskEncoding]));
|
||||
fOwnerConverter.fSettings.AddLogLine(mluNote,
|
||||
Format(lisConvDelphiChangedEncodingToUTF8, [TempLFMBuffer.DiskEncoding]),
|
||||
fLazUnitFilename);
|
||||
TempLFMBuffer.DiskEncoding:=EncodingUTF8;
|
||||
TempLFMBuffer.Save;
|
||||
end;
|
||||
@ -675,8 +676,6 @@ var
|
||||
begin
|
||||
// Fix the LFM file and the pascal unit, updates fPascalBuffer and fLFMBuffer.
|
||||
if fLFMBuffer<>nil then begin
|
||||
fOwnerConverter.fSettings.AddLogLine(Format(lisConvDelphiRepairingFormFile,
|
||||
[fLFMBuffer.Filename]));
|
||||
LfmFixer:=TLFMFixer.Create(fCTLink,fLFMBuffer);
|
||||
try
|
||||
LfmFixer.Settings:=fOwnerConverter.fSettings;
|
||||
@ -698,8 +697,6 @@ begin
|
||||
if Result<>mrOK then exit;
|
||||
end;
|
||||
// After other changes: add, remove, fix and comment out units in uses sections.
|
||||
fOwnerConverter.fSettings.AddLogLine(Format(lisConvDelphiFixingUsedUnits,
|
||||
[fOrigUnitFilename]));
|
||||
Result:=fUsedUnitsTool.ConvertUsed;
|
||||
if Result<>mrOK then exit;
|
||||
Result:=mrOK;
|
||||
@ -780,6 +777,7 @@ begin
|
||||
if CodeTool.FixIncludeFilenames(Code,SrcCache,FoundIncludeFiles,MissingIncludeFilesCodeXYPos)
|
||||
then begin
|
||||
if Assigned(FoundIncludeFiles) then begin
|
||||
// List the include files in log.
|
||||
Msg:=lisConvRepairingIncludeFiles;
|
||||
for i:=0 to FoundIncludeFiles.Count-1 do begin
|
||||
fSettings.MaybeBackupFile(FoundIncludeFiles[i]);
|
||||
@ -788,7 +786,7 @@ begin
|
||||
Msg:=Msg+'; ';
|
||||
Msg:=Msg+s;
|
||||
end;
|
||||
fSettings.AddLogLine(Msg);
|
||||
fSettings.AddLogLine(mluNote, Msg, fLazUnitFilename);
|
||||
end;
|
||||
end
|
||||
else begin
|
||||
@ -797,7 +795,7 @@ begin
|
||||
CodePos:=PCodeXYPosition(MissingIncludeFilesCodeXYPos[i]);
|
||||
Msg:=Format(lisConvDelphiMissingIncludeFile,
|
||||
[CodePos^.Code.Filename,IntToStr(CodePos^.y),IntToStr(CodePos^.x)]);
|
||||
fSettings.AddLogLine(Msg);
|
||||
fSettings.AddLogLine(mluError, Msg, fLazUnitFilename);
|
||||
end;
|
||||
end;
|
||||
fErrorMsg:=Format(lisConvProblemsFixingIncludeFile, [fOrigUnitFilename]);
|
||||
@ -862,13 +860,13 @@ function TConvertDelphiPBase.EndConvert(AStatus: TModalResult): Boolean;
|
||||
begin
|
||||
// Show ending message
|
||||
if AStatus=mrOK then
|
||||
fSettings.AddLogLine(lisConvDelphiConversionReady)
|
||||
fSettings.AddLogLine(mluImportant, lisConvDelphiConversionReady)
|
||||
else begin
|
||||
if fErrorMsg<>'' then
|
||||
fSettings.AddLogLine(Format(lisConvDelphiError,[fErrorMsg]))
|
||||
fSettings.AddLogLine(mluError, Format(lisConvDelphiError,[fErrorMsg]))
|
||||
else if CodeToolBoss.ErrorMessage<>'' then
|
||||
fSettings.AddLogLine(Format(lisConvDelphiError,[CodeToolBoss.ErrorMessage]));
|
||||
fSettings.AddLogLine(lisConvDelphiConversionAborted);
|
||||
fSettings.AddLogLine(mluError, Format(lisConvDelphiError,[CodeToolBoss.ErrorMessage]));
|
||||
fSettings.AddLogLine(mluFatal, lisConvDelphiConversionAborted);
|
||||
end;
|
||||
// Save log messages to file.
|
||||
Result:=fSettings.SaveLog;
|
||||
@ -917,7 +915,7 @@ begin
|
||||
for i:=0 to fSettings.MainFilenames.Count-1 do begin
|
||||
Application.ProcessMessages;
|
||||
if i>0 then
|
||||
fSettings.AddLogLine('');
|
||||
fSettings.AddLogLine(mluImportant, '');
|
||||
DelphiUnit:=TDelphiUnit.Create(Self, fSettings.MainFilenames[i], []);
|
||||
with DelphiUnit do
|
||||
try
|
||||
@ -1031,7 +1029,7 @@ begin
|
||||
EndTime:=Now;
|
||||
s:=FormatDateTime('hh:nn:ss', EndTime-StartTime);
|
||||
if (Result<>mrAbort) and (s<>'00:00:00') then
|
||||
fSettings.AddLogLine(Format(lisConvDelphiConversionTook, [s]));
|
||||
fSettings.AddLogLine(mluProgress, Format(lisConvDelphiConversionTook,[s]));
|
||||
EndConvert(Result);
|
||||
end;
|
||||
end;
|
||||
@ -1095,8 +1093,8 @@ var
|
||||
i: Integer;
|
||||
begin
|
||||
if not fSettings.SameDfmFile then begin
|
||||
fSettings.AddLogLine('');
|
||||
fSettings.AddLogLine(lisConvDelphiRepairingFormFiles);
|
||||
fSettings.AddLogLine(mluImportant, '');
|
||||
fSettings.AddLogLine(mluImportant, lisConvDelphiRepairingFormFiles);
|
||||
DebugLn('');
|
||||
DebugLn('TConvertDelphiProjPack.ConvertAllFormFiles: '+lisConvDelphiRepairingFormFiles);
|
||||
end;
|
||||
@ -1163,7 +1161,9 @@ var
|
||||
if System.Pos(';'+lowercase(DelphiPkgName)+';',
|
||||
';'+lowercase(DelphiPkgNames)+';')>0 then begin
|
||||
fProjPack.AddPackageDependency(LazarusPkgName);
|
||||
fSettings.AddLogLine(Format(lisConvDelphiAddedPackageDependency,[LazarusPkgName]));
|
||||
fSettings.AddLogLine(mluNote,
|
||||
Format(lisConvDelphiAddedPackageDependency,[LazarusPkgName]),
|
||||
fLazPMainFilename);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1315,7 +1315,8 @@ begin
|
||||
// PUREPASCAL is defined by some code to not use x86 assembly code.
|
||||
s:='-dBorland -dVer150 -dDelphi7 -dCompiler6_Up -dPUREPASCAL';
|
||||
Options.CustomOptions:=s;
|
||||
fSettings.AddLogLine(Format(lisConvDelphiAddedCustomOptionDefines, [s]));
|
||||
fSettings.AddLogLine(mluNote, Format(lisConvDelphiAddedCustomOptionDefines,[s]),
|
||||
fLazPMainFilename);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1383,7 +1384,7 @@ begin
|
||||
if not DeleteFileUTF8(s) then
|
||||
exit(mrCancel);
|
||||
//fFilesToDelete.Delete(i);
|
||||
fSettings.AddLogLine(Format(lisConvDeletedFile,[s]));
|
||||
fSettings.AddLogLine(mluNote, Format(lisConvDeletedFile,[s]));
|
||||
end;
|
||||
end;
|
||||
Result:=mrOK;
|
||||
@ -1431,7 +1432,8 @@ begin
|
||||
Dep:=FindDependencyByName(s);
|
||||
if not Assigned(Dep) then begin
|
||||
fProjPack.AddPackageDependency(s);
|
||||
fSettings.AddLogLine(Format(lisConvDelphiAddedPackageDependency, [s]));
|
||||
fSettings.AddLogLine(mluNote, Format(lisConvDelphiAddedPackageDependency,[s]),
|
||||
fLazPMainFilename);
|
||||
Dep:=FindDependencyByName(s);
|
||||
if Assigned(Dep) then
|
||||
PackageGraph.OpenDependency(Dep,false);
|
||||
@ -1454,7 +1456,8 @@ begin
|
||||
Result:=CheckPackageDep(AUnitName);
|
||||
if not Result then
|
||||
// Package was not found. Add a message about a package that must be installed.
|
||||
fSettings.AddLogLine(Format(lisConvDelphiPackageRequired, [ADefaultPkgName]));
|
||||
fSettings.AddLogLine(mluWarning,
|
||||
Format(lisConvDelphiPackageRequired, [ADefaultPkgName]));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -1563,7 +1566,8 @@ begin
|
||||
if fSettings.OmitProjUnits.Contains(PureUnitName) then
|
||||
begin
|
||||
fMainUnitConverter.fUsedUnitsTool.Remove(PureUnitName);
|
||||
fSettings.AddLogLine(Format(lisConvDelphiProjOmittedUnit,[PureUnitName]));
|
||||
fSettings.AddLogLine(mluNote, Format(lisConvDelphiProjOmittedUnit,[PureUnitName]),
|
||||
fLazPMainFilename);
|
||||
TryAddPackageDep(PureUnitName, fSettings.OmitProjUnits[PureUnitName]);
|
||||
end
|
||||
else begin
|
||||
@ -1606,7 +1610,7 @@ begin
|
||||
exit(mrCancel);
|
||||
end;
|
||||
try // Add all units to the project
|
||||
fSettings.AddLogLine(lisConvDelphiFoundAllUnitFiles);
|
||||
fSettings.AddLogLine(mluProgress, lisConvDelphiFoundAllUnitFiles);
|
||||
DebugLn('TConvertDelphiProject.FindAllUnits: '+lisConvDelphiFoundAllUnitFiles);
|
||||
for i:=0 to FoundUnits.Count-1 do begin
|
||||
CurFilename:=FoundUnits[i];
|
||||
@ -1684,8 +1688,8 @@ begin
|
||||
try
|
||||
try
|
||||
// convert all units and fix .lfm files
|
||||
fSettings.AddLogLine('');
|
||||
fSettings.AddLogLine(lisConvDelphiConvertingProjPackUnits);
|
||||
fSettings.AddLogLine(mluImportant, '');
|
||||
fSettings.AddLogLine(mluImportant, lisConvDelphiConvertingProjPackUnits);
|
||||
for i:=0 to LazProject.UnitCount-1 do begin
|
||||
CurUnitInfo:=LazProject.Units[i];
|
||||
Application.ProcessMessages;
|
||||
@ -1698,8 +1702,8 @@ begin
|
||||
end;
|
||||
// During conversion there were more units added to be converted.
|
||||
if fUnitsToAddToProject.Count > 0 then begin
|
||||
fSettings.AddLogLine('');
|
||||
fSettings.AddLogLine(lisConvDelphiConvertingFoundUnits);
|
||||
fSettings.AddLogLine(mluImportant, '');
|
||||
fSettings.AddLogLine(mluImportant, lisConvDelphiConvertingFoundUnits);
|
||||
end;
|
||||
for i:=0 to fUnitsToAddToProject.Count-1 do begin
|
||||
Application.ProcessMessages;
|
||||
@ -1719,9 +1723,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
except
|
||||
fSettings.AddLogLine('');
|
||||
fSettings.AddLogLine('- '+lisConvDelphiExceptionDuringConversion);
|
||||
DebugLn('- '+lisConvDelphiExceptionDuringConversion);
|
||||
fSettings.AddLogLine(mluImportant, '');
|
||||
fSettings.AddLogLine(mluError, lisConvDelphiExceptionDuringConversion);
|
||||
DebugLn(lisConvDelphiExceptionDuringConversion);
|
||||
raise;
|
||||
end;
|
||||
finally
|
||||
@ -1885,7 +1889,8 @@ begin
|
||||
if CodeToolBoss.HasInterfaceRegisterProc(CodeBuffer, HasRegisterProc) then
|
||||
if HasRegisterProc then begin
|
||||
Include(Flags, pffHasRegisterProc);
|
||||
fSettings.AddLogLine(Format(lisConvAddingFlagForRegister, [PureUnitName]));
|
||||
fSettings.AddLogLine(mluNote, Format(lisConvAddingFlagForRegister,[PureUnitName]),
|
||||
fLazPMainFilename);
|
||||
end;
|
||||
// Add new unit to package
|
||||
LazPackage.AddFile(AFileName, PureUnitName, pftUnit, Flags, cpNormal);
|
||||
@ -1912,7 +1917,7 @@ begin
|
||||
exit(mrCancel);
|
||||
end;
|
||||
try
|
||||
fSettings.AddLogLine(lisConvDelphiFoundAllUnitFiles);
|
||||
fSettings.AddLogLine(mluProgress, lisConvDelphiFoundAllUnitFiles);
|
||||
DebugLn('TConvertDelphiPackage.FindAllUnits: '+lisConvDelphiFoundAllUnitFiles);
|
||||
// Add all units to the package
|
||||
for i:=0 to FoundUnits.Count-1 do begin
|
||||
@ -1996,8 +2001,8 @@ begin
|
||||
try
|
||||
try
|
||||
// Convert all units and fix .lfm files
|
||||
fSettings.AddLogLine('');
|
||||
fSettings.AddLogLine(lisConvDelphiConvertingProjPackUnits);
|
||||
fSettings.AddLogLine(mluImportant, '');
|
||||
fSettings.AddLogLine(mluImportant, lisConvDelphiConvertingProjPackUnits);
|
||||
for i:=0 to LazPackage.FileCount-1 do begin
|
||||
PkgFile:=LazPackage.Files[i];
|
||||
Application.ProcessMessages;
|
||||
@ -2007,8 +2012,8 @@ begin
|
||||
end;
|
||||
// During conversion there were more units added to be converted.
|
||||
if fUnitsToAddToProject.Count > 0 then begin
|
||||
fSettings.AddLogLine('');
|
||||
fSettings.AddLogLine(lisConvDelphiConvertingFoundUnits);
|
||||
fSettings.AddLogLine(mluImportant, '');
|
||||
fSettings.AddLogLine(mluImportant, lisConvDelphiConvertingFoundUnits);
|
||||
end;
|
||||
{ ToDo: add more units
|
||||
for i:=0 to fUnitsToAddToProject.Count-1 do begin
|
||||
@ -2024,9 +2029,9 @@ begin
|
||||
end;
|
||||
}
|
||||
except
|
||||
fSettings.AddLogLine('');
|
||||
fSettings.AddLogLine('- '+lisConvDelphiExceptionDuringConversion);
|
||||
DebugLn('- '+lisConvDelphiExceptionDuringConversion);
|
||||
fSettings.AddLogLine(mluImportant, '');
|
||||
fSettings.AddLogLine(mluError, lisConvDelphiExceptionDuringConversion);
|
||||
DebugLn(lisConvDelphiExceptionDuringConversion);
|
||||
raise;
|
||||
end;
|
||||
finally
|
||||
|
@ -30,10 +30,17 @@ unit ConvertSettings;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Forms, Controls, Dialogs, IDEProcs, StdCtrls, Buttons,
|
||||
ButtonPanel, ComCtrls, DialogProcs, FileUtil, LazFileUtils,
|
||||
LazarusIDEStrConsts, CodeToolsStructs, CodeToolManager, CodeCache,
|
||||
DividerBevel, BaseIDEIntf, IDEMsgIntf, IDEExternToolIntf, AVL_Tree,
|
||||
Classes, SysUtils, AVL_Tree,
|
||||
Forms, Controls, Dialogs, StdCtrls, Buttons, ButtonPanel, ComCtrls,
|
||||
// LazUtils
|
||||
FileUtil, LazFileUtils, DividerBevel,
|
||||
// CodeTools
|
||||
CodeToolsStructs, CodeToolManager, CodeCache,
|
||||
// IdeIntf
|
||||
BaseIDEIntf, IDEMsgIntf, IDEExternToolIntf,
|
||||
// IDE
|
||||
IDEProcs, DialogProcs, LazarusIDEStrConsts,
|
||||
// Converter
|
||||
LazConfigStorage, ConverterTypes, ReplaceNamesUnit, ReplaceFuncsUnit;
|
||||
|
||||
const
|
||||
@ -118,7 +125,8 @@ type
|
||||
out LazFilename: string; LowercaseFilename: Boolean): TModalResult; overload;
|
||||
function MaybeBackupFile(const AFilename: string): TModalResult;
|
||||
procedure ClearLog;
|
||||
function AddLogLine(const ALine: string; Urgency: TMessageLineUrgency = mluHint): integer;
|
||||
procedure AddLogLine(Urgency: TMessageLineUrgency; const Msg: string;
|
||||
const Filename: string=''; LineNumber: integer=0; Column: integer=0);
|
||||
function SaveLog: Boolean;
|
||||
public
|
||||
property MainFilenames: TStringlist read fMainFilenames;
|
||||
@ -772,11 +780,20 @@ begin
|
||||
fLog.Clear;
|
||||
end;
|
||||
|
||||
function TConvertSettings.AddLogLine(
|
||||
const ALine: string; Urgency: TMessageLineUrgency): integer;
|
||||
procedure TConvertSettings.AddLogLine(Urgency: TMessageLineUrgency;
|
||||
const Msg: string; const Filename: string; LineNumber: integer; Column: integer);
|
||||
var
|
||||
FN, Coords, Urg: String;
|
||||
begin
|
||||
IDEMessagesWindow.AddCustomMessage(Urgency,aLine); // Show in message window
|
||||
Result:=fLog.Add(MessageLineUrgencyNames[Urgency]+': '+ALine);// and store for log.
|
||||
// Show in message window
|
||||
IDEMessagesWindow.AddCustomMessage(Urgency, Msg, Filename, LineNumber, Column);
|
||||
// and store for log.
|
||||
FN := ExtractFileName(Filename);
|
||||
if (LineNumber<>0) or (Column<>0) then
|
||||
Coords := Format('(%d,%d)', [LineNumber, Column]);
|
||||
if Urgency <> mluImportant then
|
||||
Urg := MessageLineUrgencyNames[Urgency];
|
||||
fLog.Add(FN + Coords + ' ' + Urg + ': ' + Msg);
|
||||
end;
|
||||
|
||||
function TConvertSettings.SaveLog: Boolean;
|
||||
|
@ -40,8 +40,9 @@ uses
|
||||
SynHighlighterLFM, SynEdit, SynEditMiscClasses, LFMTrees,
|
||||
// codetools
|
||||
CodeCache, CodeToolManager, CodeToolsStructs, CodeCompletionTool,
|
||||
// IdeIntf
|
||||
ComponentReg, PackageIntf, IDEWindowIntf, IDEExternToolIntf,
|
||||
// IDE
|
||||
ComponentReg, PackageIntf, IDEWindowIntf,
|
||||
CustomFormEditor, LazarusIDEStrConsts, IDEProcs,
|
||||
EditorOptions, CheckLFMDlg, Project, SourceMarks,
|
||||
// Converter
|
||||
@ -161,15 +162,20 @@ end;
|
||||
function TDFMConverter.Convert(const DfmFilename: string): TModalResult;
|
||||
var
|
||||
s: String;
|
||||
Urgency: TMessageLineUrgency;
|
||||
begin
|
||||
Result:=ConvertDfmToLfm(DfmFilename);
|
||||
if Result=mrOK then begin
|
||||
if fOrigFormat=sofBinary then
|
||||
s:=Format(lisFileSIsConvertedToTextFormat, [DfmFilename])
|
||||
else
|
||||
if fOrigFormat=sofBinary then begin
|
||||
s:=Format(lisFileSIsConvertedToTextFormat, [DfmFilename]);
|
||||
Urgency:=mluHint;
|
||||
end
|
||||
else begin
|
||||
s:=Format(lisFileSHasIncorrectSyntax, [DfmFilename]);
|
||||
Urgency:=mluError;
|
||||
end;
|
||||
if Assigned(fSettings) then
|
||||
fSettings.AddLogLine(s)
|
||||
fSettings.AddLogLine(Urgency, s, DfmFilename)
|
||||
else
|
||||
ShowMessage(s);
|
||||
end;
|
||||
@ -416,8 +422,9 @@ begin
|
||||
NewIdent:=ObjNode.Name+':'+ObjNode.TypeName;
|
||||
fCTLink.CodeTool.AddClassInsertion(UpperCase(ObjNode.Name),
|
||||
NewIdent+';', ObjNode.Name, ncpPublishedVars);
|
||||
fSettings.AddLogLine(Format(lisAddedMissingObjectSToPascalSource,
|
||||
[NewIdent]));
|
||||
fSettings.AddLogLine(mluNote,
|
||||
Format(lisAddedMissingObjectSToPascalSource, [NewIdent]),
|
||||
fUsedUnitsTool.Filename);
|
||||
end
|
||||
else if IsMissingType(CurError) then
|
||||
begin
|
||||
@ -429,8 +436,9 @@ begin
|
||||
if NewIdent<>'' then begin
|
||||
StartPos:=ObjNode.TypeNamePosition;
|
||||
EndPos:=StartPos+Length(OldIdent);
|
||||
fSettings.AddLogLine(Format(lisReplacedTypeSWithS,
|
||||
[OldIdent, NewIdent]));
|
||||
fSettings.AddLogLine(mluNote,
|
||||
Format(lisReplacedTypeSWithS, [OldIdent, NewIdent]),
|
||||
fUsedUnitsTool.Filename);
|
||||
AddReplacement(ChgEntryRepl,StartPos,EndPos,NewIdent);
|
||||
Result:=mrRetry;
|
||||
end;
|
||||
@ -444,11 +452,12 @@ begin
|
||||
// Delete the whole property line if no replacement.
|
||||
if NewIdent='' then begin
|
||||
FindNiceNodeBounds(TheNode,StartPos,EndPos);
|
||||
fSettings.AddLogLine(Format(lisRemovedPropertyS, [OldIdent]));
|
||||
fSettings.AddLogLine(mluNote, Format(lisRemovedPropertyS, [OldIdent]),
|
||||
fUsedUnitsTool.Filename);
|
||||
end
|
||||
else
|
||||
fSettings.AddLogLine(Format(lisReplacedPropertySWithS,
|
||||
[OldIdent, NewIdent]));
|
||||
fSettings.AddLogLine(mluNote,
|
||||
Format(lisReplacedPropertySWithS, [OldIdent, NewIdent]));
|
||||
AddReplacement(ChgEntryRepl,StartPos,EndPos,NewIdent);
|
||||
Result:=mrRetry;
|
||||
end;
|
||||
@ -501,8 +510,9 @@ begin
|
||||
if NewNum<0 then
|
||||
NewNum:=0;
|
||||
fLFMBuffer.Replace(TopOffs.StartPos, Len, IntToStr(NewNum));
|
||||
fSettings.AddLogLine(Format(lisChangedSCoordOfSFromDToDInsideS,
|
||||
[TopOffs.PropName, TopOffs.ChildType, OldNum, NewNum, TopOffs.ParentType]));
|
||||
fSettings.AddLogLine(mluNote, Format(lisChangedSCoordOfSFromDToDInsideS,
|
||||
[TopOffs.PropName, TopOffs.ChildType, OldNum, NewNum, TopOffs.ParentType]),
|
||||
fUsedUnitsTool.Filename);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -518,8 +528,9 @@ begin
|
||||
Entry:=TAddPropEntry(aNewProps[i]);
|
||||
fLFMBuffer.Replace(Entry.StartPos, Entry.EndPos-Entry.StartPos,
|
||||
Entry.NewPrefix+Entry.NewText);
|
||||
fSettings.AddLogLine(Format(lisAddedPropertySForS,
|
||||
[Entry.NewText, Entry.ParentType]));
|
||||
fSettings.AddLogLine(mluNote,
|
||||
Format(lisAddedPropertySForS, [Entry.NewText, Entry.ParentType]),
|
||||
fUsedUnitsTool.Filename);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -31,12 +31,13 @@ unit UsedUnits;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Forms, Controls, Dialogs,
|
||||
Classes, SysUtils, AVL_Tree, Forms, Controls, Dialogs,
|
||||
// IDE
|
||||
LazarusIDEStrConsts, IDEExternToolIntf,
|
||||
// codetools
|
||||
CodeToolManager, StdCodeTools, CodeTree, CodeToolsStructs, AVL_Tree,
|
||||
LinkScanner, KeywordFuncLists, SourceChanger, CodeAtom, CodeToolsStrConsts, FileProcs,
|
||||
CodeToolManager, StdCodeTools, CustomCodeTool, CodeTree, CodeAtom, CodeCache,
|
||||
LinkScanner, KeywordFuncLists, SourceChanger, CodeToolsStrConsts, CodeToolsStructs,
|
||||
FileProcs,
|
||||
// Converter
|
||||
ConverterTypes, ConvCodeTool, ConvertSettings, ReplaceNamesUnit;
|
||||
|
||||
@ -137,6 +138,7 @@ type
|
||||
procedure AddUnitIfNeeded(aUnitName: string);
|
||||
function AddThreadSupport: TModalResult;
|
||||
public
|
||||
property Filename: string read fFilename;
|
||||
property IsMainFile: Boolean read fIsMainFile write fIsMainFile;
|
||||
property IsConsoleApp: Boolean read fIsConsoleApp write fIsConsoleApp;
|
||||
property MainUsedUnits: TUsedUnits read fMainUsedUnits;
|
||||
@ -214,6 +216,7 @@ function TUsedUnits.FindMissingUnits: boolean;
|
||||
var
|
||||
UsesNode: TCodeTreeNode;
|
||||
InAtom, UnitNameAtom: TAtomPosition;
|
||||
CaretPos: TCodeXYPosition;
|
||||
OldUnitName, OldInFilename: String;
|
||||
NewUnitName, NewInFilename: String;
|
||||
FullFileN, LowFileN: String;
|
||||
@ -247,8 +250,10 @@ begin
|
||||
if NewUnitName<>OldUnitName then begin
|
||||
// Character case differs, fix it.
|
||||
fUnitsToFixCase[OldUnitName]:=NewUnitName;
|
||||
Settings.AddLogLine(Format(lisConvDelphiFixedUnitCase,
|
||||
[OldUnitName, NewUnitName]));
|
||||
if CodeTool.CleanPosToCaret(UnitNameAtom.StartPos, CaretPos) then
|
||||
Settings.AddLogLine(mluNote,
|
||||
Format(lisConvDelphiFixedUnitCase, [OldUnitName, NewUnitName]),
|
||||
fOwnerTool.fFilename, CaretPos.Y, CaretPos.X);
|
||||
end;
|
||||
// Report Windows specific units as missing if target is CrossPlatform.
|
||||
// Needed if work-platform is Windows.
|
||||
@ -309,8 +314,9 @@ begin
|
||||
fUnitsToRename[AOldName]:=ANewName;
|
||||
fUnitsToRenameKeys.Add(AOldName);
|
||||
fUnitsToRenameVals.AddStrings(sl);
|
||||
fCTLink.Settings.AddLogLine(Format(lisConvDelphiReplacedUnitInUsesSection,
|
||||
[AOldName, ANewName]));
|
||||
fCTLink.Settings.AddLogLine(mluNote,
|
||||
Format(lisConvDelphiReplacedUnitInUsesSection, [AOldName, ANewName]),
|
||||
fOwnerTool.fFilename);
|
||||
end;
|
||||
finally
|
||||
sl.Free;
|
||||
@ -322,8 +328,9 @@ begin
|
||||
AOldName:=Copy(AOldName, 1, i-1); // Strip the file name part.
|
||||
if fUnitsToRemove.IndexOf(AOldName)=-1 then
|
||||
fUnitsToRemove.Add(AOldName);
|
||||
fCTLink.Settings.AddLogLine(Format(lisConvDelphiRemovedUnitInUsesSection,
|
||||
[AOldName]));
|
||||
fCTLink.Settings.AddLogLine(mluNote,
|
||||
Format(lisConvDelphiRemovedUnitInUsesSection, [AOldName]),
|
||||
fOwnerTool.fFilename);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -776,7 +783,8 @@ procedure TUsedUnitsTool.AddUnitIfNeeded(aUnitName: string);
|
||||
begin
|
||||
if not HasUnit(aUnitName) then begin
|
||||
fMainUsedUnits.fUnitsToAdd.Add(aUnitName);
|
||||
fCTLink.Settings.AddLogLine(Format(lisConvAddedUnitToUsesSection, [aUnitName]));
|
||||
fCTLink.Settings.AddLogLine(mluNote,
|
||||
Format(lisConvAddedUnitToUsesSection,[aUnitName]), fFilename);
|
||||
MaybeOpenPackage(aUnitName);
|
||||
end;
|
||||
end;
|
||||
|
@ -5795,9 +5795,6 @@ resourcestring
|
||||
lisConvDelphiRepairingFormFiles = '*** Fixing used units and Repairing form files ***';
|
||||
lisConvDelphiConvertingProjPackUnits = '*** Converting unit files belonging to project/package ***';
|
||||
lisConvDelphiConvertingFoundUnits = '*** Converting unit files found during conversion ***';
|
||||
lisConvDelphiRepairingFormFile = '* Repairing form file %s *';
|
||||
lisConvDelphiConvertingFile = '* Converting file %s *';
|
||||
lisConvDelphiFixingUsedUnits = '* Fixing used units for file %s *';
|
||||
lisConvDelphiChangedEncodingToUTF8 = 'Changed encoding from %s to UTF-8';
|
||||
lisConvDelphiAllSubDirsScanned = 'All sub-directories will be scanned for unit files';
|
||||
lisConvDelphiMissingIncludeFile = '%s(%s,%s) missing include file';
|
||||
|
Loading…
Reference in New Issue
Block a user