IDE: Support uppercase '.LPI' and '.LPR' files better. Issue #40708.

This commit is contained in:
Juha 2024-02-29 13:55:02 +02:00
parent a8610762e1
commit d04340fa7e
5 changed files with 17 additions and 17 deletions

View File

@ -1982,7 +1982,7 @@ begin
begin begin
MsgLine.Urgency:=mluVerbose; MsgLine.Urgency:=mluVerbose;
end else if HideHintsUnitNotUsedInMainSource then begin end else if HideHintsUnitNotUsedInMainSource then begin
if FilenameExtIs(MsgLine.Filename, 'lpr', true) then if FilenameExtIs(MsgLine.Filename, 'lpr', false) then
// a lpr does not use a unit => not important // a lpr does not use a unit => not important
MsgLine.Urgency:=mluVerbose MsgLine.Urgency:=mluVerbose
else if FilenameIsAbsolute(MsgLine.Filename) else if FilenameIsAbsolute(MsgLine.Filename)

View File

@ -389,10 +389,10 @@ begin
Package:=TLazPackageLink(LazPackageLinks.FindLinkWithPkgName(OriginalFileName)); Package:=TLazPackageLink(LazPackageLinks.FindLinkWithPkgName(OriginalFileName));
if Package=nil then begin if Package=nil then begin
// Not found after everything we tried // Not found after everything we tried
if FilenameExtIs(Filename,'lpi', true) then if FilenameExtIs(Filename,'lpi', false) then
Error(ErrorFileNotFound,'file not found: '+OriginalFilename) Error(ErrorFileNotFound, 'File not found: "' + OriginalFilename + '"')
else else
Error(ErrorFileNotFound,'package not found: '+OriginalFilename); Error(ErrorFileNotFound,'package not found: "' + OriginalFilename + '"');
end end
else begin else begin
// We found a package link // We found a package link
@ -424,9 +424,9 @@ begin
lpaInstall: Result:=true; // this is handled in AddPackagesToInstallList lpaInstall: Result:=true; // this is handled in AddPackagesToInstallList
lpaAddPkgLinks: Result:=true; lpaAddPkgLinks: Result:=true;
end; end;
end else if FilenameExtIs(Filename,'lpi',true) then end else if FilenameExtIs(Filename,'lpi',false) then
Result:=BuildProject(Filename) Result:=BuildProject(Filename)
else if FilenameExtIs(Filename,'lpr',true) then begin else if FilenameExtIs(Filename,'lpr',false) then begin
Filename:=ChangeFileExt(Filename,'.lpi'); Filename:=ChangeFileExt(Filename,'.lpi');
if FileExists(Filename) then if FileExists(Filename) then
Result:=BuildProject(Filename) Result:=BuildProject(Filename)

View File

@ -5825,14 +5825,14 @@ begin
FileList := TStringList.Create; FileList := TStringList.Create;
FileList.AddStrings(FileNames); FileList.AddStrings(FileNames);
try try
if FilenameExtIs(FileList[0],'lpr') then if FilenameExtIs(FileList[0],'lpr',false) then
begin begin
SourceEditorManager.IncUpdateLock; SourceEditorManager.IncUpdateLock;
OpenEditorFile(FileList[0],-1,WindowIndex,Nil,[ofAddToRecent]); OpenEditorFile(FileList[0],-1,WindowIndex,Nil,[ofAddToRecent]);
SourceEditorManager.DecUpdateLock; SourceEditorManager.DecUpdateLock;
FileList.Delete(0); FileList.Delete(0);
end end
else if FilenameExtIs(FileList[0],'lpi',true) then else if FilenameExtIs(FileList[0],'lpi',false) then
begin begin
DoOpenProjectFile(FileList[0],[ofAddToRecent]); DoOpenProjectFile(FileList[0],[ofAddToRecent]);
FileList.Delete(0); FileList.Delete(0);
@ -7698,9 +7698,9 @@ procedure TMainIDE.DoExecuteRemoteControl;
AProjectFilename:=''; AProjectFilename:='';
for i:=Files.Count-1 downto 0 do begin for i:=Files.Count-1 downto 0 do begin
AProjectFilename:=Files[0]; AProjectFilename:=Files[0];
if FilenameExtIs(AProjectFilename,'lpr',true) then if FilenameExtIs(AProjectFilename,'lpr',false) then
AProjectFilename:=ChangeFileExt(AProjectFilename,'.lpi'); AProjectFilename:=ChangeFileExt(AProjectFilename,'.lpi');
if FilenameExtIs(AProjectFilename,'lpi',true) then begin if FilenameExtIs(AProjectFilename,'lpi',false) then begin
// open a project // open a project
Files.Delete(i); // remove from the list Files.Delete(i); // remove from the list
AProjectFilename:=CleanAndExpandFilename(AProjectFilename); AProjectFilename:=CleanAndExpandFilename(AProjectFilename);

View File

