IntelliSense for Synergy files
This topic describes aspects of IntelliSense that are specific to Synergy files. For general information on IntelliSense features, see Microsoft documentation (e.g., docs.microsoft.com/en-us/visualstudio/ide/using-intellisense). This topic includes the following sections:
- Determining the context and availability of IntelliSense
- ELB and OLB information
- DBL$ and SYS$ routine information
- Prototype-only references
- Include files, content files, and external source files
- IntelliSense requirements and troubleshooting
Synergy DBL Integration for Visual Studio (SDI) supports IntelliSense for Synergy source files—i.e., files with extensions that Visual Studio recognizes as Synergy compile or content extensions, such as .dbl and .def. For more information on these extensions and IntelliSense options, see IntelliSense page of Visual Studio text editor options.
Documentation comments (which are marked by ;;;) enable IntelliSense to display information about your Synergy .NET code (information on classes, parameters, and so forth). See Documentation comments for more information.
For more information on documentation comments and IntelliSense, see the Synergex YouTube video Using XML Documentation Comments to Improve IntelliSense. |
Determining the context and availability of IntelliSense
In most cases, the navigation bar for the Visual Studio text editor indicates the context (solution, project, method, etc.) that will be used for IntelliSense, as illustrated in figure 1 below. If there is no navigation bar, IntelliSense is not available for the active source file in the text editor. For information on conditions that could prevent IntelliSense from working for a Synergy source file, see IntelliSense requirements and troubleshooting below.
|
IntelliSense displays information for routines in an ELB or OLB only if the project for that ELB or OLB is referenced. If the .elb or .olb file itself is referenced, the routines in that library will not be available to IntelliSense. See Referencing ELBs and OLBs for more information.
DBL$ and SYS$ routine information
If a traditional Synergy file for OpenVMS includes DBL$ or SYS$ routines, IntelliSense for those routines will be available only if the Synergy project that contains the file references the VmsCompatibility library. See Developing a traditional Synergy application in Visual Studio for more information.
If your project includes a prototype-only reference, the project drop-down in the navigation bar will have two project selections when the referenced file is the active file in the Visual Studio text editor. IntelliSense for local entities (e.g., local variables) will be available only if the project that contains the referenced file is selected in this drop-down list. (If the project with the prototype-only reference is selected, change this setting to the referenced project.)
Include files, content files, and external source files
There are some limitations to information available to IntelliSense for included files, content files in the current solution, and external source files.
For an include file,
- if the file is .INCLUDEd only once in the solution, IntelliSense displays information for local symbols and defines for the .INCLUDE statement's context (the scope for the location of the .INCLUDE statement). The information available to IntelliSense depends on whether the .INCLUDE is in a data division, a procedure division, or a class. If it is in a class, the information available to IntelliSense depends on the class's accessibility.
- if the file is .INCLUDEd multiple times in the solution, the first .INCLUDE statement encountered for the file during background compilation determines the context for IntelliSense.
When you edit a Synergy content file that is not .INCLUDEd, but is part of the solution, symbols global to the project are available to IntelliSense.
When you edit an external Synergy source file that is not .INCLUDEd, IntelliSense has access to all global symbols for all projects in the solution.
IntelliSense requirements and troubleshooting
For IntelliSense to be available for a Synergy source file,
- all files in Synergy projects for the current solution must be on the local machine.
- Visual Studio must have finished loading the solution.
- a background compilation must have been completed. (Visual Studio automatically runs background compilations on open Synergy source files.)
The DBL Background pane of the Visual Studio Output window logs IntelliSense information. This is generally for Synergy/DE Developer Support, but it may have information that could help you troubleshoot IntelliSense issues. For example, this window may display information on internal SDI or Visual Studio errors that prevent IntelliSense from working. See SDI features for more information.