SDI features

This topic includes the following sections:

 

When you install Synergy DBL Integration for Visual Studio (SDI), the Synergy DBL language, the Synergy compilers, and Synergy debugging are integrated with Visual Studio. This integration enables you to

Features available to all Synergy projects in Visual Studio

For Synergy projects, SDI adds the following to the Visual Studio Build menu:

Note

Enabling Stop Build on First Error may have unexpected consequences and may cause errors when used in conjunction with parallel builds.

Note

Due to a conflict with SQL Server Data Tools (SSDT) projects, Stop Build on First Error does not automatically cancel builds when an SSDT project is detected in the current solution.

The difference between the commands under Project Only and the standard project-specific build commands (e.g., Build > Build MyProject) is that the Project Only commands do not affect referenced projects. The standard project-specific commands do affect (i.e., they do build, rebuild, and clean) referenced projects. Note, however, that we generally recommend using solution builds to ensure that resulting assemblies are built correctly. If you do build projects separately, the Clear Error List command (discussed below) can make it easier to use the Visual Studio Error List.

Additionally, a few menu entries are added to the Tools menu when a solution with a Synergy project is open in Visual Studio:

The context menu that opens when you right-click an .INCLUDE statement includes Open File, which opens the specified include file in the Visual Studio editor.

A DBL Background pane is available in the Visual Studio Output window once a Synergy project has been opened in a Visual Studio session. This pane logs background IntelliSense and prototyping messages and is for use by Synergy/DE Developer Support. To view this pane, open a Synergy project and then open the Visual Studio Output window (View > Output) and select “DBL Background” in the “Show output from” drop-down list at the top of the window.

Additional features for Synergy .NET

For Synergy .NET projects, SDI also includes runtime libraries for Windows desktop and server applications. (A NuGet package is available with runtime libraries for devices; see Synergy .NET Requirements.) It also includes Synergy-specific Watch and QuickWatch commands for debugging (see Debugging Synergy .NET Code).

Additional features for traditional Synergy

For traditional Synergy development, SDI also includes the following:

xfODBC specialization file

SDI includes the xfODBCSpecialization15.dll file, which is specifically for xfODBC. This file enables xfODBC data sources to be used in the data designer for Visual Studio 2017 and 2019. To use xfODBC data sources in these versions of Visual Studio, you must install SDI (even if you don't plan to develop Synergy applications or libraries in Visual Studio).

Synergy comments, XML doc comments, and task list tokens

In both traditional Synergy and Synergy .NET code, the semicolon (;) is used for code comments. And with Synergy .NET, three consecutive semicolons (;;;) are used for documentation comments. See Comments and Documentation comments for general information, and note the following:

Synergy code snippets

SDI includes the following code snippets for use in Synergy source files. To see these snippets, open the Code Snippets Manager (Tools > Code Snippet Manager) and select Synergy as the language in this dialog. The Code Snippets Manager lists all the Synergy code snippets, includes a description of what each code snippet does, and shows the shortcut for each snippet. For more information on using code snippets, see Visual Studio documentation.

Snippet shortcut(s)

Snippet adds...

.region

A region (.REGION-.ENDREGION)

~

A destructor

attribute

An attribute

begin

A BEGIN-END block

case

A CASE statement
class A class
common A shared data record (COMMON-ENDCOMMON)
ctor A constructor
cw A Console.WriteLine statement
delegate A delegate

;;;
or
comment

A summary documentation comment
doforever A DO-FOREVER loop
dountil A DO-UNTIL loop
enum An enumeration
equals An Equals() method
exception An exception
external An external function
for A FOR-FROM-THRU loop
fordo A FOR-DO loop
foreach A FOREACH loop
forfromthru A FOR-FROM-THRU loop
foruntildo A FOR-UNTIL-DO loop
function A Synergy function

gds
or
global

A global data section
group A group
if An IF statement
ifthenelse An IF-THEN-ELSE statement
indexer An indexer
interface An interface
invoke A safe event invocation
iterator A simple iterator
iterindex A named iterator/indexer pair using a nested class
literal A literal
main A Synergy main routine
mbox A .NET MessageBox.Show statement
method A method
namespace A namespace
.if A preprocessor .IF statement
.ifdef A preprocessor .IFDEF statement
prop An auto-implemented property with a field for the getter and setter
propa A dependency property
propauto A property
propdp A dependency property
property

An auto-implemented property (without a field for the getter and setter)

record A record
structure A structure
subroutine A Synergy subroutine
using A Synergy USING statement
try A TRY-CATCH statement
tryf A TRY-CATCH-FINALLY statement
while A WHILE loop