Commit d610f2f7 authored by Kristof Szabados's avatar Kristof Szabados
Browse files

updated to use the machinery used in the core.


Signed-off-by: Kristof Szabados's avatarKristof Szabados <Kristof.Szabados@ericsson.com>
parent 60c365fd
== Getting started
= Getting started
:toc:
:figure-number: 0
This section explains how to setup Eclipse to access every feature provided by TITAN Designer.
=== The TITAN Editing Perspective
== The TITAN Editing Perspective
TITAN Designer provides its own perspective to Eclipse. This is a layout of visual elements that provides a good environment for working with TITAN. This layout is a starting point, since users can create their own layout in Eclipse, to set the best working environment for themselves.
......@@ -40,7 +40,7 @@ NOTE: The contents of this view have no effect on the work of the user.
image::images/2_F3.png[title="TITAN Editing Perspective"]
=== Enabling TITAN Actions on the Toolbar
== Enabling TITAN Actions on the Toolbar
TITAN Actions or Change Set Operations are commands (apart from those used in the build process) that can be executed on TTCN-3 files.
......@@ -64,7 +64,7 @@ The command Convert XSD files to TTCN-3 takes as input the files selected by the
The output of the commands is written to the TITAN Console. Commands are executed regardless of the file properties; for example, the selected file will be syntactically or semantically checked even if it is excluded from the build process.
=== Enabling TITAN Shortcuts
== Enabling TITAN Shortcuts
TITAN Shortcuts appear in the *File/New* menu and are used to open a new ASN.1 module, a configuration file, a TITAN project or a TTCN-3 module, respectively.
......@@ -73,7 +73,7 @@ The TITAN Shortcuts are enabled by checking the appropriate box on the right pan
image::images/2_F6.png[title="Enabling the TITAN Shortcuts"]
[[enabling-titan-decorations]]
=== Enabling TITAN Decorations
== Enabling TITAN Decorations
Decoration here means a string added to a project, folder or file name or a picture overlapping the icon of the resource to provide the reader with additional information.
......@@ -91,7 +91,7 @@ image::images/2_F7.png[title="Enabling TITAN Decoration"]
NOTE: Decorations are extending the information displayed for elements. As there can be several decorations extending an element, the texts shown above might not be the only ones displayed.
=== Excluding resources
== Excluding resources
The possible reasons for a resource being excluded from build are as follows:
......
== Setting Workbench Preferences
= Setting Workbench Preferences
:toc:
:figure-number: 7
......@@ -13,7 +13,7 @@ image::images/2_F8.png[title="TITAN preferences sub-tree"]
This section only concerns the preferences that are available under the TITAN preferences node of this preference tree.
[[titan-preferences]]
=== TITAN Preferences
== TITAN Preferences
image::images/2_F9.png[title="TITAN preferences"]
......@@ -66,7 +66,7 @@ Below the last option, the version of the currently set compiler and information
NOTE: In case the license file is not provided, is not valid or has expired an additional link will appear on this page. Clicking on this link a browser will open directing the user to a web page where he can order a new license or can ask for a renewal of his existing one.
=== Content Assist Preferences
== Content Assist Preferences
image::images/3_F11.png[title="Content Assist"]
......@@ -101,7 +101,7 @@ The delay between the auto activation of the content assistant, and its actual s
The default setting is: 500 milliseconds
[[debug]]
=== Debug
== Debug
image::images/3_F12.png[title="Debug options and Load Balancing"]
......@@ -158,7 +158,7 @@ Its default value is 10 ms.
Gives the chance to other threads (activities) to work.
[[excluded-resources]]
=== Excluded Resources
== Excluded Resources
image::images/3_FM1.png[title="Excluded resources"]
......@@ -167,7 +167,7 @@ On the excluded resources page, it is possible to provide a list of regular expr
NOTE: The regular expressions are to be provided in the Java regular expression format.
[[export]]
=== Export
== Export
image::images/3_F14.png[title="Export options"]
......@@ -211,7 +211,7 @@ Choose this option if you want to have up-to-date tpd files in your workspace.Th
+
This option works if the previous option is set. Choose this option if you want to change the location of the tpd file while it is being imported or if you want to specify the location of new tpd files at the first automatic save. The automatic save shall not work if it is not set and the project does not have a tpd file yet. This way the automatic save can work only on a subset of the projects.
=== Folding Preferences
== Folding Preferences
image::images/3_F15.png[title="Folding preferences"]
......@@ -240,7 +240,7 @@ Parameters, that is, (text between parentheses) will be folded if both this opti
This option disables the folding of a region unless there are at least that many lines between the ending and starting lines of the region.
[[matching-brackets-highlighting-preferences]]
=== Matching Brackets Highlighting Preferences
== Matching Brackets Highlighting Preferences
image::images/3_F16.png[title="Matching brackets preferences"]
......@@ -254,7 +254,7 @@ Checking this option enables highlighting of matching round, square and curly br
+
The highlighting color is selected with this option.
=== Indentation Preferences
== Indentation Preferences
image::images/3_F17.png[title="Indentation preferences"]
......@@ -271,7 +271,7 @@ this field determines the number of spaces used for indentation. It is only enab
In the default indentation policy, a single indentation level corresponds to inserting two spaces.
[[mark-occurrences-0]]
=== Mark Occurrences
== Mark Occurrences
image::images/3_F18.png[title="Indentation preferences"]
......@@ -287,7 +287,7 @@ if the selection or the position of the cursor changes and the occurrences of th
+
the occurrences of the selected elements will be displayed.
=== On-the-fly Checker Preferences
== On-the-fly Checker Preferences
image::images/3_F19.png[title="On-the-fly checker preferences"]
......@@ -315,7 +315,7 @@ The parsing process is detailed <<7-editing_with_titan_designer_plugin.adoc#on-t
+
NOTE: The delayed semantic checking separates the syntactic analysis from the semantic analysis, while the timeout before on-the-fly check starts feature shifts them together. As such these two features are orthogonal to each other.
==== Pitfalls
=== Pitfalls
* In the worst case incremental parsing can actually take somewhat longer than a full parsing of the file. As it is using among others the opening and closing brackets to localize the semantic effect of a change, if these are not used in a consistent way, which reduce the performance drastically. For example, if only the '\{' sign is entered, but the pairing '}' is not, that might structurally damage the whole file, as all statement blocks might become syntactically invalid.
+
......@@ -328,7 +328,7 @@ NOTE: Using the automatic typing features provided, and programming in a consist
For example in the case of rename refactoring a global constant this might mean, that occurrences inside functions will not be renamed, since the data required to identify those locations is not present in memory. Yet for renaming local variables the functionality will operate correctly even with this option turn on.
[[errors-warnings-preferences]]
=== Errors/Warnings Preferences
== Errors/Warnings Preferences
image::images/3_F20.png[title="Errors / Warnings preferences"]
......@@ -441,13 +441,13 @@ The on-the-fly checker is described in detail <<7-editing_with_titan_designer_pl
NOTE: Changing these preferences will trigger a full re-checking of the projects already checked (when the changes are applied).
[[pitfalls-0]]
==== Pitfalls
=== Pitfalls
The detection of unused module importations and definitions is based on the semantic analyzes done on-the-fly. As that is not yet a full semantic analyzes, these feature can also produce only heuristic behavior.
For example, every importation / definition will be reported unused, if it is not used by the semantic analyzer. This sadly does not mean that they are actually not used, but on the contrary it means that every importation / definition not marked is sure to be used.However this also means that if there are any unused importations / definitions in the project they will be contained in this list, thus considerably reducing every effort needed to find them.
=== Naming Conventions
== Naming Conventions
image::images/3_F21.png[title="Workspace level naming convention settings"]
......@@ -472,7 +472,7 @@ Definitions can be referenced in the `modulename.identifier` format, in order to
Visibility attributes should not be mentioned in the names of the definitions. They should be explicitly set as visibility attributes of the definition.The on-the-fly checker, when it detects that a definition contains a visibility attribute (private, public, friend), triggers one of the following behaviors: *Ignore, Warning, Error*. The default setting is: *Ignore*.
[[syntax-coloring-preferences]]
=== Syntax Coloring Preferences
== Syntax Coloring Preferences
image::images/3_F22.png[title="Syntax coloring preferences 1"]
......@@ -522,7 +522,7 @@ To apply the new syntax color scheme, press the *Apply* or the *OK* button. Acti
The *Restore Defaults* button restores every setting to its default value.
=== TITAN Actions
== TITAN Actions
image::images/3_F24.png[title="TITAN Actions preferences"]
......@@ -538,7 +538,7 @@ if this options is set default values in ASN.1 structures will be handled as omi
+
NOTE: This is only useful in a few protocols. The option is UNCHECKED by default.
=== Typing Preferences
== Typing Preferences
image::images/3_F25.png[title="Typing preferences"]
......
== Converting Existing Projects
= Converting Existing Projects
:toc:
:figure-number: 87
In the TITAN toolset we are supporting 3 different tools/project handling principles at this time: Makefiles, mctr_gui projects and Eclipse projects. Before going into detail on how to convert one of the first two into an Eclipse project, we should review the features offered by these tools to work with projects.
=== The Construction Principles of Projects
== The Construction Principles of Projects
==== Makefile
=== Makefile
Makefiles support the following ways of working with projects:
......@@ -23,7 +23,7 @@ Some of the files are in a different folder, which also has its own Makefile. Th
The Makefile is available for the users to modify, so any kind of project structure can be created. It is also possible to add new commands, new build rules, new behaviors.
[[mctr-gui]]
==== Mctr_gui
=== Mctr_gui
The mctr_gui supports the following ways of working with projects:
......@@ -39,7 +39,7 @@ file groups recursively declare a list of files and file groups that they repres
+
it is possible to refer to a whole project, instead of referring to files or file groups one-by-one. In this case at build time the working directories of the included projects are used as central storages for the actual project.In this mode, if something is changed in a project (build mode, additional files) all projects including that one will also see that change, at the next build, as it will go differently.
==== Eclipse
=== Eclipse
In Eclipse the fundamental difference to all previous systems is that in this case Eclipse as the platform provides all of the options for structuring the projects. Our IDE only extends the platform with TTCN-3 related features (and doesn’t define the whole platform).
......@@ -71,9 +71,9 @@ No matter where they are originating from, in the workbench of Eclipse all proje
Referring outside, the project should be discouraged in case of files and folders, as those methods are not always transportable. In those cases, the project might not be transferable as it is not the contents of these references that will be transferred, but the reference itself. In case of referenced projects this is not that much of a problem, as in that case it is natural, that in order to transport a project, we also need to transport all projects that it builds onto. As long as each project can be transferred on its own their referencing sets will be transferable also.
=== Manually Converting an Existing Project to Eclipse Format
== Manually Converting an Existing Project to Eclipse Format
==== Small Project
=== Small Project
If the project is so small that all of its files are located in one place (in or below one folder) it can be converted easily.
......@@ -83,7 +83,7 @@ If it is needed to perform this step from the command line, one needs to place a
In the ""project" the name of the project has to be set. Eclipse should be able to import the project and all further configurations can be done from there.
==== Large Project Sets Consisting of Several Included Projects or Logically Separate Parts
=== Large Project Sets Consisting of Several Included Projects or Logically Separate Parts
This can be easily mapped to referenced projects inside Eclipse. For each separate project or logically separate part there should be one project created, and the proper referring relation between each one should be set. It is recommended to set this attribute in Eclipse, so that all needed modifications are done in the internal representation. For more information, please refer <<4-managing_projects.adoc#using-project-references, here>>.
......@@ -102,7 +102,7 @@ Figure 81 gives an example on how it might look if 2 large projects are separate
image::images/5_F82.png[title="Two large projects"]
==== Large Projects Using Central Storage Folders
=== Large Projects Using Central Storage Folders
If the project uses central storage folders there are two good solutions possible:
......@@ -126,7 +126,7 @@ NOTE: Even though the second solution sounds to be the better one at first, beca
Creating referencing relations between projects reflects the logical structure of such folders better, promotes reuse of projects (and so source code) and in the longer run could be used to validate the relations between projects in a hierarchy.
==== Project Referring to Specific Files Outside its Own Jurisdiction
=== Project Referring to Specific Files Outside its Own Jurisdiction
In some cases, it might have happened, that people did break logical relations and either created symbolic links to files in other projects, or referred to them in the mctr_gui one-by-one specifically.
......@@ -135,7 +135,7 @@ If it is not possible to map this relation to referring projects or central stor
NOTE: It is not recommended to have symbolic links in a project pointing to some other location as those projects are typically not transportable, and also this introduces a hidden dependency between projects, that cannot be validated automatically.
[[convert-an-existing-mctr-gui-project-using-an-import-wizard]]
=== Convert an Existing mctr_gui Project Using an Import Wizard
== Convert an Existing mctr_gui Project Using an Import Wizard
The Designer feature comes with an import wizard, which is able to create an Eclipse project out of an existing mctr_gui project automatically. For information on how to find this wizard, and what its steps are please refer <<4-managing_projects.adoc#importing-an-existing-mctr-gui-project,here>>.
......
== Building the Project
= Building the Project
:toc:
:figure-number: 89
......@@ -12,11 +12,11 @@ There is a way to build the project manually, by selecting *Project* / *Build pr
NOTE: The problem markers of the compiler are parsed from the output of TITAN, for this reason they are updated when the compiler is run (the project is built, or the files are checked). If automatic building is not used, the projects should be built regularly, to have up-to-date problem markers (see <<7-editing_with_titan_designer_plugin.adoc#mark-occurrences-1, here>>)).
=== Building the Project – Step by Step
== Building the Project – Step by Step
The following sections describe the steps of the build process. These steps are carried out either automatically by the TITAN plugin or manually by the user; the sections indicate which way applies.
==== Creating Symbolic Links
=== Creating Symbolic Links
By default, the first step of the build process is creating or updating symbolic links in the working directory of the project. The working directory contains symbolic links pointing to every file included in the project (this is not true for files contained in a central storage directory, because they are handled differently). For information please see the TITAN Programmer’s Technical Reference <<12-references.adoc#_4, [4]>>.
......@@ -24,7 +24,7 @@ Symbolic link creation is done automatically by the build process; no user actio
NOTE: The creation of symbolic links can be turned off in the Designer plug-in, for more information please refer <<4-managing_projects.adoc#setting-the-local-build-properties-of-a-project, here>>.
==== Creating or Regenerating the Makefile
=== Creating or Regenerating the Makefile
The second step of the build process, if needed, is creating or updating the project `Makefile`. Automatic `Makefile` management should be enabled on the *Properties / TITAN Project Property* page of the projects.
......@@ -34,7 +34,7 @@ Information about the flags of the TITAN `Makefile` generator and the `Makefile`
It is the user’s responsibility to create and update the `Makefile` when automatic `Makefile` management is disabled.
==== Editing the Makefile Skeleton
=== Editing the Makefile Skeleton
If the generated `Makefile` is not suitable then either the options that direct its generation should be changed or (after having disabled automatic building) the `Makefile` should be created by hand. Everyone is allowed to write his own `Makefile`; however, the `Makefile` skeleton generated by the compiler always serves as a good starting point. For an extensive description of what shall be checked in the generated `Makefile`, see the TITAN User Guide <<12-references.adoc#_3, [3]>>.
......@@ -50,7 +50,7 @@ NOTE: the TITAN plug-in has some assumptions on what functionality the `Makefile
This step, if needed, is carried out manually by the user.
==== Module Compilation
=== Module Compilation
In this step C++ files are generated from virgin TTCN-3 and ASN.1 files. When a C++ file already exists, then the timestamp of the Compile file is used to decide whether a C++ file in question is uptodate or not. A C++ file is refreshed only if the corresponding TTCN–3 or ASN.1 module was modified later than the timestamp in the Compile file indicates, or the project was refreshed by *right clicking* the project and selecting *Refresh*; otherwise the generated C++ file is considered uptodate.
......@@ -75,7 +75,7 @@ This is the backup of the `Makefile`, created when the `make dep` command has be
Module compilation is done automatically by the build process; no user action is required.
[[creating-dependencies]]
==== Creating Dependencies
=== Creating Dependencies
Once the symbolic links have been created and the `Makefile` of the project has been properly edited if necessary, the command make dep has to be issued to find the dependencies between the resulting C++ codes. It is extremely important that the dependencies are always uptodate. If, for example, a TTCN–3 module is removed from the project, the dependencies between the C++ files must be updated, otherwise the command `make` fails.
......@@ -90,7 +90,7 @@ The dependency update is done automatically if the build level mentioned <<build
Alternatively, incremental generation of dependency information is available when using Makefiles written for GNU `make`. Instead of modifying the `Makefile`, dependency information is written into separate files with `.d` extension (one for each `.cc` file). These files are included into the main `Makefile`. This has the advantage that the `Makefile` is not modified every time a dependency changes. Another benefit is that the dependencies are always updated during `make`; there is no need to explicitly run `make dep`. For information on how to set this option please refer <<4-managing_projects.adoc#the-makefile-creation-attributes-tab, here>>.
[[building]]
==== Building
=== Building
In the final step of the project building procedure a conventional C++ compiler is used to compile Test port codes and the generated C++ source code to a binary object code. The resulting code is linked with the Base Library. The Base Library contains important supplementary function libraries used for the execution of the generated code (for example verdict handling, Host Controller code, and so on).
......@@ -148,7 +148,7 @@ Carries out a full build, creates the Executable Test Suite and the dependencies
Some hints for selecting the appropriate build level: on build levels 0-3 the executable will not be generated, only levels 4 and 5 produce an Executable Test Suite. Dependency update is only required when the import hierarchy of the source files is changed.
=== Remote Build
== Remote Build
Projects might need to be built for several platforms, for several different GCC versions, or it might just happen that the user’s computer is not powerful enough to assure short build times.
......@@ -156,7 +156,7 @@ Remote building (see <<4-managing_projects.adoc#setting-requirements-on-the-conf
The outputs of the remote build processes are displayed in the TITAN Console view. Every piece of such an output is prefixed by the host name that provided it.
==== Remarks and Tips
=== Remarks and Tips
It is impossible to clearly identify which source files were some errors reported for, for this reason precise build problems reported by remote build hosts are not redirected to the graphical interface. Only those problems are reported and marked, which are the errors in the build process itself (for example: abnormal termination is reported, but as a build process is not terminated by build errors, such errors are not redirected).
......@@ -166,9 +166,9 @@ Building remotely might start up the shell of the remote host in interactive mod
The overall length of the name and build commands of the remote hosts should be less than about 2,000 characters. However, assuming that an automated login mechanism and a build script is used on the remote hosts (creating remote build commands like `rlogin rhea; buildscript.sh`), means that the build process might still be executed in parallel on about 60 remote hosts, which should be enough for now.
=== Building from the Command Line
== Building from the Command Line
==== Building Directly
=== Building Directly
It is possible to invoke the build process of Eclipse from the command line, without Eclipse showing even the splash screen.
......@@ -182,7 +182,7 @@ This command instructs Eclipse to call our application with the name of the proj
The benefit of using this feature over generating the Makefile and building by hand is that this way one will build with the exact same settings he uses inside Eclipse. If for example 3rd party tools are also used as part of the build process, this method will invoke them too properly.
==== Building with an External Script
=== Building with an External Script
It is possible to create an XML file for each Eclipse project, which will store all the information needed to create the Makefile and build the project from the command line.
......@@ -262,7 +262,7 @@ NOTE: After this information was generated it is the user’s responsibility to
NOTE: This file will only hold information relevant from the point of view of TITAN. If other tools are also integrated on the project (to help its build, execution) their data will not be included.
=== Cleaning the Project
== Cleaning the Project
After switching to a newer version of the test executor or simply to save disk space, the project might need to be cleaned by removing the generated files from the working directory.
......@@ -278,7 +278,7 @@ The following files will be deleted from the working directory:
* The executable file
=== Pitfalls
== Pitfalls
Every build related action is executed as a command line command. If the command line is not responsive, the tool will not be able to extract messages from it.
......
== Editing with TITAN Designer Plugin
= Editing with TITAN Designer Plugin
:toc:
:figure-number: 92
This chapter presents the editors provided by TITAN Designer plug-in and their features.
=== File Types
== File Types
The TITAN Designer plugin includes editors for the following file types supported by the TITAN executor (the default extensions are given in brackets):
......@@ -22,13 +22,13 @@ Additional file extensions can be associated to these editors by selecting the E
NOTE: The editors may throw an exception if a file is deleted while being edited.
=== Syntax Highlighting
== Syntax Highlighting
Each of the included editors has its own syntax highlighting schema that can be customized by modifying the workbench preferences (see <<3-setting_workbench_preferences.adoc#syntax-coloring-preferences, here>>)
image::images/7_F85.png[title="Syntax coloring of TTCN-3 files"]
=== Matching Brackets
== Matching Brackets
Bracket matching in source code provides structural information to the user. The functionality is activated by placing the mouse cursor after an opening or closing bracket. Figure 85 shows the closing bracket in line 51 highlighted with black color.
......@@ -36,7 +36,7 @@ image::images/7_F86.png[title="Matching brackets highlight in TTCN-3 files"]
The function can be customized on the workbench preferences; see <<3-setting_workbench_preferences.adoc#matching-brackets-highlighting-preferences, here>>.
=== Folding
== Folding
Folding is another mechanism to provide structural information to the user. Folding decreases the amount of information displayed on screen, thus, users only sees that part of the code they are working with. Text regions can be folded and un-folded with a single click on the folding marker on the left-side ruler.
......@@ -57,7 +57,7 @@ image::images/7_F89.png[title="Template folded"]
The function can be customized by modifying the Folding preferences on the workbench (see <<3-setting_workbench_preferences.adoc#excluded-resources, here>>).
[[on-the-fly-parsing]]
=== On-the-fly Parsing
== On-the-fly Parsing
On-the-fly parsing means that the text is automatically parsed and checked as it is changing.
......@@ -88,7 +88,7 @@ Parsing of files can be slow in the following cases:
The on-the-fly parser is able to parse ASN.1, TTCN-3 and runtime configuration files.
==== Preprocessing of ttcnpp and ttcnin Files
=== Preprocessing of ttcnpp and ttcnin Files
In Titan it is supported to use the C pre-processor for creating TTCN-3 files. For this 2 file extensions are defined: the files with ttcnpp extension are to be preprocessed into TTCN-3 modules, while the ones with ttcnin extension hold code snippets that can be included into ttcnpp and ttcnin files. For detailed information please see the TITAN Programmer's Guide.
......@@ -162,7 +162,7 @@ To define macros outside of files the Eclipse TITAN plug-in uses the settings gi
NOTE: ttcnpp files are not analyzed incrementally even if incremental analysis is switched on.
==== Limitations
=== Limitations
The on-the-fly parser does not support the single line comment in ASN.1 files when placed right after non-comment elements. A simple workaround for this problem is to insert a SPACE character between the last non-comment character and the "`—`" sign.
......@@ -175,12 +175,12 @@ In case of file inclusion, the locations of error and warning markers may be inv
Character constants cannot be used in conditional expressions
[[on-the-fly-semantic-checking]]
=== On-the-fly Semantic Checking
== On-the-fly Semantic Checking
On-the-fly semantic checking is done after the on-the-fly parser has finished parsing. The level and complexity of this check is on the same level with the command line compiler, but is done much faster.
[[limitations-0]]
==== Limitations
=== Limitations
The following structures are not yet analyzed, and as such not all error cases related to them will be detected:
......@@ -190,7 +190,7 @@ The following structures are not yet analyzed, and as such not all error cases r
* In ASN.1 table constraints, any type values (open type notation) are not checked.
=== Content Assistance
== Content Assistance
Content assistance is a feature providing context-sensitive content completion upon user request for source files.
......@@ -198,13 +198,13 @@ The content assistant can be activated either by a key combination (which by def
When an element is selected in the list of the proposed elements, a pop-up window containing a short description may appear.
==== Assistance with Keywords
=== Assistance with Keywords
Editors support a basic level of content assistance, namely the listing of the appropriate keywords (Figure 89).
image::images/7_F90.png[title="Content assistant"]
==== Assistance with Code Skeletons
=== Assistance with Code Skeletons
The intermediate level of assistance inserts structural elements into the source code (Figure 90). Inserting skeletons is only supported for TTCN-3, TTCNPP, TTCNIN and ASN.1 files.
......@@ -214,7 +214,7 @@ Static and dynamic skeletons are both marked with a unique icon.
A short description of them is provided after the name of the skeleton if a skeleton has several slightly different versions. A popup window shows the text about to be inserted.
===== Using the Inserted Skeleton
==== Using the Inserted Skeleton
The insertions may contain linked editing points (Figure 91).
......@@ -228,7 +228,7 @@ Hints for using the inserted skeleton:
* To leave this insertion mode and validate the insertion, press the *ESC* key.
==== Assistance with Dynamic Elements
=== Assistance with Dynamic Elements
The highest level of content assistance is available for TTCN-3 and ASN.1 files. It is providing scope and type structure information that has been parsed and collected by the on-the-fly parser. The calculation of the proposals is done this way:
......@@ -243,13 +243,13 @@ The proposals are ordered in the following way (definitions don’t hide ea
. Skeletons available in the given scope. The skeletons are ordered alphabetically.
. Keywords available. The keywords are ordered alphabetically.
==== Content Assistance Limitations
=== Content Assistance Limitations
Full context sensitivity is not possible yet. Only the scopes and the type structures are used to filter the list of proposals. For this reason, the content assistant might offer completion proposals, which are possible in the actual scope but not in the actual context. It is the user’s task to choose the right proposal.
Only data gathered and stored by the on-the-fly parsers can be offered. If this data is outdated or not complete, the content assistance will also offer outdated or limited information. Section 3.1 explains how this can happen.
=== Find Declaration
== Find Declaration
Open Declaration provides a feature to jump to the declaration point of the selected element.
......@@ -277,7 +277,7 @@ Open configuration files listed in the include section. If the selected configur
Find module parameter declarations. If the module parameter is given as a module specific module parameter (e.g. `module.parameter`) only the given module is searched through for the declaration. Otherwise (e.g. `.parameter` or `parameter`) all modules of the project are taken into account. Duplicate module parameter declarations and errors are reported in the same way as for macro definitions.
[[find-references]]
=== Find References
== Find References
"Find references" provides a feature to search for all elements that refer the selected TTCN-3 or ASN.1 element. The user can select TTCN-3 definitions of types, constants, variables, templates, variable templates, functions, testcases, altsteps, components, ports, formal parameters, enumerated values, etc. ASN.1 type and value assignments can be selected in ASN.1 files. In case of structured types (record, set, union, etc.) the individual fields can be selected, in this case all references to that field will be displayed. The source files should be syntactically and semantically correct prior to starting the search, otherwise it cannot be guaranteed that all references to the given element will be found.
......@@ -305,12 +305,12 @@ Searching for field rec will give 3 hits in the above line, because the referenc
It is not always guaranteed that all references to the selected element will be found or that an element that should be selectable can be selected, because parsing and semantic analysis of all the source code is not 100% completed in the Eclipse plug-in.
[[mark-occurrences-1]]
=== Mark Occurrences
== Mark Occurrences
The TTCN3 and ASN.1 editors are able to highlight the occurrences of the currently selected element in the source code. The search for the occurrences is based on semantic information (see <<find-references, here>>). As the selection or the position of the cursor changes in the editor, the marks are updated automatically. The feature can be configured on the TITAN Preference page (see <<3-setting_workbench_preferences.adoc#mark-occurrences-0, here>>).
[[limitations-1]]
==== Limitations
=== Limitations
Occurrences of the following language elements are not highlighted:
......@@ -327,9 +327,9 @@ in the example below, if the cursor is on the `field1` sub-reference, the occurr
* The occurrences of keywords, predefined functions, primitive data types and literals are not marked.
=== Refactoring
== Refactoring
==== Rename Refactoring
=== Rename Refactoring
This feature builds upon the "Find References" feature, it can be invoked the same way and it works on the same language elements. Most of the TTCN-3 and ASN.1 language elements can be renamed using this feature.
......@@ -344,7 +344,7 @@ image::images/7_F93.png[title="Rename refactoring"]
A preview of all modifications is available; the preview window shows the original and the refactored source code side by side. The source code will be modified only if the OK button was selected.
[[limitations-2]]
==== Limitations
=== Limitations
Refactoring might not be able to operate correctly in the following cases:
......@@ -354,7 +354,7 @@ Refactoring might not be able to operate correctly in the following cases:
In the above cases the user is warned for possible issues.
=== Editing Configuration Files
== Editing Configuration Files
Configuration files can be edited in their own editor in a textual format just like any other file; however, the editor also provides graphical pages to ease this process. As it can be seen on Figure 93, these graphical pages can be selected by clicking on the tabs in the bottom of the editing area.
......@@ -368,7 +368,7 @@ image::images/7_F95.png[title="Syntax error detected"]
The graphical pages are explained in detail in the sections below.
==== Module Parameters Section
=== Module Parameters Section
On this page (new) values can be assigned to parameters defined in the TTCN–3 modules.
......@@ -382,7 +382,7 @@ image::images/7_F96.png[title="Module parameters"]
Changes made to the parameters must be saved by the shortcut key *Ctrl+S*.
==== Test Port Parameters Section
=== Test Port Parameters Section
The values of all parameters on this page are passed to test ports.
......@@ -396,7 +396,7 @@ image::images/7_F97.png[title="Test port parameters"]
Changes made to the parameters must be saved by the shortcut key *Ctrl + S*.
==== Components, Groups and Main Controller Section
=== Components, Groups and Main Controller Section
This page contains parameters of three configuration file sections. The parameters make only sense in parallel mode.
......@@ -404,7 +404,7 @@ image::images/7_F98.png[title="Components, groups and Main Controller"]
Changes made to the parameters must be saved by the shortcut key *Ctrl + S*.
===== Main Controller Options