@ -7273,7 +7273,7 @@ begin
MaybeAddPopup('.pp'); MaybeAddPopup('.pp');
MaybeAddPopup('.p'); MaybeAddPopup('.p');
end; end;
if FilenameExtIn(ShortFileName, ['lpi','lpk'], true) then begin if FilenameExtIn(ShortFileName, ['lpi','lpk'], false) then begin
AddContextPopupMenuItem(Format(lisOpenLfm,[ShortFileName]),true,@OnPopupMenuOpenFile); AddContextPopupMenuItem(Format(lisOpenLfm,[ShortFileName]),true,@OnPopupMenuOpenFile);
end; end;
FPDocSrc:=LazarusHelp.GetFPDocFilenameForSource(CurFilename,false,AnOwner); FPDocSrc:=LazarusHelp.GetFPDocFilenameForSource(CurFilename,false,AnOwner);
@ -8403,7 +8403,7 @@ begin
aFilename:=copy(aFilename,p,length(aFilename)-(length(ResStr)-2)); aFilename:=copy(aFilename,p,length(aFilename)-(length(ResStr)-2));
if not FilenameIsAbsolute(aFilename) then if not FilenameIsAbsolute(aFilename) then
aFilename:=TrimFilename(ExtractFilePath(GetActiveSE.Filename)+aFilename); aFilename:=TrimFilename(ExtractFilePath(GetActiveSE.Filename)+aFilename);
if FilenameExtIs(aFilename,'lpi',true) then if FilenameExtIs(aFilename,'lpi',false) then
MainIDEInterface.DoOpenProjectFile(aFilename,[ofOnlyIfExists,ofAddToRecent,ofUseCache]) MainIDEInterface.DoOpenProjectFile(aFilename,[ofOnlyIfExists,ofAddToRecent,ofUseCache])
else if FilenameExtIs(aFilename,'lpk',true) then else if FilenameExtIs(aFilename,'lpk',true) then
PackageEditingInterface.DoOpenPackageFile(aFilename,[pofAddToRecent],false) PackageEditingInterface.DoOpenPackageFile(aFilename,[pofAddToRecent],false)

View File

@ -1039,7 +1039,7 @@ var
SourceType: String; SourceType: String;
begin begin
if ([ofProjectLoading,ofRegularFile]*FFlags=[]) and (MainIDE.ToolStatus=itNone) if ([ofProjectLoading,ofRegularFile]*FFlags=[]) and (MainIDE.ToolStatus=itNone)
and FilenameExtIs(FFilename,'lpi',true) then begin and FilenameExtIs(FFilename,'lpi',false) then begin
// this is a project info file -> load whole project // this is a project info file -> load whole project
Result:=MainIDE.DoOpenProjectFile(FFilename,[ofAddToRecent]); Result:=MainIDE.DoOpenProjectFile(FFilename,[ofAddToRecent]);
if Result = mrOK then if Result = mrOK then
@ -1265,7 +1265,7 @@ begin
if ([ofRegularFile,ofRevert,ofProjectLoading]*FFlags=[]) if ([ofRegularFile,ofRevert,ofProjectLoading]*FFlags=[])
and FilenameIsAbsolute(FFilename) and FileExistsCached(FFilename) then begin and FilenameIsAbsolute(FFilename) and FileExistsCached(FFilename) then begin
// check if file is a lazarus project (.lpi) // check if file is a lazarus project (.lpi)
if FilenameExtIs(FFilename,'lpi',true) then if FilenameExtIs(FFilename,'lpi',false) then
begin begin
case case
IDEQuestionDialog(lisOpenProject, Format(lisOpenTheProject, [FFilename]), IDEQuestionDialog(lisOpenProject, Format(lisOpenTheProject, [FFilename]),
@ -1986,10 +1986,10 @@ begin
if (AFiles=nil) or (AFiles.Count=0) then Exit; if (AFiles=nil) or (AFiles.Count=0) then Exit;
//DebugLn(['MaybeOpenProject: AFiles=', AFiles.Count]); //DebugLn(['MaybeOpenProject: AFiles=', AFiles.Count]);
AProjectFN:=AFiles[0]; AProjectFN:=AFiles[0];
if FilenameExtIs(AProjectFN,'lpr',true) then if FilenameExtIs(AProjectFN,'lpr',false) then
AProjectFN:=ChangeFileExt(AProjectFN,'.lpi'); AProjectFN:=ChangeFileExt(AProjectFN,'.lpi');
// only try to load .lpi files here, other files are loaded later // only try to load .lpi files here, other files are loaded later
if FilenameExtIs(AProjectFN,'lpi',true) then begin if FilenameExtIs(AProjectFN,'lpi',false) then begin
AProjectFN:=CleanAndExpandFilename(AProjectFN); AProjectFN:=CleanAndExpandFilename(AProjectFN);
if FileExistsUTF8(AProjectFN) then begin if FileExistsUTF8(AProjectFN) then begin
AFiles.Delete(0); AFiles.Delete(0);
@ -4225,7 +4225,7 @@ begin
+dlgFilterAll+'|'+GetAllFilesMask; +dlgFilterAll+'|'+GetAllFilesMask;
if OpenDialog.Execute then begin if OpenDialog.Execute then begin
AFilename:=GetPhysicalFilenameCached(ExpandFileNameUTF8(OpenDialog.Filename),false); AFilename:=GetPhysicalFilenameCached(ExpandFileNameUTF8(OpenDialog.Filename),false);
if not FilenameExtIs(AFilename,'lpi',true) then begin if not FilenameExtIs(AFilename,'lpi',false) then begin
// not a lpi file // not a lpi file
// check if it is a program source // check if it is a program source