[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Happy New Year
[Thread Prev] | [Thread Next]
- Subject: Happy New Year
- From: Benoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx>
- Date: Sun, 4 Jan 2026 19:21:21 +0100
- To: Gambas Mailing List <user@xxxxxxxxxxxxxxxxxxxxxx>
Happy New Year 2026 to everyone! During the holidays, I have added support to "named enumerations" to Gambas. What's that new feature?First, you have a new syntax for declaring enumerations by specifying an "enumeration name".
--------------------Public Enum <Name> Is <Constant 1> [ = <Value1> ], <Constant 2> [ = <Value2> ] ...
-------------------- Two remarks:- You can now reuse an already declared integer constant in the enumeration. It allows you to both have a specific documentation for that constant, and have an enumeration using it.
- You can use the same already declared constant in several enumerations if you want.
Then, you have a new syntax for declarating datatypes taking their value inside that enumeration, using its name.
-------------------- Dim <Name> As Enum <EnumerationName> Public <Variable> As Enum <EnumerationName>Public Sub Method(Arg As Enum <EnumerationName>) As Enum <OtherEnumerationName>
-------------------- It's very important to understand that it's a -compiler only- feature.The interpreter does not see the enumeration. Only integers exist for him. You can assign any integer value to a variable declared as 'Enum <Name>', even the values that are not a member of the '<Name>' enumeration. Nothing is checked at runtime.
Moreover, the compiler does not check at all that you actually use an existing enumeration name.
The compiler just use the named enumeration declarations to generate metadata (in the '*.list' and '*.info' files), and this metadata is used by the IDE for implementing automatic completion.
So it's not a new datatype, but just some new syntax that allows the IDE to implement better automatic completion.
At the moment, I added public named enumeration in almost every component, but not the deprecated ones. If you find some missing enumerations just tell me or add it yourself! And if you have any question, just ask.
Enjoy it. -- Benoît Minisini.
| Re: Happy New Year | Fabien Bodard <gambas.fr@xxxxxxxxx> |