Author:halw

Date:2009-07-20T22:55:00.000000Z


git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@254 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
halw
2009-07-20 22:55:00 +00:00
parent 4baa88292c
commit 42bec7ff93
10 changed files with 68 additions and 22 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@@ -0,0 +1,3 @@
title=search-report-01
author=halw
path=content/search-report-01

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -0,0 +1,3 @@
title=search-tool-scope-tab
author=halw
path=content/search-tool-scope-tab

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -0,0 +1,3 @@
title=search-tool
author=halw
path=content/search-tool

View File

@@ -1,13 +1,18 @@
[[Property:title|Search tool]]
[[Property:weight|6]]
[[Property:uuid|4d0cc8b3-2ffd-42d4-7855-672fa0c11cf8]]
==Description and usage==
EiffelStudio includes a search tool which allows you to look for a word or a pattern in the editor, the class tool, the feature tool or the output tool, and to replace it by another word if you want. It is located in the left part of the development window.
EiffelStudio includes a search tool which allows you to look for a word or a pattern in the editor, the class tool, the feature tool or the output tool, and to replace it by another word if you want. It is located in the left part of the development window, like the cluster tool or the favorites for instance.
To make the search tool appear, if it is not visible, click on the search icon [[Image:tool-search-icon]] or follow the menu path:
<code lang="text">
View -> Tools -> Search
</code>
or
<code lang="text">
Edit -> Find
</code>
To make it appear, if it is not displayed, click on the search icon [[Image:tool-search-icon]] or choose the '''Search''' entry in the '''Edit''' menu.
===The Search panel===
==The Search panel==
[[Image:search-tool]]
@@ -17,24 +22,55 @@ The search panel has two tabs. The '''search tab''' allows you to define how and
===The Search tab===
On the '''search tab''' of the search panel, you will find two combo boxes, labeled '''Search for:''' and '''Replace with:'''. These are used to enter the string or pattern for which you want to search and the word or phrase, if any, which you want the editor to use to replace matches resulting from the search. <br/>
On the '''search tab''' of the search panel (shown in Fig. 1), you will find two combo boxes, labeled '''Search for:''' and '''Replace with:'''. These are used to enter the string or pattern for which you want to search and the word or phrase, if any, which you want the editor to use to replace matches resulting from the search. <br/>
There are also buttons that control whether you want to '''search''', to '''replace''' the most recently found match, or '''replace all''' matches.
===The options group===
====The options group====
There are five search options, each of them represented by a check box:
There are four search options, each of them represented by a check box:
* '''Match case:''' If this option is selected, the search will be case-sensitive, which means that if you search for "example", the tool will highlight "example" but not "EXAMPLE" or "Example", as there are no capital letters in the searched pattern.
* '''Whole word:''' If this option is selected, the tool will look for isolated words. A word is isolated if it is surrounded by spaces or if it is at the beginning or the end of a line.
* '''Use regular expressions:''' You can enter a regular expression as a pattern for matching.
* '''Use regular expressions:''' You can enter a regular expression as a pattern for matching. In Fig. 1, the regular expression in the '''Search for:''' box describes very simple quoted strings. Regular expressions give you the ability to create powerful pattern-oriented searches. If you are not familiar with regular expressions, you might check out the tutorial at [http://www.regular-expressions.info/ www.regular-expressions.info].
{{note|It might be good advice to temper your expectations of using regular expressions with these words, [http://www.devtopics.com/101-more-great-computer-quotes/ attributed] to Jamie Zawinski: "Some people, when confronted with a problem, think `I know, I'll use regular expressions.' Now they have two problems."}}
* '''Search backwards:''' If this option is selected, the tool will highlight the previous occurrence of the searched pattern instead of the next occurrence when you click the '''Search button'''.
{{note|If the search tool hits one end of the text, it will automatically continue from the other end. }}
===The Scope tab===
[[Image:search-tool-scope-tab]]
Fig. 2 Scope tab
In the scope tab, you can choose how wide a search you would like to make.
* '''Current editor''' Your search will be confined to the class which is the current target of the Editor pane.
* '''Whole project''' The entire project universe will be searched.
* '''Custom''' You are given the opportunity to choose which classes and clusters you would like to be included in the search scope.
When you make certain choices, one or both of the check boxes become enabled.
If you choose '''Whole project''', the '''Only compiled classes''' check box becomes enabled. If you check the box, then the search is confined to classes which are actually included in your system (i.e., reachable via relationships from your root class ... the classes shown with blue ovals). If you leave '''Only compiled classes''' unchecked, all classes in your project's universe are included in the search (blue and grey ovals). With '''Whole project''', the '''Recursive''' check box remains disabled.
If you choose '''Custom''', both the '''Only compiled classes''' check box and the '''Recursive''' check box become enabled. The '''Recursive''' check box allows the search to include recursively subclusters of any cluster included in the search.
==The Search Report panel==
[[Image:search-report-01]]
Fig. 3 Search Report panel
The search report panel will be visible whenever your search returns matches on multiple classes. The '''collapsed''' view of the search results shows the class name of classes in which matches were found, and the number of matches. When you '''expand''' and entry, you see the line number at which the match occurs, and the exact string that caused the match.
The items in the search report panel can be [[Pick-and-drop mechanism|picked and dropped]] into the editor or other appropriate targets in EiffelStudio.
{{seealso|The [[Search functionality]] part of the EiffelStudio Editor section to learn keyboard shortcuts and menu entries to launch searches without using the search tool directly. }}

View File

@@ -4,8 +4,8 @@
==Annotations==
Annotations may be applicable to:
* An individual class or feature. In this case the annotation figures in the class text, as part of an Eiffel <code>note</code> clause (<code>indexing</code> is still supported, it depends on which syntax level users choose).
* A target, library or cluster. In this case the annotation figures in the associated ECF file; EiffelStudio provides support for entering it through a Information (EIS) Tool.
* 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]] }}
@@ -14,7 +14,7 @@ The basic way to specify a dependency is to include such an annotation. The requ
* The "EIS" marker
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. Without the "protocol" part, the source defaults to be web page.
* 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.
==Syntax for Annotations==
@@ -24,7 +24,7 @@ The following example illustrates the basic form of an EIS note entry:
EIS: "name=Project Requirement", "src=($PROJ)/docs/requirements.pdf", "protocol=PDF", "nameddest=4.1", "tag=requirement"
</code>
The label (Node_entry as called in the ECMA/ISO Eiffel Standard syntax) is '''EIS'''. '''EIS''' Note_value 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. 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 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.
Similarly, the following example demonstrates how annotations look like in ECF files:
@@ -33,7 +33,7 @@ Similarly, the following example demonstrates how annotations look like in ECF f
<note ise_support="EIS" protocol="pdf" name="Project Requirement" src="($PROJ)/docs/requirements.pdf" nameddest="4.1"/></code>
There is only one major difference here - the attribute '''ise_support'''. '''ise_support''' takes place of label of Node_entry. '''EIS''' plays the same role as the one appears in note entry. '''ise_support''' tells the parser the note element is of interest of tools from ISE rather than other third-party ones. The note element in ECF is supported in [schema 1.4].
There is only one major difference here - the attribute '''ise_support'''. '''ise_support="EIS"''' takes place of Note_name '''EIS:'''. '''EIS''' plays the same role as it does in a <code>note</code> entry. '''ise_support''' tells the parser this note element is of interest to tools from ISE rather than other third-party ones. The note element in ECF is supported in [schema 1.4].
{{seealso|<br/>

View File

@@ -1,18 +1,19 @@
[[Property:title|Annotation Management]]
[[Property:weight|1]]
[[Property:uuid|696457ef-ac1f-40c1-a0da-54900d9cccf8]]
Information Tool provides information management functions: adding, modifying and removing.
The Information Tool provides information management functions: adding, modifying and removing.
{{note|Annotation management is only available in lists coresponding to nodes rather than tag nodes - all tags and "Items without tag". }}
==Adding==
For each kind of nodes in the information tree, related annotations are listed in the right annotaton list. At the end of such lists, double clicking the blank line with '''"..."''' in the '''Name''' column creates a new unnamed annotation. One could modify the new entry into what he wants. See the following section '''Modifying'''.
For each kind of nodes in the information tree, related annotations are listed in the right annotaton list. At the end of such lists, double clicking the blank line with '''"..."''' in the '''Name''' column creates a new unnamed annotation. You can then modify the new entry as you wish.
==Modifying==
To modify an annotation, one can use Information Tool or do it by code.
* By Information Tool, a line in the annotation list should be selected, then click into columns and activate editing/choosing mode. Once the editing area/drop down list is deactivated, the modification is done and synchronized into code automatically.
* By code, one simply modifies code in the editor, or .ecf files in external editor (not recommented).
To modify an annotation, one can use the Information Tool or modify it by code.
* Using Information Tool, select a line in the annotation list, then click into columns and activate editing/choosing mode. Once the editing area drop down list is deactivated, the modification is done and synchronized into code automatically.
* By code, one simply modifies code in the editor, or .ecf files in external editor (not recommended).
{{seealso|<br/>
[[EIS: Outgoing|Syntax for Annotations]] }}

View File

@@ -12,9 +12,9 @@ EIS supports following types of variables which can be used in '''Source''' of a
** group_name
** target_name
{{note|This kind of variables can only be used in components that are enclosed in those the variable name refers to. For example, '''feature_name''' has no effect if used in a target component.}}
{{note|This kind of variable can only be used in a component that is enclosed in a component to which the variable name refers. For example, '''feature_name''' has no effect if used in a target component.}}
* Individual system or library preferences. This kind of variables are defined in .ecf files, can be accessed via Project Setting dialog by following a path such as:
* Individual system or library preferences. This kind of variable is defined in .ecf files, can be accessed via Project Setting dialog by following a path such as:
<code lang="text">
System -> Target -> Advanced -> Variables
</code>