Releases: dotnet/vscode-csharp
v1.5-beta1
There are a handful of improvements in 1.5 so far:
- The extension can now launch OmniSharp on a folder of .csproj projects even when an .sln file is not present. The .csproj files can be located in any subdirectories from the root.
- Support added for Linux Mint 18, which should be binary compatible with Ubuntu 16.04.
- Fix for OmniSharp not launching properly on a folder with multiple .NET Core projects [#735]
v1.4.1
This addresses an issue found and fixed by @sixpindin in which the legacy csharp.omnisharp
and csharp.omnisharpUsesMono
settings are no longer respected. These settings have been supplanted by the omnisharp.path
and omnisharp.useMono
settings but are still expected to work if specified.
v1.4.0
What's New in 1.4
Metadata as Source
- Go to Definition (F12) can now show a C#-like view for APIs that do not appear in your project's source code. (#165)
Debugger
- Applications can now be launched without attaching the debugger with Ctrl+F5.
- Support for new "embedded portable PDB" debug format.
- The launch.json file generator now automatically sets the option to show a console window by default (
"internalConsoleOptions": "openOnSessionStart"
).
New Settings
Several new settings have been added:
csharp.suppressDotnetInstallWarning
: Suppress the warning that the .NET CLI is not on the path.omnisharp.autoStart
: Used to control whether the OmniSharp server will be automatically launched when a folder containing a project or solution is opened. The default value for this setting istrue
.omnisharp.path
: Can be used to specify a file path to a different OmniSharp server than the one that will be used by default. Previously, this option was controlled bycsharp.omnisharp
, which is now deprecated.omnisharp.useMono
: Whenomnisharp.path
is specified, this controls whether OmniSharp will be launched with Mono or not. Previously, this option was controlled bycsharp.omnisharpUsesMono
, wich is now deprecated.omnisharp.loggingLevel
: Used to control the level of logging output from the OmniSharp server. Legal values are"default"
or"verbose"
.
Colorizer
There have been several fixes to the colorizer grammar resulting in much smoother syntax highlighting, with better support for C# 6.0. Special thanks go to @ivanz and @seraku24 for contributing most of the fixes below!
- Expression-bodied members (#638, #403, #679, #249)
- Escaped keyword identifiers (#614)
- Using directives and nested namespaces (#282, #381)
- Field and local variable type names (#717, #719)
- Multi-dimensional arrays in parameters (#657)
Performance
- Improvements have been made in processing diagnostics (i.e. errors and warnings).
- Full solution diagnostics are no longer computed for large solutions (e.g. solutions with >1000 files across all projects). However, diagnostics are still computed for open files.
Other Improvements
- Multibyte characters are now properly encoded, resulting in proper display in tooltips and fixing crashes in the OmniSharp server. (#4, #140, #427)
- Will no longer attempt to install a CoreCLR flavor of OmniSharp on Ubuntu versions other than 14 and 16. (#655)
- Opening a solution or csproj no longer results in '0 projects' displayed in the status bar. (#723)
v1.4.0-beta9
v1.4.0-beta8
Update OmniSharp settings available within Visual Studio Code:
- omnisharp.path: The full path to the OmniSharp server to use
- omnisharp.useMono: Launch OmniSharp with Mono
- omnisharp.loggingLevel: Set to "verbose" to tell OmniSharp to provide debug-level output
- omnisharp.autoStart: Set to false to keep OmniSharp from loading automatically when opening a solution
In addition, OmniSharp logging is improved somewhat and a timestamp is printed during launch: #720
Several bug fixes:
- Opening a solution or csproj results in '0 projects' displayed in the status bar: #723
- Improve syntax highlighting for field and local variable type names: #717, #719
- Fix platform sniffing code to not incorrectly attempt to install a CoreCLR flavor of OmniSharp on Ubuntu versions other than 14 and 16.
v1.4.0-beta7
This release contains a new version of the debugger with additional features and bug fixes.
- Launch a project with "No Debug" (Ctrl + F5).
- User option to suppress warning that .NET CLI is not installed (
csharp.suppressDotentInstallWarning: true
). - Embedded PDB support: debugging binaries built with
/debug:embedded
. - Default launch.json template now sets the option to show console by default (
internalConsoleOptions: openOnSessionStart
).
v1.4.0-beta5
v1.4.0-beta4
- New! Support for a Metadata-as-Source view, much like Visual Studio's, when navigating to a symbol for which source code is unavailable. (#165)
- Don't compute diagnostics (i.e. errors and warnings) for large projects/solutions. This should help issues that some are experiencing with larger projects, though there is more work to be done. (#269)
- Fix syntax-highlighting for multi-dimensional arrays in parameters. (#657)
v1.4.0-beta3
This release updates to v1.9-beta13 of OmniSharp, which fixes the data returned by Roslyn workspace events that are forwarded from the OmniSharp server. This may improve performance with larger projects containing many diagnostics.
v1.3.0
What's New in 1.3
- Support for Unity and Mono development on macOS and Linux has been restored! This release brings back support for the Mono version of OmniSharp, which is used to provide much better support for .csproj/.sln projects. Please note that Mono version 4.0.1 or newer is required.
- Generation of tasks.json and launch.json files can now properly handle nested projects. #170
- New UI that makes it easy to select a process ID when attaching the debugger to another process. Note: If you have an existing launch.json file, you can re-generate it by deleting the file, closing your workspace in Visual Studio Code and opening it again. Or, you can open the launch.json file and change the
processId
value to"${command.pickProcess}"
. - Support for debugging in .cshtml files. To enable this, add a
sourceFileMap
entry to your launch.json with the following content:"sourceFileMap": { "/Views": "${workspaceRoot}/Views" }
- Support for conditional breakpoints
- New support for changing variable values in the debugger! To try this, just right-click on the variable name and select 'Set Value'. Note: To properly support this feature, we've changed the display of variable type names in the debugger to a shortened form. The full type name can be viewed by hovering over the name with the mouse.
- New configuration option to enable stepping into properties and operators.
- Duplicate warnings and errors should no longer accumulate in Unity projects #447