Update wikipage Code Templates. (Signed-off-by:javier).

git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@1676 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
eiffel-org
2016-11-22 13:24:30 +00:00
parent 73fd652528
commit cd81ee4333

View File

@@ -51,111 +51,6 @@ When you insert a template into your code, it will often have some highlighted f
[[Image:targetless_template_1_4|680px]] [[Image:targetless_template_1_4|680px]]
Figure 4. Targetless Auto-completion with code templates option list. Figure 4. Targetless Auto-completion with code templates option list.
====Context templates====
The next example shows how to define a template that will be applicable to types that conforms <code>ARRAY [COMPARABLE]</code>.
EiffelStudio editor provides automatic help to use code templates, in the case of context templates, when you type a dot ('.') character after a feature name, as part of feature call auto-completion, a new option will be available by pressing <code>crtl+space</code>
the list of available templates will be display.
[[Image:target_template_1_0]]
Figure 1. Auto-completion with code template option
At this point a user can select an available template, to insert into the current feature, back to the list of completion possibles by pressing <code>crtl+space</code>, or just ignore and continue editing the code.
[[Image:target_template_1_1]]
Figure 2. Auto-completion with code templates option list
<code>
note
description: "[
Code templates for Arrays of COMPARABLES.
]"
template_version: "1.0"
class ARRAY_TEMPLATE [T -> COMPARABLE]
inherit
TEMPLATE [ARRAY [T]]
feature -- Templates
maximum: T
-- Maximum of `target' array.
note
tags: "Algorithm, Maximum, ARRAY"
do
across target as element loop
Result := Result.max (element.item)
end
end
slice_maximum (low, high: INTEGER): T
-- Get the maximum of an array,
-- where the interval is defined by default
-- by array.lower |..| array.upper.
note
tags: "Algorithm, Maximum, ARRAY"
default: "target.lower, target.upper"
do
across low |..| high as i loop
Result := Result.max (target [i.item])
end
end
end
</code>
====Targetless Templates====
The next example shows how to define a template that will be applicable without any specific target.
To show the list of available targetless templates by pressing <code>crtl+space</code> you will see a new option in the list
of completion possibilities.
[[Image:target_template_1_3]]
Figure 3. Targetless Auto-completion with code template option
By pressing again <code>crtl+space</code>, the list of targetless templates will be available.
[[Image:target_template_1_4|780px]]
Figure 4. Targetless Auto-completion with code templates option list.
<code>
class TEMPLATE_DIRECTORY_GLOBAL
inherit
TEMPLATE
feature -- Templates
entries
-- Display entries of current directory.
note
title: "Entries for a directory"
tags: "Algorithm, entries , DIRECTORY"
local
l_path: PATH
l_dir: DIRECTORY
i,j: INTEGER
do
create l_path.make_current
create l_dir.make_with_path (l_path)
across
l_dir.entries as ic
loop
print (ic.item.name)
io.put_new_line
end
end
end
</code>
<span id="gui_template"></span> <span id="gui_template"></span>
==Associating GUI with Template definition== ==Associating GUI with Template definition==
The following image shows the relationship between the template definition and how they will look in the GUI. The following image shows the relationship between the template definition and how they will look in the GUI.