Verification state: modelled. Tested on hand-written fixtures and on the real DeltaV 14.5.1 export: the whole export (430,087 lines) colours with no string or comment left open; completion offers the export's 293 module tags and 45 classes. The expression syntax is not read from Emerson's books. Not seen in the running Editor; not on Windows.
Colouring
Open a .fhx file (either case of the extension). The status bar language reads DeltaV FHX. Statements, attributes, quoted values with "" escapes, numbers, T and F, both comment forms ((* *) and C-style) and braces are coloured. Inside EXPRESSION, CONFIRM_EXPRESSION, DELAY_EXPRESSION and the other expression values, the expression keywords, strings, operators, :=, comments and the '//module/...' and '^/...' paths stand out.
The language and its colouring are always available, like the Editor's other built-in languages, whether or not the DCS environment is on. Everything below needs the environment.
Navigate
| Feature | How | What |
|---|---|---|
| Outline | View > Open View > Outline | Areas, classes and modules with their function blocks and parameters |
| Go to Definition | Ctrl+click | A module named in a path such as '//FIC-101/PID1/OUT.CV', a module's area, a module's class |
| Find All References | Shift+F12 on a module's TAG= or a path | Every path that names the module |
| Hover | On a path | The module's description, area, class and function blocks, or that the export has no such module (it may be in another export) |
The index is built once per version of the text, only when asked. References between exports (a path to a module in another file) do not resolve.
Completion
Only names the export defines are offered; nothing is invented.
- After
'//in an expression orREF="//: the export's module tags; after'//TAG/: that module's function blocks and parameters, and its class's. - After
'^/(a relative path): the members of what it names. In a module its own and its class's; in a sequence composite those of the module or phase class that runs it; in a value written for an embedded block (FAIL_MONITOR/...) that block's composite; in a phase class its definition's and algorithm's. - After
MODULE_CLASS=",PLANT_AREA=",CONTROLLER=",DEFINITION=",CLASS=",SET=",COMMAND_SET="andPRIORITY_NAME=": the names the export defines.
Measured on the real export: module tags in about 1 s the first time (while the shared index is built), under 1 ms after; other lists each in under 125 ms.
To edit values safely, use the tables (Alarms, Edit instances) or edit the text and let the save guard check the save.