Release Notes

Filter
SDI - 2025.06.1647
June 5, 2025

Visual Studio Integration

Completion IntelliSense sessions now include an entry that displays the current user input as a possible completion item. This item behaves the same as any other completion item, and it's automatically suggested when the input doesn't match any of the options generally provided in the completion session. This change makes it easier to declare a new record variable by providing a completion alternative that doesn't overwrite a new variable name you have just typed with another option provided by IntelliSense.
SDI no longer runs PEVerify for .NET 6+ Synergy projects. Additionally, the "Run peverify on output assemblies" option is no longer available on the Build page of project properties for .NET 6+ Synergy projects.
We added support for referencing multiple repository projects from a single traditional Synergy or Synergy .NET project. To support this, repository project references include two new properties: "Default Repository". When the "Default Repository" property is set to true for a repository project reference, the referenced repository is used as the primary repository for build and IntelliSense. This property can be set to true for only one repository reference for a project. Changing this to true for a reference causes this property for other repository project references in the project to be set to false.
We fixed an issue where IntelliSense completion sometimes caused Boolean operators to be completed with the wrong case. Characters were intermittently uppercased--e.g., ".A" would complete to ".AND.". Uppercased characters are now consistently replaced with lowercased characters to match the selected completion item. 
We fixed the compiler to prevent an unexpected BADACCESS error on a protected generic method.
The compiler prevents a runtime access error from occurring when private fields, methods, or properties whose type is a type argument are inaccessible by giving an E_ACCESS error at compile time. This includes fields used in an object initializer.
When a traditional Synergy unit test fails, standard output content is now included in Test Explorer's results summary.
We fixed an issue that caused build failures during CLI (Command Line Interface) builds when a C# project was specified as a dependency for a traditional Synergy project.
We now handle multiple mainline project filename conflicts as follows:
  • In traditional Synergy, if multiple programs have the same name, TargetExt must be set on all compile includes for those programs or the build will fail. If all compile includes are unique, the TargetExt attribute is not necessary. (TargetExt="dbl" is not allowed.)
  • In Synergy .NET, the TargetExt attribute is not supported. Each compile include must have a unique name or the build will fail.
See “Multiple mainline file naming differences between traditional Synergy and .NET” in the Synergy/DE documentation for details and examples.


Using Go To Definition on a repository .INCLUDE statement that does not include the type_spec argument (which specifies the type of data structure to create) no longer fails in the following scopes: subroutine, class, or method. Previously, selecting Go To Definition on "teststructure" in the following, for example, would not work:

    .include "teststructure" repository

However, using Go To Definition with "teststructure" in the following did work:

    .include "teststructure" repository, structure = "teststructure"

Now Go To Definition works in both cases.
We fixed an issue that prevented the Go To Definition feature from displaying all fields when it was used for a repository field declared in this way: “.include <repositoryname> repository, norecord”, unless the field was the first field in the repository structure definition. (It would display the field that the Go To Definition was performed on and the fields below it in the repository structure definition.) Additionally, if the field was the last field in the structure definition, the Go To Definition would fail with an “out of range” exception.
Certain workflows that trigger project reloads, such as rapidly opening and closing  solutions or switching Git branches, can cause SDI to attempt to dispose of components managing background compiles and IntelliSense systems while these operations are still executing. We added handling to prevent exceptions from being displayed to users in these scenarios.
The compiler no longer reports an unexpected IMPTYPARG on a generic method call whose type argument is not specified when passing an array into a parameter whose type is a type argument.
We fixed IntelliSense colorization inconsistencies that occurred when pasting code snippets. This also resolves tracker 159518.
We fixed the .NET compiler's prototype generator (-symout) so that it correctly puts out a parameter whose type is an array of type arguments, preventing an unexpected TOKUDF error when that prototype is loaded.
Specifying options on the Compile page of project properties for a traditional Synergy project no longer adversely affects IntelliSense. Previously, options specified in this field caused errors in  background compiles needed for IntelliSense support.
We fixed an issue that caused dotnet publish to fail with a build error when attempting to publish a Synergy .NET multiple mainline project with a Linux target.

Selecting "Start Debugging" or "Start Without Debugging" for a specific mainline in a multiple mainline project (via the right-click context menu for the mainline) now builds the project if the mainline has changes. Previously, the project would not be built in this scenario. You would have to explicitly build it before starting, or work around this issue by setting the mainline project as the startup project, setting the mainline file as the startup object, and selecting "Start Debugging" or "Start Without Debugging" from the main Visual Studio menu.

We fixed an issue that caused Visual Studio to crash under certain circumstances when starting a debugging session.
We fixed a regression that reintroduced a previously resolved issue (tracker 38456), where no error dialog appeared when a debug session was started when the working directory was missing.
Opening multiple mainline files simultaneously no longer causes IntelliSense background compiles to hang and never complete.
We fixed an issue that caused project property pages to be marked as changed ("dirty") when the Build page of project properties was opened for a Synergy .NET 6 or higher project or a Synergy .NET Standard project.
We fixed an issue that caused the warning "The .NET Desktop Development workload isn't installed" to appear when this workload was installed on a system with both the current and preview versions of Visual Studio. This occurred the first time a project was created or opened with the current version of Visual Studio.