mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2026-04-05 01:29:28 +02:00
Author:admin
Date:2008-09-19T07:55:09.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@27 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Error wizard]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|0c9686a0-2b9b-291f-4f01-930d9017810b]]
|
||||
More often than wanted, Eiffel compilations are not successful. The good point is that when an error is detected by the compiler, it will not be a problem at run-time. The bad point is that you have to fix compilation errors before being able to launch and debug your system.
|
||||
|
||||
When an error occurs during an Eiffel compilation in EiffelStudio, the '''Output''' tab of the context tool displays a description of the error and its location, which looks more or less like this:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|External commands editor dialog]]
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|9f8de904-3d17-7ce2-1df8-f4824fab5ae3]]
|
||||
From EiffelStudio, you can define up to 10 external commands. Those commands will have their output redirected in the output pane of the context tool. You can execute them through the Tools menu. A typical usage is to use those external commands to integrate with your source control management solution (e.g. CVS, Visual SourceSafe,...)
|
||||
|
||||
To define your own command, select "External commands..." in the Tools menu. Then the following dialog will appear:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Dialogs]]
|
||||
[[Property:weight|1]]
|
||||
[[Property:uuid|5d543cd3-8e54-e090-44d4-ee3b51009fe6]]
|
||||
* [[New feature dialog|New feature dialog]]
|
||||
* [[Error descriptor|Error descriptor]]
|
||||
* [[External commands editor dialog|External commands editor]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|New feature dialog]]
|
||||
[[Property:weight|0]]
|
||||
[[Property:uuid|deb4901a-7b5a-f669-802e-de1efefcc1a0]]
|
||||
* [[New feature dialog: Introduction|Introduction]]
|
||||
* [[New feature dialog overview|Overview]]
|
||||
* [[New procedure layout|Procedure layout]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|New attribute layout]]
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|b13c9004-c8a0-6628-5c70-42c3e2617c10]]
|
||||
<div> [[Image:feature-wizard-attribute]] </div>
|
||||
When clicking '''Attribute''', the window changes to the attribute layout. It has the following components:
|
||||
* [[Feature clauses|Feature clause selection]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Argument list]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|f2d63c29-6be2-b3d9-a735-b18e08c5a678]]
|
||||
For functions and procedures, you can build a formal argument list. You can do this by clicking on the '''New argument''' button as many times as you need arguments.
|
||||
|
||||
{{note| '''Note''': Even though this dialog always shows parentheses, they are not generated if the list is empty (Eiffel's command-query separation (CQS) principle). }}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Feature body]]
|
||||
[[Property:weight|6]]
|
||||
[[Property:uuid|8f9f0b70-e884-73f1-e270-f1b51ef672c6]]
|
||||
What goes into the feature body field is dependent on what kind of feature you wish to generate.
|
||||
* '''do''': this is the normal procedure type. Enter in the field below '''do''' a body for your feature.
|
||||
<code>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Feature clauses]]
|
||||
[[Property:weight|0]]
|
||||
[[Property:uuid|019ea318-e0e0-dae9-a818-e12232aa8431]]
|
||||
The feature you create will be inserted in the feature clause you specified. If the feature clause was not already in your class, or not in the right place, EiffelStudio adds the feature clause to the class text based on the feature clause order specified in the [[Preferences Reference|preferences]] . By default, this is the order used by the Eiffel Software libraries, such as EiffelBase.
|
||||
==Export status==
|
||||
The export status is the class the feature is accessible for. Usually, this is <eiffel>ANY</eiffel> for public features, or <eiffel>NONE</eiffel> for implementation features, but you can specify any class here.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Header comment]]
|
||||
[[Property:weight|3]]
|
||||
[[Property:uuid|45ecda88-003d-fe59-5d4c-3a84d488b6a2]]
|
||||
In the header comment field you can type a description of the feature. For style guidelines in writing a header comment, see: [http://www.eiffel.com/doc/oosc/ Object-Oriented Software Construction, Second Edition] , paragraph 26.4. The description should be informative, clear and terse.
|
||||
|
||||
For example, suppose you have an attribute <eiffel>count</eiffel>. You can enter the following header comment:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|New feature dialog: feature properties modification]]
|
||||
[[Property:weight|5]]
|
||||
[[Property:uuid|60825ef4-7bc2-d472-8b09-25769689bb34]]
|
||||
* [[Feature clauses|Feature clauses]]
|
||||
* [[Name field|Name field]]
|
||||
* [[Argument list|Argument list]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Invariant field]]
|
||||
[[Property:weight|9]]
|
||||
[[Property:uuid|9f7ec967-0a45-4ad6-4393-521097467192]]
|
||||
When creating an attribute, you can optionally enter or select an invariant for that feature. That invariant will be added to the end of the existing invariant clause. If the invariant clause did not exist before, it is now created.
|
||||
<div> [[Image:feature-wizard-invariant]] </div>
|
||||
If the attribute is of a reference type, you may select the invariant that the attribute may never be void. If it is of a basic expanded type, some other standard options may be chosen. For example, for <eiffel>INTEGER</eiffel> you may select that it should always be positive.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Local variable]]
|
||||
[[Property:weight|5]]
|
||||
[[Property:uuid|423aa67d-99f4-0f81-3709-161a6be43af9]]
|
||||
Enter a local variable in the <code> local </code> field. A local variable clause will be added to the feature:
|
||||
<code>
|
||||
...
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Name field]]
|
||||
[[Property:weight|1]]
|
||||
[[Property:uuid|850bd867-5cbf-34d0-f94c-97a75bfa244b]]
|
||||
The feature name field is a text box that lets you enter a name for the feature. For help on how to choose the right name for a feature, see: [http://www.eiffel.com/doc/oosc/ Object-Oriented Software Construction, Second Edition] , paragraph 26.2.
|
||||
|
||||
{{warning| '''Warning''': EiffelStudio performs no validation on the name you choose. For example if you type a space in it, it will generate the code, and detect a syntax error only when compiling. }}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Postcondition]]
|
||||
[[Property:weight|7]]
|
||||
[[Property:uuid|b8196d6c-2a0f-c06e-855f-d9fe23cbe950]]
|
||||
Enter a postcondition in the <code> ensure </code> field. A postcondition clause will be added to the feature:
|
||||
<code>...
|
||||
ensure
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Precondition]]
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|29b32f9e-799d-de91-d62d-79bdb509144b]]
|
||||
Enter a precondition in the <code> require </code> field. A precondition clause will be added to the feature:
|
||||
<code>
|
||||
...
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Set-procedure]]
|
||||
[[Property:weight|10]]
|
||||
[[Property:uuid|46b84038-099b-070c-15d7-2b7884a50e01]]
|
||||
When creating an attribute, it is common that you will also need a set-procedure for it. For example, for attribute <eiffel>property</eiffel> you need a procedure <eiffel>set_property</eiffel> to set it. This feature takes one argument of the same type as <eiffel>property</eiffel> or is anchored to it. The only thing you have to do with the feature wizard is check the button '''Generate set procedure'''.
|
||||
<div> [[Image:feature-wizard-setprocedure]] </div>
|
||||
The feature that is generated in addition to the attribute itself is placed in feature clause <code> Element change </code> and is exported to all classes. If you have selected or entered an invariant, the precondition will protect this invariant. Example of a generated set-procedure:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|Type selection]]
|
||||
[[Property:weight|8]]
|
||||
[[Property:uuid|b2bd8280-a738-dae4-73aa-c1e232245022]]
|
||||
Whenever you need to give a type of something in the dialog, the type selection component is used. The type selection lets you type any class name or you can pick one from the list.
|
||||
<div> [[Image:feature-wizard-typeselection]] </div>
|
||||
When you select a class that is in the system and has formal generic parameters, the type selection component lets you specify an actual generic parameter in another type selection.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|New feature dialog overview]]
|
||||
[[Property:weight|1]]
|
||||
[[Property:uuid|c0708842-e5e0-5d5c-5746-0507d1709a3e]]
|
||||
There are two parts in the window. The upper part allows you to choose what type of feature you want to create, a procedure, a function or an attribute.
|
||||
[[Image:feature-wizard]]
|
||||
The rest of the window is used to set the characteristics of the new feature. Information you will be asked depends on the type you chose. For more information, click on one of the links below:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|New function layout]]
|
||||
[[Property:weight|3]]
|
||||
[[Property:uuid|ae292b6e-7274-47a5-59f1-0f625493474f]]
|
||||
<div> [[Image:feature-wizard-function]] </div>
|
||||
When clicking '''Function''', the dialog changes to the function layout. It has the following components:
|
||||
* [[Feature clauses|Feature clause selection]]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[[Property:title|New procedure layout]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|586fd664-1be4-f588-5350-c7c703145c11]]
|
||||
<div> [[Image:feature-wizard-procedure]] </div>
|
||||
When clicking '''Procedure''', the window changes to the procedure layout. It has the following components:
|
||||
* [[Feature clauses|Feature clause selection]]
|
||||
|
||||
Reference in New Issue
Block a user