mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-07 07:12:25 +01:00
Author:halw
Date:2009-07-31T21:40:40.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@267 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 9.0 KiB |
@@ -0,0 +1,3 @@
|
||||
title=editor feature auto-completion window
|
||||
author=halw
|
||||
path=content/editor-feature-auto-completion-window
|
||||
@@ -3,28 +3,30 @@
|
||||
[[Property:uuid|773ef802-5f9f-107a-4c5d-8dcf17654d23]]
|
||||
==Annotations==
|
||||
|
||||
Annotations may be applicable to:
|
||||
Annotations for outgoing EIS links may be applicable to:
|
||||
* An individual class or feature. In this case the annotation appears in the class text, as part of an Eiffel <code>note</code> clause (the obsolete keyword <code>indexing</code> may still be supported, depending upon which syntax level is chosen in project preferences).
|
||||
* A target, library or cluster. In this case the annotation appears in the associated ECF file; EiffelStudio provides support for entering it through a Information (EIS) Tool.
|
||||
{{seealso|<br/>
|
||||
[[Information Tool|Information Tool]] }}
|
||||
|
||||
|
||||
The basic way to specify a dependency is to include such an annotation. The required part of an annotation is:
|
||||
* The "EIS" marker
|
||||
To specify a link between Eiffel and external information, you include such an annotation.
|
||||
|
||||
However the following parts are suggested:
|
||||
* The "protocol", indicating the type of external information, and making it possible for EIS to determine the associated external tool. If the "protocol" part is omitted, the source defaults to be web page.
|
||||
* The source, identification of where to find information itself, for example a URL, or a file name.
|
||||
An annotation consists of:
|
||||
# The '''EIS''' marker.
|
||||
# The '''protocol''', which indicates the type of external information, and making it possible for EIS to determine the associated external tool. If the '''protocol''' is omitted, its value defaults to "web page".
|
||||
# The '''source'''. This is the location of the external information, for example a URL, or a file name.
|
||||
|
||||
==Syntax for Annotations==
|
||||
|
||||
The following example illustrates the basic form of an EIS note entry:
|
||||
Annotations can occur in Eiffel source code and in project configuration files (.ecf). The format of the '''EIS marker''' varies depending upon the context in which it is used. The rest of the annotation format is the same in both contexts.
|
||||
|
||||
The following example illustrates the form of an EIS annotation written in Eiffel source code. The annotation appears in the <code>note</code> part of a class or feature definition:
|
||||
<code lang="text">
|
||||
EIS: "name=Project Requirement", "src=($PROJ)/docs/requirements.pdf", "protocol=PDF", "nameddest=4.1", "tag=requirement"
|
||||
</code>
|
||||
|
||||
The label (or Note_name as it is called in the ECMA/ISO Eiffel Standard syntax) is '''EIS:'''. The '''EIS:''' Note_name tells the Eiffel Information System that this Note_entry is of interest to EIS, as distinct from any other information that might be expressed through a Note_entry. In this example, the file name (src) includes '''$PROJ''', referring to a variable, defining the project location. The protocol is PDF. The '''nameddest''' property (name destination) is a specific property of PDF documents. The tag '''requirement''' indicating that this entry links the enclosing Eiffel class or feature with some parts of the requirement documents.
|
||||
The '''EIS marker''' is the label '''EIS:''' (this label is called the ''Note_name'' in the ISO/ECMA Eiffel Standard syntax). The '''EIS marker''' tells the Eiffel Information System that this particular ''Note_entry'' is of interest to EIS. In this example, the file name (src) includes '''$PROJ''', referring to a variable, defining the project location. The '''protocol''' is '''PDF'''. The '''nameddest''' property (name destination) is a specific property of PDF documents. The tag '''requirement''' indicating that this entry links the enclosing Eiffel class or feature with some parts of the requirement documents.
|
||||
|
||||
|
||||
Similarly, the following example demonstrates how annotations look like in ECF files:
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
[[Property:title|Eiffel Information System]]
|
||||
[[Property:weight|-2]]
|
||||
[[Property:uuid|7e0394e1-cb31-fae3-79b6-9d1847ef8db7]]
|
||||
The Eiffel Information System (EIS) provides a unified mechanism for linking development objects - classes, features and so on - of Eiffel systems with external information. This term refers to information other than Eiffel program texts. Usually the tools maintaining external information are separate tools, such as a browser; we call them external tools. Examples of external information and possible corresponding external tools are:
|
||||
The Eiffel Information System (EIS) provides a unified mechanism for linking development objects - e.g., classes and features - of Eiffel systems with '''external''' information. External means information other than Eiffel program texts. Usually the tools associated with external information are separate from Eiffel, such as web browsers. Examples of external information and possible corresponding external tools are:
|
||||
* Web page - the default browser
|
||||
* PDF document - Acrobat
|
||||
|
||||
EIS is also intended to be the standard mechanism for obtaining help on Eiffel and EiffelStudio, replacing previous solutions. In that case external tools may actually be Eiffel tools.
|
||||
|
||||
The basic mechanisms that EIS makes available to users include two categories: outgoing (from Eiffel to external tools), incoming (the reverse).
|
||||
EIS makes two mechanisms available to users: outgoing (from Eiffel to external tools), incoming (the reverse).
|
||||
|
||||
Examples of outgoing mechanisms include:
|
||||
* Annotating Eiffel targets, classes and features to include references to external information. Such annotations can include tags.
|
||||
* By selecting an annotation in EiffelStudio, automatically open the corresponding external tool to display or edit that information.
|
||||
* Provide a list of all external information (in a class, cluster or entire system) corresponding to a specified tag.
|
||||
* Automatically opening the corresponding external tool to display or edit information associated with an annotation.
|
||||
* Listing all external information (in a class, cluster or entire system) corresponding to a specified tag.
|
||||
|
||||
Examples of incoming mechanisms include:
|
||||
* For supported tools, select external information linked to an Eiffel developer object and have EiffelStudio directly open on that object. In 6.2, eiffel: schema is supported on Windows.
|
||||
* For supported tools, selecting external information linked to an Eiffel developer object and having EiffelStudio open automatically and targeted to that object.
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ and then triggers the auto-complete, the editor will propose a list of possible
|
||||
To be more precise, a window will pop up and display the list of features that can be called on <code>an_identifier</code> and that match <code>an_incomplete_feature_name</code>. The user can accept the suggested name, choose another name (in the list or not), or simply cancel the auto-complete.
|
||||
|
||||
|
||||
[[Image:editor-auto-completion-window]]
|
||||
[[Image:editor feature auto-completion window]]
|
||||
|
||||
|
||||
To trigger the auto complete, press the key combination "Ctrl+Space" or click on '''Complete word''' in the '''Advanced''' sub-menu of the [[Edit menu commands|menu]] . If automatic completion is possible, there are two cases : if only one name matches, this name will be inserted in the editor. If there are no matching names or several ones a window will appear. This window will contain a text field and a list. The text field will be filled with the beginning of the feature name that was entered. The first item in the list, if any, will be selected. <br/>
|
||||
|
||||
Reference in New Issue
Block a user