[Lazarus] It is a beautiful day...

classic Classic list List threaded Threaded
19 messages Options
Reply | Threaded
Open this post in threaded view
|

[Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list

Hello,

For those of you that don't follow the SVN logs closely:

The IDE now has proper support for Project groups.
Project groups already existed for some time, but were crippled.

With 2 additions they are now actually very useful:

- You can let Ctrl-F9 compile the current target in a project group, and that
   includes for instance a package !
   (you can set this in Tools - Options - Project groups)

- "Find in files" now has the option 'Search in project group'

They now offer all functionality as in Delphi. In difference with the latter,
their use is entirely optional...

My heartfelt thanks to Mattias for completing the 'Project group' functionality !

Michael.
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
thank you.

Michael Van Canneyt via lazarus wrote:

Hello,

For those of you that don't follow the SVN logs closely:

The IDE now has proper support for Project groups.
Project groups already existed for some time, but were crippled.

With 2 additions they are now actually very useful:

- You can let Ctrl-F9 compile the current target in a project group, and that
  includes for instance a package !
  (you can set this in Tools - Options - Project groups)

- "Find in files" now has the option 'Search in project group'

They now offer all functionality as in Delphi. In difference with the latter,
their use is entirely optional...

My heartfelt thanks to Mattias for completing the 'Project group' functionality !

Michael.


--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
In reply to this post by Free Pascal - Lazarus mailing list
Little improvement:

Highlight the current compiling project:

Why?

Think of a package with examples all called project1, so you don't know
which project eventually throws an error?!!

Thanks for project-groups!!


Am 11.07.19 um 17:46 schrieb Michael Van Canneyt via lazarus:

>
> Hello,
>
> For those of you that don't follow the SVN logs closely:
>
> The IDE now has proper support for Project groups.
> Project groups already existed for some time, but were crippled.
>
> With 2 additions they are now actually very useful:
>
> - You can let Ctrl-F9 compile the current target in a project group,
> and that
>   includes for instance a package !
>   (you can set this in Tools - Options - Project groups)
>
> - "Find in files" now has the option 'Search in project group'
>
> They now offer all functionality as in Delphi. In difference with the
> latter,
> their use is entirely optional...
>
> My heartfelt thanks to Mattias for completing the 'Project group'
> functionality !
>
> Michael.


--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
In reply to this post by Free Pascal - Lazarus mailing list
Sounds interesting. Can i have a package that installs
components/controls only available to the project group instead of
globally? I often want to have components (and sometimes controls)
available on the component palette but not for every project, but so
far i see packages need to be installed "lazarus-wide" to expose
components to the component palette.

On Thu, Jul 11, 2019 at 5:46 PM Michael Van Canneyt via lazarus
<[hidden email]> wrote:

>
>
> Hello,
>
> For those of you that don't follow the SVN logs closely:
>
> The IDE now has proper support for Project groups.
> Project groups already existed for some time, but were crippled.
>
> With 2 additions they are now actually very useful:
>
> - You can let Ctrl-F9 compile the current target in a project group, and that
>    includes for instance a package !
>    (you can set this in Tools - Options - Project groups)
>
> - "Find in files" now has the option 'Search in project group'
>
> They now offer all functionality as in Delphi. In difference with the latter,
> their use is entirely optional...
>
> My heartfelt thanks to Mattias for completing the 'Project group' functionality !
>
> Michael.
> --
> _______________________________________________
> lazarus mailing list
> [hidden email]
> https://lists.lazarus-ide.org/listinfo/lazarus
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list


On Wed, 17 Jul 2019, Kostas Michalopoulos via lazarus wrote:

> Sounds interesting. Can i have a package that installs
> components/controls only available to the project group instead of
> globally? I often want to have components (and sometimes controls)
> available on the component palette but not for every project, but so
> far i see packages need to be installed "lazarus-wide" to expose
> components to the component palette.

There is a feature request to have named configurations of the component palette.

When that is available, one could associate a named configuration to a project
group, and this does what you need.

Michael.
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
In reply to this post by Free Pascal - Lazarus mailing list
Great news!

There is one more thing which would be helpful, at least for me. I am
maintaining the Lazarus port of JVCL, and this library currently
consists of 16 runtime and designtime packages (i.e. 32 lpk files), and
when porting proceeds there will be more to follow. As you an imagine,
it is a pain to install them manually...

I already set up a project group which can compile all the packages, but
what is missing is a way to install them. I mean: Could there be a
button "Install"? After clicking on this button a routine should iterate
through all the items of the project group, find the design time
packages, mark them for installation, and finally rebuild the IDE. Can
this be done?

Werner

--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
On Sat, 20 Jul 2019 11:59:56 +0200
Werner Pamler via lazarus <[hidden email]> wrote:

> Great news!
>
> There is one more thing which would be helpful, at least for me. I am
> maintaining the Lazarus port of JVCL, and this library currently
> consists of 16 runtime and designtime packages (i.e. 32 lpk files),
> and when porting proceeds there will be more to follow. As you an
> imagine, it is a pain to install them manually...
>
> I already set up a project group which can compile all the packages,
> but what is missing is a way to install them. I mean: Could there be
> a button "Install"? After clicking on this button a routine should
> iterate through all the items of the project group, find the design
> time packages, mark them for installation, and finally rebuild the
> IDE. Can this be done?

You could create a meta package and install that.

Mattias
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list


On Sat, 20 Jul 2019, Mattias Gaertner via lazarus wrote:

> On Sat, 20 Jul 2019 11:59:56 +0200
> Werner Pamler via lazarus <[hidden email]> wrote:
>
>> Great news!
>>
>> There is one more thing which would be helpful, at least for me. I am
>> maintaining the Lazarus port of JVCL, and this library currently
>> consists of 16 runtime and designtime packages (i.e. 32 lpk files),
>> and when porting proceeds there will be more to follow. As you an
>> imagine, it is a pain to install them manually...
>>
>> I already set up a project group which can compile all the packages,
>> but what is missing is a way to install them. I mean: Could there be
>> a button "Install"? After clicking on this button a routine should
>> iterate through all the items of the project group, find the design
>> time packages, mark them for installation, and finally rebuild the
>> IDE. Can this be done?
>
> You could create a meta package and install that.

That is one way, but I think the 'install' option would of course also be
nice to have. The program group is already there after all. Making a new
file just for install purposes seems superfluous...

Michael.
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
In reply to this post by Free Pascal - Lazarus mailing list
Am 20.07.2019 um 12:15 schrieb Mattias Gaertner via lazarus:
> On Sat, 20 Jul 2019 11:59:56 +0200
> Werner Pamler via lazarus <[hidden email]> wrote:
>
> You could create a meta package and install that.
Excuse my ignorance. , But what is a "meta package"? A package which
only contains requirements of other packages?
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
On Sat, 20 Jul 2019 15:32:05 +0200
Werner Pamler via lazarus <[hidden email]> wrote:

> Am 20.07.2019 um 12:15 schrieb Mattias Gaertner via lazarus:
> > On Sat, 20 Jul 2019 11:59:56 +0200
> > Werner Pamler via lazarus <[hidden email]> wrote:
> >
> > You could create a meta package and install that.  
> Excuse my ignorance. , But what is a "meta package"? A package which
> only contains requirements of other packages?

Yes

Mattias
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
Am 20.07.2019 um 15:43 schrieb Mattias Gaertner via lazarus:

> On Sat, 20 Jul 2019 15:32:05 +0200
> Werner Pamler via lazarus <[hidden email]> wrote:
>
>> Am 20.07.2019 um 12:15 schrieb Mattias Gaertner via lazarus:
>>> On Sat, 20 Jul 2019 11:59:56 +0200
>>> Werner Pamler via lazarus <[hidden email]> wrote:
>>>
>>> You could create a meta package and install that.
>> Excuse my ignorance. , But what is a "meta package"? A package which
>> only contains requirements of other packages?
> Yes

When installing the new meta package "jvcl_all" which contains all
designtime packages I get a message

"The package jvcl_all does not have any "Register" procedure which
typically means it does not provide any IDE addon. Installing it will
probably only increase the size of the IDE and may even make it unstable."

and I am prompted to either "Install it, I like the fat" or to "Cancel".
How can I avoid this? Do I have to provide a dummy registration unit?
What does it have to look like?

--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
On Sat, 20 Jul 2019 19:37:23 +0200
Werner Pamler via lazarus <[hidden email]> wrote:

> Am 20.07.2019 um 15:43 schrieb Mattias Gaertner via lazarus:
> > On Sat, 20 Jul 2019 15:32:05 +0200
> > Werner Pamler via lazarus <[hidden email]> wrote:
> >  
> >> Am 20.07.2019 um 12:15 schrieb Mattias Gaertner via lazarus:  
> >>> On Sat, 20 Jul 2019 11:59:56 +0200
> >>> Werner Pamler via lazarus <[hidden email]> wrote:
> >>>
> >>> You could create a meta package and install that.  
> >> Excuse my ignorance. , But what is a "meta package"? A package
> >> which only contains requirements of other packages?  
> > Yes  
>
> When installing the new meta package "jvcl_all" which contains all
> designtime packages I get a message
>
> "The package jvcl_all does not have any "Register" procedure which
> typically means it does not provide any IDE addon. Installing it will
> probably only increase the size of the IDE and may even make it
> unstable."
>
> and I am prompted to either "Install it, I like the fat" or to
> "Cancel". How can I avoid this? Do I have to provide a dummy
> registration unit?

It should not warn in this case. I fixed the bug.

> What does it have to look like?


Mattias
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list

Am 20.07.2019 um 20:05 schrieb Mattias Gaertner via lazarus:

> On Sat, 20 Jul 2019 19:37:23 +0200
> Werner Pamler via lazarus <[hidden email]> wrote:
>
>> Am 20.07.2019 um 15:43 schrieb Mattias Gaertner via lazarus:
>>> On Sat, 20 Jul 2019 15:32:05 +0200
>>> Werner Pamler via lazarus <[hidden email]> wrote:
>>>  
>>>> Am 20.07.2019 um 12:15 schrieb Mattias Gaertner via lazarus:
>>>>> On Sat, 20 Jul 2019 11:59:56 +0200
>>>>> Werner Pamler via lazarus <[hidden email]> wrote:
>>>>>
>>>>> You could create a meta package and install that.
>>>> Excuse my ignorance. , But what is a "meta package"? A package
>>>> which only contains requirements of other packages?
>>> Yes
>> When installing the new meta package "jvcl_all" which contains all
>> designtime packages I get a message
>>
>> "The package jvcl_all does not have any "Register" procedure which
>> typically means it does not provide any IDE addon. Installing it will
>> probably only increase the size of the IDE and may even make it
>> unstable."
>>
>> and I am prompted to either "Install it, I like the fat" or to
>> "Cancel". How can I avoid this? Do I have to provide a dummy
>> registration unit?
> It should not warn in this case. I fixed the bug.
Thanks. It works correctly now.
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
In reply to this post by Free Pascal - Lazarus mailing list
On 11.07.2019 17:46, Michael Van Canneyt via lazarus wrote:
> The IDE now has proper support for Project groups.

Hello,

I started to use Project groups and also added the .lpg file to my
repository. I found out that the XML format is unusual (wrong). The
<Mode*> nodes are not subnodes to <BuildModes>:

<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
   <ProjectGroup FileVersion="1">
     <Targets Count="18">
       <Target0 FileName="xyz.lpi">
         <BuildModes Count="2"/>
         <Mode1 Name="Debug" Compile="True"/>
         <Mode2 Name="Release"/>
       </Target0>

Is this an intention?

I ask because I wanted to update the file format to the new Lazarus XML
format (without the indexes and count attributes):

<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
   <ProjectGroup FileVersion="1">
     <Targets>
       <Target FileName="xyz.lpi">
         <BuildModes>
           <Mode Name="Debug" Compile="True"/>
           <Mode Name="Release"/>
         </BuildModes>
       </Target>

and I have already helper functions for distinguishing between the old
and the new file formats but they can handle only the "correct" old
format (where item nodes are subnodes of the main node):
         <BuildModes Count="2"/>
           <Mode1 Name="Debug" Compile="True"/>
           <Mode2 Name="Release"/>
         </BuildModes>

My question: because Project groups are usable only in trunk, I suggest
to fix the old file format without backwards-compatibility:
         <BuildModes Count="2"/>
           <Mode1 Name="Debug" Compile="True"/>
           <Mode2 Name="Release"/>
         </BuildModes>

That would mean that the Compile flags for build modes get lost and the
user must set them again. Are you fine with it? (Well, I am fine with that.)

Best
Ondrej

--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
On Sun, 11 Aug 2019 11:56:38 +0200
Ondrej Pokorny via lazarus <[hidden email]> wrote:

> On 11.07.2019 17:46, Michael Van Canneyt via lazarus wrote:
> > The IDE now has proper support for Project groups.  
>
> Hello,
>
> I started to use Project groups and also added the .lpg file to my
> repository. I found out that the XML format is unusual (wrong). The
> <Mode*> nodes are not subnodes to <BuildModes>:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <CONFIG>
>    <ProjectGroup FileVersion="1">
>      <Targets Count="18">
>        <Target0 FileName="xyz.lpi">
>          <BuildModes Count="2"/>
>          <Mode1 Name="Debug" Compile="True"/>
>          <Mode2 Name="Release"/>
>        </Target0>
>
> Is this an intention?

No

 

> I ask because I wanted to update the file format to the new Lazarus
> XML format (without the indexes and count attributes):
>
> <?xml version="1.0" encoding="UTF-8"?>
> <CONFIG>
>    <ProjectGroup FileVersion="1">
>      <Targets>
>        <Target FileName="xyz.lpi">
>          <BuildModes>
>            <Mode Name="Debug" Compile="True"/>
>            <Mode Name="Release"/>
>          </BuildModes>
>        </Target>
>
> and I have already helper functions for distinguishing between the
> old and the new file formats but they can handle only the "correct"
> old format (where item nodes are subnodes of the main node):
>          <BuildModes Count="2"/>
>            <Mode1 Name="Debug" Compile="True"/>
>            <Mode2 Name="Release"/>
>          </BuildModes>
>
> My question: because Project groups are usable only in trunk,

Project groups are in 2.0.


> I suggest to fix the old file format without backwards-compatibility:
>          <BuildModes Count="2"/>
>            <Mode1 Name="Debug" Compile="True"/>
>            <Mode2 Name="Release"/>
>          </BuildModes>
>
> That would mean that the Compile flags for build modes get lost and
> the user must set them again. Are you fine with it? (Well, I am fine
> with that.)

I guess with a few lines of code you can read the old format and set
the "Compile" flag.

Mattias


--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
In reply to this post by Free Pascal - Lazarus mailing list
On 11/08/2019 10:56 am, Ondrej Pokorny via lazarus wrote:
> I found out that the XML format is unusual (wrong).

Fully agree. That is so INI-ish, and really not needed in XML or JSON
formats.

> I ask because I wanted to update the file format to the new Lazarus XML
> format (without the indexes and count attributes):
>
> <?xml version="1.0" encoding="UTF-8"?>
> <CONFIG>
>    <ProjectGroup FileVersion="1">
>      <Targets>
>        <Target FileName="xyz.lpi">
>          <BuildModes>
>            <Mode Name="Debug" Compile="True"/>
>            <Mode Name="Release"/>
>          </BuildModes>
>        </Target>


Looks much better! I vote for this.

I would also recommend the idea of considering JSON format, which is
less verbose, has real data types (boolean, int, float, etc - not
everything is a string value), thus making it more expressive.



Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
In reply to this post by Free Pascal - Lazarus mailing list
On 11.08.2019 12:23, Mattias Gaertner via lazarus wrote:

>> I suggest to fix the old file format without backwards-compatibility:
>>           <BuildModes Count="2"/>
>>             <Mode1 Name="Debug" Compile="True"/>
>>             <Mode2 Name="Release"/>
>>           </BuildModes>
>>
>> That would mean that the Compile flags for build modes get lost and
>> the user must set them again. Are you fine with it? (Well, I am fine
>> with that.)
> I guess with a few lines of code you can read the old format and set
> the "Compile" flag.

The issue is that the new format is done with forwards-compatibility so
that people can decide if they want to open the new file in an older
Lazarus version. (The projects have the "Maximize compatibility of
project files" option for this.)

Is this important to you?

Ondrej

--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
On Sun, 11 Aug 2019 12:54:48 +0200
Ondrej Pokorny via lazarus <[hidden email]> wrote:

> On 11.08.2019 12:23, Mattias Gaertner via lazarus wrote:
> >> I suggest to fix the old file format without
> >> backwards-compatibility: <BuildModes Count="2"/>
> >>             <Mode1 Name="Debug" Compile="True"/>
> >>             <Mode2 Name="Release"/>
> >>           </BuildModes>
> >>
> >> That would mean that the Compile flags for build modes get lost and
> >> the user must set them again. Are you fine with it? (Well, I am
> >> fine with that.)  
> > I guess with a few lines of code you can read the old format and set
> > the "Compile" flag.  
>
> The issue is that the new format is done with forwards-compatibility
> so that people can decide if they want to open the new file in an
> older Lazarus version. (The projects have the "Maximize compatibility
> of project files" option for this.)

That an old Lazarus cannot read completely the new format is an
incompatibility I can live with, if it is documented.

Mattias
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] It is a beautiful day...

Free Pascal - Lazarus mailing list
On 11.08.2019 13:12, Mattias Gaertner via lazarus wrote:
> On Sun, 11 Aug 2019 12:54:48 +0200
> Ondrej Pokorny via lazarus <[hidden email]> wrote:
>
>> The issue is that the new format is done with forwards-compatibility
>> so that people can decide if they want to open the new file in an
>> older Lazarus version. (The projects have the "Maximize compatibility
>> of project files" option for this.)
> That an old Lazarus cannot read completely the new format is an
> incompatibility I can live with, if it is documented.

Thanks, I'll come up with a patch.

Best
Ondrej

--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus