In the forthcoming EiffelStudio 24.05 we have added a couple of mechanisms to facilitate common operations. We are interested to know (for future releases) of operations that require keyboard entry and that you perform frequently in your Eiffel work, for which EiffelStudio support would be useful.
The two examples implemented so far are the following.
#1: Producing a setter. If there is an attribute (or argumentless function)
a: T
one may need a procedure
set_a (x: T)
-- Make `x’ the new value of `a’.
do
a := x
ensure
a_set: a = x
end
There is now a menu entry to produce this procedure automatically (with some parameterization).
#2: Producing a basic creation procedure. If a class has attributes a, b, c, … of types T1, T2, T3…, the idea is similarly to let EiffelStudio generate a creation procedure
make (x: T1; y: T2; z: T3…)
-- Initialize with values `x’ for `a’, `y’for `b’, `z’ for `c’…
do
a := x
b := y
c := z
…
ensure
a_set: a = x
b_set: b = y
c_set: b = z
end
again with parameterization, e.g. you can choose names for the procedure and its formal arguments, and include only some of the attributes rather than all of them.
We have a short internal demo of the mechanisms at
It is an informal presentation of a development in progress and will be removed once the mechanism is finalized; details will change. But it gives the idea.
If you think that idea is good and have noticed other repetitive tasks in your own work, for which you would welcome environment support, please share your suggestions.
Note that at this point while we are not necessarily excluding sophisticated program composition tools (e.g. AI-based), we are more focusing on the low-hanging fruit – simple tools that simplify everyday tasks and in particular reduce the amount of typing needed. (Clarification to preëmpt the inevitable joke: we are NOT at the present stage considering removing typing, in the sense of assigning types to entities, queries and expressions, from the Eiffel programming language. The only “typing” we are proposing to remove is the use of one’s hands to type program texts using a keyboard.)
Comments welcome.
-- BM
In the forthcoming EiffelStudio 24.05 we have added a couple of mechanisms to facilitate common operations. We are interested to know (for future releases) of operations that require keyboard entry and that you perform frequently in your Eiffel work, for which EiffelStudio support would be useful.
The two examples implemented so far are the following.
#1: Producing a setter. If there is an attribute (or argumentless function)
a: T
one may need a procedure
set_a (x: T)
-- Make `x’ the new value of `a’.
do
a := x
ensure
a_set: a = x
end
There is now a menu entry to produce this procedure automatically (with some parameterization).
#2: Producing a basic creation procedure. If a class has attributes a, b, c, … of types T1, T2, T3…, the idea is similarly to let EiffelStudio generate a creation procedure
make (x: T1; y: T2; z: T3…)
-- Initialize with values `x’ for `a’, `y’for `b’, `z’ for `c’…
do
a := x
b := y
c := z
…
ensure
a_set: a = x
b_set: b = y
c_set: b = z
end
again with parameterization, e.g. you can choose names for the procedure and its formal arguments, and include only some of the attributes rather than all of them.
We have a short internal demo of the mechanisms at
It is an informal presentation of a development in progress and will be removed once the mechanism is finalized; details will change. But it gives the idea.
If you think that idea is good and have noticed other repetitive tasks in your own work, for which you would welcome environment support, please share your suggestions.
Note that at this point while we are not necessarily excluding sophisticated program composition tools (e.g. AI-based), we are more focusing on the low-hanging fruit – simple tools that simplify everyday tasks and in particular reduce the amount of typing needed. (Clarification to preëmpt the inevitable joke: we are NOT at the present stage considering removing typing, in the sense of assigning types to entities, queries and expressions, from the Eiffel programming language. The only “typing” we are proposing to remove is the use of one’s hands to type program texts using a keyboard.)
Comments welcome.
-- BM
--
You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/eiffel-users/0f2801daafa1%2406fe8570%2414fb9050%24%40inf.ethz.ch.
To view this discussion on the web visit https://groups.google.com/d/msgid/eiffel-users/087EA4EB-60ED-4A53-B4B0-44324DA87F7A%40gmail.com.
In the forthcoming EiffelStudio 24.05 we have added a couple of mechanisms to facilitate common operations. We are interested to know (for future releases) of operations that require keyboard entry and that you perform frequently in your Eiffel work, for which EiffelStudio support would be useful.
For years I have been using a small utility integrated into
EiffelStudio via the external tools facility. It allows you type
directly into the source a shorthand for common text entry tasks.
The tool then expands the entries. There is also a separate tool
to display a list of feature category abbreviations you can use.
It also does some sorting operations on feature names.
See class FEATURE_EDITOR_APP
for documentation details.
I have had the occasional mishap but now it seems to be very
reliable.
The only thing I am not happy with is the @set expansion. I might
change it to allow explicit types for arguments instead of like
x idiom if the type is known. I can think of lots of other
expansions that could be performed.
It is part of a suite of development tools packaged into one executable.
-- Finnian
--
You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/eiffel-users/26274655-f0fd-1726-4317-59d29d7f074f%40eiffel-loop.com.
Thank you for all the interesting suggestions received. We are collating them to see what can be included in the next (November) release. While suggestions are welcome at any time, we will close a first list by next Monday (June 3). So if you have any further suggestions ready please share them now.
Thanks,
-- BM
From: Bertrand Meyer <Bertran...@inf.ethz.ch>
Sent: Sunday, 26 May, 2024 21:15
To: 'eiffel...@googlegroups.com' <eiffel...@googlegroups.com>
Cc: 'me...@inf.ethz.ch' <me...@inf.ethz.ch>
Subject: EiffelStudio support for common entry tasks
In the forthcoming EiffelStudio 24.05 we have added a couple of mechanisms to facilitate common operations. We are interested to know (for future releases) of operations that require keyboard entry and that you perform frequently in your Eiffel work, for which EiffelStudio support would be useful.
The two examples implemented so far are the following.
On Jun 2, 2024, at 8:33 AM, Brother Bill <brother...@gmail.com> wrote:
Provide "Expand/Explode" similar to Visual Studio, where a routine or entire feature can collapse and expand.
--
You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/eiffel-users/3692fcb8-818b-4d8f-8712-4c76cb381243n%40googlegroups.com.
On Jun 3, 2024, at 5:06 PM, Brother Bill <brother...@gmail.com> wrote:
Another nicety would be to recognize when an additional right parentheses would be improper, and just moves the cursor one place to the right. C# does this.
To view this discussion on the web visit https://groups.google.com/d/msgid/eiffel-users/17be4dcf-3179-4897-82ec-281a36460d0en%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/eiffel-users/fe2571d0-493f-4d07-8e8b-6fb18e024fbbn%40googlegroups.com.