Skip to content

Latest commit

 

History

History
1799 lines (1467 loc) · 194 KB

CHANGELOG.md

File metadata and controls

1799 lines (1467 loc) · 194 KB

Known Issues

  • Diagnostics related feature requests and improvements #5951
  • Debug from .csproj and .sln #5876

Latest

  • XAML IntelliSense for .NET MAUI (Issue: #565)
    • Controlled by preview feature flag dotnet.enableXamlToolsPreview which is on by default
    • Requires C# Dev Kit and .NET MAUI extensions
  • Update Roslyn to 4.11.0-2.24259.4 (PR: #7117)
    • Shrink the size and remove unnecessary dependencies in the build host (PR: #73393)
    • Make fix-all code action more parallel (PR: #73356)
    • Allow use of more Hot Reload brokered services by LSP (for VS Code) (PR: #73240)
    • Improve parallel processing in FAR (PR: #73253)
    • Improve parallel processing in NavTo (PR: #73249)
  • Add temporary option, dotnet.server.suppressLspErrorToasts to allow suppression of recoverable LSP error toasts (PR: #7106)
  • Update Debugger to v2.30.0 (PR: #7101)
    • Adds support for disabling implict evaluation of properties and functions (Issue: #3173)
  • Don't download razor telemetry if disabled by vscode (PR: #7092)

2.29.11

  • List solution filter files (.slnf) in the 'Open Solution' command. (PR: #7082)
  • No longer activate on the presence of .sln or .slnf files (PR: #7081)
  • Update Debugger Packages to v2.28.1 (PR: #7072)

2.28.8

  • Update Roslyn to 4.11.0-1.24226.4 (PR: #7069)
    • Separate document diagnostics into multiple buckets to improve diagnostics performance (PR: #73073)
    • Improve performance of diagnostics when analysis is set to fullSolution (PR: #73201)
    • updated Telemetry to 17.11.8 and Utilities.Internal to 16.3.73 (PR: #73107)
    • Fix issue where file watchers for Razor documents were not created (PR: #73077)
  • Upgrade Debugger for 2.19.18 Release (PR: #7060)
  • Textmate: fix Razor expression classification inside of HTML tags using injection (PR: #7055)
  • Textmate: fix Razor expression classification inside of HTML tags (PR: #7051)

2.26.13

2.24.17

  • Add oboslete classification definitions to vs2019 themes (PR: #7011)
  • Bump Roslyn to 4.11.0-1.24179.11 (PR: #7011)
    • Add feature to strike out obsolete symbols (PR: #72156)
    • Fix issue where some file changes would be ignored on Windows due to casing (PR: #72555)
    • Drop win32-ia32 language server support (PR: #72605)
    • Use built in Razor source generator instead of generator from SDK. (PR: #72482)
    • Always log LSP server processId and increase attach timeout (PR: #72531)
  • Bump razor and update changelog (PR: #7005)
    • Tweak RazorConfigurationFormatter to account for serialization format change (PR: #10157)
    • Use PooledArrayBuilder throughout parsers and tokenizer (PR #10095)
    • Fix hot path string allocations from ProjectKey (PR: #10138)
    • Disable latest runtime patch (PR: #10133)

2.23.15

  • Rename RazorComponentAttribute semantic token to razorComponentAttribute (PR: #6867)
  • Drop win32-ia32 platform support (PR: #6983)
  • Fix some issues with casing when comparing Razor files (PR: #6974)
  • Do not timeout on connecting to the server if waitForDebugger is set (PR: #6969)
  • Bump Razor and update changelog (PR: #6965)
    • Fix an issue that could cause numerous semantic tokens LSP failures on new projects (PR: #10050)
    • Fix an issue with running on .NET 9 preview builds (PR: #10064)
  • Update Debugger Packages to v2.19.17 (PR: #6958)

2.23.2

  • Updated debugger to fix .NET debugging break with searchNuGetOrgSymbolServer enabled (PR: #6937)
  • Update Razor to add formatting option to force open brace onto the next line after a @code or @functions block (PR: #10018)

2.22.5

  • Update Razor to 7.0.0-preview.24165.1 (PR: #6922)
    • Fix casing issues that cause missing components in Razor files (PR: #10050)

2.22.2

  • Update Roslyn to run on .NET 8 (PR: #6920)
    • Upgrade language server to run on .NET 8 (PR: #72247)
    • Refactors LSP server extension assembly loading (PR: #71862)
    • Report better warnings and errors if build hosts exit abnormally (PR: #71909)
  • Update Razor to 7.0.0-preview.24161.6 (PR: #6922)
    • Upgrade language server to run on .NET 8 (PR: #9981)
    • Support inlay hints (PR: #9904 and #6857)
    • Don't ship as self-contained (PR: #9891)
    • Better using directive completiong (PR: #9982)
    • Add option to format code block open brace on new line (PR: #10018 and #6939)

2.19.13

  • Fix Attribute snippet (PR: #6879)
  • Add grammar support for new Razor directives: rendermode, preservewhitespace and typeparam (PR: #6887)
  • Ensure failures to connect to the named pipe are propagated (PR: #6881)
  • Update Razor to 7.0.0-preview.24079.3 (PR: #6841)
    • Fix an issue with component hover not showing enough information (PR: dotnet/razor#9862)

2.18.15

  • Fix regression in override completion (PR: #6869)
  • Update debugger to 2.18.0 release (PR: #6853)

2.17.7

  • Update Roslyn to 4.10.0-2.24102.11 (PR: #6847)
    • Fix another issue loading .NET projects when only the 6.0 SDK is installed (PR: #71881)
    • Fix request info leak when project loading is cancelled (PR: #71737)
    • Load Roslyn DevKit assemblies into the default ALC (PR: #71807)

2.16.24

  • Update Roslyn to 4.10.0-1.24069.13 (PR: #6823)
    • Fix request metric logging (PR: #71734)
    • Fix issue loading .NET 6.0 projects when only the 6.0 SDK is installed (PR: #71597)

2.15.30

  • Update Roslyn to 4.10.0-1.24058.1 (PR: #6791)
    • Fix error when a source generated file was present in find references or go to definition requests (PR: #71395)
    • Remove usages of incorrectly licensed library (Microsoft.VisualStudio.LanguageServer.Protocol) for serialization of LSP json messages (PR: #68990)
    • Add custom Roslyn serialization code for LSP json messages (PR: #71141)
    • Use named executables for the language server process on Windows and Linux (PR: #71007)
    • Add back LSP request telemetry in CLaSP queue (PR: #71157)
  • Fix command enablement by using specific activation contexts for O#, Roslyn standalone, and Roslyn devkit (PR: #6782)
  • Update Razor to 7.0.0-preview.23627.2 (PR: #6770
    • Fixed issue where Razor trace level was ignored. New razor.server.trace setting created that is not ignored (PR: dotnet/razor#9745)
  • Update OmniSharp to 1.39.11 (PR: #6771)
  • Update checkForDevCert aka.ms link (PR: #6769)
  • Support debug apps running under mono runtime using vsdbg (PR: #6752)
  • Update debugger to 2.9.1 (PR: #6765)
  • Remove check for projectPath for resolveDebugConfiguration (PR: #6754)

2.14.8

  • Fix Remote Process Listing from Windows (PR: #6730)
  • Fix description of debugger console setting (PR: #6726)
  • Read extension paths option (PR: #6724)

2.13.10

  • Update Roslyn to 4.9.0-3.23604.10 (PR: #6676)
    • Pass through folders for additional files (PR: #71061)
    • Automatically detect missing NuGet packages and restore (PR: #70851)
    • Enable route embedded language features in vscode (PR: #70927)
  • Add automatic nuget restore support to C# standalone (PR: #6676)
  • Update required VSCode version to 1.75.0 (PR: #6711)
  • Update debugger docs to point to official documentation (PR: #6674)

2.12.19

  • Update Roslyn to 4.9.0-2.23571.2 (PR: #6681)
    • Workaround vscode bug with returning defaultBehavior from prepareRename (PR: #70840)
    • Implement textDocument/prepareRename to show error in invalid rename locations (PR: #70724)
    • Improve Hover markdown on 'await' keyword (PR: #70629)
  • Remove blazor debugging extension (PR: #5579)
  • Fix issue with mismatch in casing in solution file (PR: #6683)
  • Add nested code actions to csharp extension (PR: #6572)
  • Direct debugger setting documentation to code.visualstudio.com (PR: #6659)
  • Add a timeout for downloading razor telemetry (PR: #6622)
  • Rearrange settings sections into actual categories (PR: #6652)

2.10.28

  • Fix C# Debugger telemetry (PR: #6627)
  • Add support for deduping build diagnostics from C# Devkit (PR: #6543)
  • Update Roslyn to 4.9.0-1.23530.4 (PR: #6603)
    • Enable NuGet restore commands dotnet.restore.all and dotnet.restore.project (PR: #70588)
    • Fix issue where server did not reload projects after NuGet restore (PR: #70602)
  • Update debugger to 2.9.0 (PR: #6623)
    • Flush Console.Write buffer more often (Fixes: #6598)
    • Fix logpoint freezing on start (Fixes: #6585)
    • Fix logpoints when using variables after breakpoint breaks (Fixes: #583)
  • Update README.md to rename the Runtime dependency (PR: #6617)

2.9.20

  • Bump Roslyn to 4.9.0-1.23526.14 (PR: #6608)
    • Fix some project loading issues caused by evaluation failures (PR: #70496)
    • Ensure evaluation diagnostics are logged during project load (PR: #70467)
    • Include evaluation results in binlogs (PR: #70472)
    • Fix failure to start language server when pipe name is too long (PR: #70492)
  • Update Razor to 7.0.0-preview.23528.1 (PR: #6607)
  • Support platform agnostic Razor language server & telemetry (PR: #6600)
  • Fix issue where runtime from PATH was not found when only 7.0.100 SDK was installed (PR: #6601)

2.8.23

  • Fix various failed requests in razor documents (PR: #6580)
  • Update Roslyn to 4.9.0-1.23519.13 (PR: #6573)
    • Filter completion list only with text before cursor (PR: #70448)
    • Bump MSBuild.StructuredLogger package version (PR: #70157)
    • Fix issues launching the server when a .NET 7 preview 7 runtime is installed (PR: #70446)
    • Ensure LSP didChange processing matches specification. (PR: #70407)
  • Debugger: Support Console.ReadLine with 'internalConsole' (PR: #6569)
  • Add dotnet executable path in list runtimes command (PR: #6559)
  • Update Razor to 7.0.0-preview.23516.2 (PR: #6550)
    • Make sure correct info is passed in code action resolve (PR: razor#9420)

2.7.25

  • Update Razor to 7.0.0-preview.23513.5 (PR: #6551)
    • Reduce noisy errors when viewing git diff (PR: razor#9407)
  • Update Roslyn to 4.9.0-1.23513.7 (PR: #6548)
    • Fix extraneous error when connecting to devkit (PR: #70298)
    • Add support for using Mono to load .NET Framework projects on macOS and Linux (PR: #70263)
    • Fix source generator and analyzer output not being recognized if you didn't have C# Dev Kit installed (PR: #70331)
  • Hide debug console when using "console": "integratedTerminal" (PR: #6523)
  • Fix dotnet path resolution when using snap installed packages (PR: #6515)
  • Track debugging sessions until csdevkit is initialized (PR: #6480)
  • Update vsdbg and vsdbg-ui to 2.0.4 (PR: #6517)
  • Debugger: better handle long strings (#6496). Strings are truncated if they are longer than 1024 UTF-16 characters, but the full value up to 5,242,880 characters or 10 megabytes, is available using 'Copy Value' in the watch or variables window. Truncated strings will end with '...'.
  • Add setting to control Razor component commit behaviour (PR: #6506)
  • Razor textmate colorization fixes (PR: #6514)
  • Update Razor version to 7.0.0-preview.23475.5 (PR: #6506)
    • Add setting for whether to complete components with space (PR: razor#9379)

2.6.24

  • Update Roslyn version to 4.9.0-1.23506.7 (PR: #6447)
    • Fix various issues with project loading and allow fallbacks to .NET framework msbuild (PR: #70240)
  • Fix some Razor colorization issues (PR: #6502)
  • Fire telemetry if Razor buffers get out of sync, and recover from same (PR: #6494)
  • Update OmniSharp to 1.39.10 (PR: #6491)
  • Add Razor C# semantic tokens support in VS Code (PR: #6489)
  • Update Roslyn version to 4.9.0-1.23502.8 (PR: #6447)
    • Update Razor project configuration file name (PR: #70156)* added support.md file (PR: #6478)
  • Debugger: Improve the display of various debug configurations and snippets (PR: #6456)
  • Initialize Razor even if Razor doc isn't opened yet (PR: #6473)

2.5.30

  • Add code action fix all support (PR: #6310)
  • Update Roslyn version to 4.9.0-1.23502.2 (PR: #6463)
    • Fix issue loading projects on .NET 8 RC2 (PR: #70196)
    • Fix exception thrown by outdated version of ExternalAccess.RazorCompiler.dll (PR: #70716)
    • Fix crash when navigating to .NET Framework reference assemblies (PR: #69936)
    • Fix error when only the invariant culture is available (PR: #70096)
  • Update Razor version to 7.0.0-preview.23475.5 (PR: #6449)
    • Add Razor language server telemetry when DevKit is installed (PR: #9283)
    • Use message pack for project.razor.* configuration file (PR: #9270)
  • Fix issues with Razor completion (PR: #6441)
  • Add option to collect crash dumps on language server crash (PR: #6438)
  • Add support for multilaunch for Blazorwasm (PR: #6432)
  • Fix issue in Razor new file formatting (PR: #6429)
  • Fix issue in debug tests where tests would complete before the debugger attached (PR: #6415)
  • Hide certain debugger launch configurations when devkit is installed (PR: #6405)
  • Fix issue where build errors were not parsed correctly in the problems list (PR: #6340)
  • Update debugger packages to 2.0.3 (PR: #6401)

2.4.4

  • Respect dotnet.preferCSharpExtension option (PR: #6390)

2.3.27

  • Update Roslyn version to 4.8.0-3.23470.7 (PR: #6408)
    • Update NuGet version to fix issues loading projects with .NET 8 RC2 (PR: #70023)
    • Update MSBuildLocator version to fix issues loading projects when only .NET 6 is installed (PR: #70038)
    • Remove diagnostic source name (PR: #69939)
    • Fix fold all regions (PR: #69817)
    • Fix escaping and wrapping in hover (PR: #69893)
    • Fix error in override completion when containing type does not exist (PR: #69855)
  • Fix issues generating assets in Omnisharp (PR: #6380)
  • Allow Razor to format new documents via Roslyn (PR: #6329)
  • Switch to named pipes for client <-> server communication (PR: #6351)
  • Only show clr debugger if on Windows (PR: #6359)
  • Update Razor version to 7.0.0-preview.23456.2 (PR: #6304)
    • Fixes regression where semantic colors for razor components appear as red
  • Make completion complex text edits more robust (PR: #6325)
  • Fix dotnet info when the dotnet path contains spaces (PR: #6334)
  • Add support for specifying a .runsettings file when using Roslyn LSP (PR: #6265)
  • Update Roslyn version (PR: #6265)
    • Add server support for .runsettings in unit tests (PR: #69792)
    • Log more information when we're unable to parse a URI (PR: #69840)
    • Bump ICSharpCode.Decompiler to 8.1.0.745 (PR: #69772)
    • Fix override completion erroring when framework assemblies are not found (PR: #69795)
  • Remove test only files from vsix (PR: #6332)
  • Fix override completion when drive letter casing does not match (PR: #6315)
  • Allow the server path to be specified by the DOTNET_ROSLYN_SERVER_PATH environment variable (PR: #6316)

2.2.10

  • Update Roslyn version
    • Includes better support for .NET 8 and .NET Framework-targeting projects (PR: #69616)
      • This should fix a number of reports where projects don't have full IntelliSense. .NET Framework projects on Windows should load without errors. .NET Framework targeting projects on Mac and Linux which would use Mono are still processed as if they are .NET Core projects and may not load correctly; support for Mono is coming in a future update.
    • Fix issues where some projects fail to load being unable to find NuGet.Frameworks (PR: #69824)
  • Update Razor to 7.0.0-preview.23455.5 (PR: #6291)
  • Fix parsing of tasks.json with comments in certain locations (PR: #6288)
  • Fix Razor browser discovery issues on Mac and Linux DOTNET_ROSLYN_SERVER_PATH environment variable (PR: #6269)

2.1.2

  • Update Roslyn version (PR: #6264)
    • Upgrade MSBuildLocator to fix homebrew dotnet resolution (PR: #69769)
    • Fix reported ExeName / ExeVersion (PR: #69771)
  • Add 1.x setting names to migrated settings descriptions (PR: #6266)

2.0.436

  • Update Roslyn version (PR: #6245)
    • Fix import completion (PR: #69691)
    • Reduce overhead on semantic token refresh requests (PR: #69690)
  • Localization additions (PR: #6233, #6233, #6206, #6196)
  • Fix specific case where razor formatting no longer worked (PR: #6195)
  • Fix quoting bug in extension paths (PR: #6228)
  • Fix Razor mapping errors in the log (PR: #6209)
  • Add the configuration option for creating binlogs (PR: #6155)
  • Update option changes toast to reload window (PR: #6174)
  • Update Roslyn version (PR: #6205)
    • Add option to capture binlogs for design time builds (PR: #69572)
    • Enable decompilation support (PR: #69501)
    • Fix move type adding to the root folder (PR: #68995)
    • Add support for compilation end diagnostics (PR: #69541)
  • Bump Razor to 7.0.0-preview.23421.4 (PR: #6195)

2.0.416

  • Fix UriFormatException during dotnet SDK resolution when symlinks are involved (PR: #6230)

2.0.413

  • Update Roslyn version (PR: #6192)
    • Include CodeLens on more types and members (PR: #69608)
    • Improve performance when computing colorization (PR: #69496)
  • Fix dotnet resolver returning incorrect runtime in certain scenarios (PR: #6180)
  • Fix issue resolving .NET 7 runtimes from path (PR: #6175)
  • Fix URI issue when loading Razor files (PR: #6168)
  • Bump Razor to 7.0.0-preview.23417.3 (PR: #6165)
    • Fix various textDocument/foldingRange issues (PR: #9134)
  • Clarify dotnet path option description (PR: #6164)
  • Handle multiple dotnet on path and symlinks (PR: #6152)
  • Localize Roslyn options (PR: #6136)
  • Show a prompt if we have more than one solution file (PR: #6132)

2.0.376

  • Update Roslyn (PR: #6131)
    • Only show toast for project load failures (PR: #69494)
  • Fix enter inserting /// on the incorrect line in documentation comments (PR: #6130)
  • Build extension with node 18 LTS (PR: #6128)
  • Update localized strings (PR: #6129)
  • Fix paths for package.nls.*.json (PR: #6121)
  • Add request to prepare for build diagnostic de-dupping (PR: #6113)
  • Support unit test debugging options in Roslyn LSP (PR: #6110)
  • Fix loading of package.nls.*.json (PR: #6118)
  • Add localization infrastructure to debugger package.json strings (PR: #6088)
  • Adjust C# semantic token scopes to better match 1.26 (PR: #6094)
  • Update Razor to 7.0.0-preview.23410.1 (PR: #6105)
  • Implement razor support for method simplification (PR: #5982)
  • Attempt to find a valid dotnet version from PATH before using runtime installer extension (PR: #6074)
  • Respect background analysis scope option in O# (PR: #6058)
  • Add localization infrastructure to debugger components (PR: #6064)
  • Add coreclr as a search keyword (PR: #6071)

2.0.357

  • Fix issue with Go to Definition giving a "unable to resolve reference" error (PR: #69453)
  • Fix completion items not correctly adding using statements to the top of the file (PR: #69454)
  • Improve de-duping of project load failure toasts (PR: #69455)
  • Bring VS Code telemetry reporting in DevKit to match log level requirements of VS (PR: #69444)
  • Update Razor to 7.0.0-preview.23410.1 (PR: #6107)

2.0.346

  • Change how hint diagnostics are shown so they aren't shown as blue squiggles (PR: #69403)
  • Load projects even if there is no solution file (PR: #6062)
  • Show toast when project loading fails (PR: #6060)
  • Fix misleading LSP server logs (PR: #69378)
  • Add support for code lens enable/disable options to roslyn LSP (PR: #6001)
  • Onboard Localization pipeline (PR: #5990)
  • Enable loading translated strings from Razor TS code (PR: #5962)
  • Update typescript and eslint plugin to remove build warning (PR: 6002)
  • Report how the extension was activated (PR: #6043)
  • Update Razor to 7.0.0-preview.23410.1 (PR: #6105)

2.0.328

  • Update Roslyn to 4.8.0-1.23403.6 (PR: #6003)
    • Fix issue where the ProcessFrameworkReferences task causes projects to fail to load (PR: #69354)
    • Emulate suggestion mode in LSP completion by always soft-selecting (PR: #69327)
  • Updated CHANGELOG.md (PR: #5992)
  • Add back accidentally-excluded changelog file from the extension (PR: #5991)

2.0.320

We are switching to the new Roslyn language server as the default. We recognize that this version doesn’t have full parity with the OmniSharp version. If you need one of these features before we can get to it, you can switch back to OmniSharp by following these instructions.

1.26.1

  • Update Razor to 7.0.0-preview.23363.1
    • Remove unsupported features (PR: #8951)

1.26.0

1.25.9

  • Readme updates (PR: #5705)

1.25.8

  • Update Razor to 7.0.0-preview.23258.1 (PR: #5672)
    • Fix issue with Razor attribute hover and Go to Definition (PR: #8653)
    • Fix issue with Razor formatting (PR: #8669)
  • Combine test compile step into normal compile (PR: #5666)

1.25.7

  • Update Razor to 7.0.0-preview.23224.3 (PR: #5660)
    • Fix issue with Razor diagnostics (PR: #8622)

1.25.6

  • Update Razor to 7.0.0-preview.23213.4 (PR: #5655)
    • Fix serialization issue with project.razor.json files (PR: #8489)

1.25.5

  • Update Razor to 7.0.0-preview.23124.2 (PR: #5604)
    • Fix colorization when nullable operators are present (#5570)
    • Add C#/HTML folding range support (razor#8309)
    • Formatting fixes (razor#8318)
  • Update OmniSharp to 1.39.6 (PR: #5625)
  • Update OmniSharp to 1.39.5 (PR: #5618)
  • Automatically trust ASP.NET Core HTTPS development certificate (PR: #5589)
  • Improve outline to be less verbose (PR: #5536)
  • Update Razor TextMate grammar (PR: #5570)

1.25.4

1.25.3

  • Update Razor to 7.0.0-preview.23067.5 (PR: #5543)
    • Enables support for arm64
    • Adds document color and color presentation features
  • Update OmniSharp to 1.39.3 (PR: #5520)
  • Fix extension not finding mono. (#5454, PR: #5484)
  • Update debugger to 1.25.3. (#5460, PR: #5489)
  • Fix missing fix all commands. (#5474, PR: #5475)
  • Fix failure to parse sdk version and sdk path. (#2412, PR: #5459)
  • Handle custom OmniSharp launch paths. (#5449, PR: #5456)

1.25.2

  • Fix the MSBuild version check on Unix and Linux platforms. (#5443, PR: #5444)

1.25.1

1.25.0 (May 24th, 2022)

1.24.4 (Apr 11th, 2022)

  • Remove inlayHints from diff view (PR: #5151)
  • Quote arguments containing spaces when launching OmniSharp (#5150, PR: #5154)

1.24.3 (Apr 1st, 2022)

  • Fix OmniSharp not found issue on Mono (#5140, PR: #5141)

1.24.2 (Apr 1st, 2022)

1.24.1 (Mar 1st, 2022)

1.24.0 (Jan 13th, 2022)

  • Upgrade OmniSharp to 1.38.0 (PR: #4961)
  • Send document buffer when semantically highlighting old document versions (PR: #4915)
  • Improved Regex syntax highlighting (PR: #4902)
  • .NET 6 bug fixes (#4931, PR: #4950)
  • Add File-scoped namespace snippet (PR: #4948)
  • Add searchNuGetOrgSymbolServer documentation (PR: #4939)
  • Fix 'watch' Task (PR: #4932)
  • Support using .NET 6 OmniSharp (PR: #4926)
  • Rename LaunchTarget.kind to not conflict with VSCode separators. (#4907, PR: #4914)
  • Label optional dependencies as external (PR: #4905)
  • Provide a friendly name for the Razor language (PR: #4904)
  • Update Debugger to 1.23.19 (PR: 4899)
  • Add targetArch to Attach and documentation (#4900, PR: #4901)
  • Allow Linux Arm64 users to run the experimental O# build (PR: #4892)
  • Always send document text when Semantic Highlighting (PR: #5003)
  • Remove obsolete settings checks for Blazor debugging (PR: #4964)
  • Explicitly install vscode-nls as a dependency (PR: #4980)
  • Modernize code action provider (PR: #4988)
  • Fix OmnisharpDownloader tests (PR: #4989)

1.23.17 (Dec 3rd, 2021)

1.23.16 (Oct 12th, 2021)

1.23.15 (Aug 31st, 2021)

1.23.14 (July 28th, 2021)

1.23.13 (July 13th, 2021)

1.23.12 (May 26th, 2021)

1.23.11 (April 9, 2021)

  • Move the global Mono check to the correct place (#4489, PR: #4492)

1.23.10 (April 9, 2021)

1.23.9 (February 3, 2021)

1.23.8 (December 17, 2020)

  • Updated Debugger support (PR: #4281)
    • Updated the version of .NET that the debugger uses for running its own C# code to .NET 5
    • Updated .NET debugging services loader to address problem with debugging after installing XCode12 (dotnet/runtime/#42311)
    • Fixed integrated terminal on non-Windows (#4203)
  • Updated Razor support (PR: #4278)
    • Bug fixes
  • Update OmniSharp version to 1.37.5 (PR: #4299)
  • Support auto doc comment generation (#8, PR: #4261)
  • Add schema support for appsettings.json (#4279, PR: #4280)
  • Add schema support for global.json (PR: #4290)
  • Update remoteProcessPickerScript windows ssh exit (#3482, PR: #4225)
  • Do not start OmniSharp server in Live Share scenarios (#3910, PR: #4038)
  • Suppress codelens for IEnumerable.GetEnumerator (#4245, PR: #4246)
  • Allow arm64 MacOS to debug dotnet projects (#4277, PR: #4288)

1.23.7 (December 7, 2020)

1.23.6 (November 13, 2020)

  • Do not call updateBuffer if there are no changes. (PR: #4170)
  • Only skip file changed events when document is open. (PR: #4178)

1.23.5 (November 3, 2020)

  • Set meaning of UseGlobalMono "auto" to "never" since Mono 6.12.0 still ships with MSBuild 16.7 (PR: #4130)
  • Ensure that the rename identifier and run code action providers do not apply changes twice (PR: #4133)
  • Do not send file changed events for .cs files (PR: #4141, #4143)
  • Update Razor to 6.0.0-alpha.1.20529.17:
    • Improvements to HTML colorization for non-C# portions of the document.
    • Bug fix - the razor.format.enable option is honored again

1.23.4 (October 19, 2020)

1.23.3 (October 12, 2020)

1.23.2 (September 3, 2020)

1.23.1 (August 19, 2020)

1.23.0 (August 14, 2020)

1.22.2 (August 04, 2020)

1.22.1 (June 14, 2020)

  • Added LSP handler for textDocument/codeAction request. (PR: omnisharp-roslyn#1795)
  • Expose a custom LSP omnisharp/client/findReferences command via code lens (meant to be handled by LSP client). (PR: #omnisharp-roslyn/1807)
  • Added DirectoryDelete option to FileChangeType allowing clients to report deleted directories that need to be removed (along all the files) from the workspace (PR: #3829, PR: omnisharp-roslyn#1821)
  • Do not crash when plugin assembly cannot be loaded (omnisharp-roslyn#1307, PR: omnisharp-roslyn#1827)
  • Update browser launch regex to support non-default logging frameworks (#3842)
  • Improved support for Codespaces

1.22.0 (May 28, 2020)

1.21.18 (May 5, 2020)

1.21.17 (April 13, 2020)

  • Updated Razor support (PR:#3696)
    • Razor support for <text> tag completions.
    • Ability to restart the Razor Language Server to activate changes to the razor.trace level.
    • Bug fixes and performance improvements.
  • Support for <RunAnalyzers /> and <RunAnalyzersDuringLiveAnalysis /> (PR: omnisharp-roslyn#1739)
  • Add typeparam documentation comments to text description (#3516, PR: omnisharp-roslyn#1749)
  • Tag #region blocks appropriately in the block structure service (#2621, PR: omnisharp-roslyn#1748)

1.21.16 (March 30, 2020)

1.21.15 (March 19, 2020)

  • Fixed freezing and unresponsiveness when opening folder with many nested sub-folders (PR: #3681)
  • Fixed handling of dismiss response to assets prompt (PR: 3678)

1.21.14 (March 11, 2020)

1.21.13 (March 5, 2020)

  • Change Marketplace publisher for the C# extension from ms-vscode to ms-dotnettools
  • Ignore diagnostics from virtual files (dotnet/aspnetcore#18927, PR: #3592)
  • Detect and create Blazor WASM launch and debug settings (dotnet/aspnetcore#17549, PR: #3593)
  • Updated Razor support (PR:3594)
    • Support for @code/@functions block formatting
    • Updated Razor's TextMate grammar to include full syntactic colorization
    • Several bug fixes

1.21.12 (February 20, 2020)

1.21.11 (February 6, 2020)

  • Updated the bundled to Mono 6.8.0 and MSBuild to be copied from Mono 6.8.0 (omnisharp-roslyn#1693, PR: omnisharp-roslyn#1697)
  • Included NugetSDKResolver in the minimal MSBuild, which introduces support for Nuget based project SDKs like Arcade (omnisharp-roslyn#1678, PR: omnisharp-roslyn#1696)
  • Added option (csharp.supressBuildAssetsNotification) to surpress missing build asset notifications (PR:#3538)
  • The minimum Mono version required to run OmniSharp on has been increased to 6.4.0

1.21.10 (February 2, 2020)

  • Updated Razor support (PR:#3524)
    • Added quick info (hover) support for TagHelper and Blazor components. You can now hover over TagHelpers, Components and their attributes to understand what associated C# type you're hovering over in addition to an attributes expected value type.
    • Migrated Razor's project understanding from the VSCode extension into the Language Server. This enables the language server to reboot without extra assistance (reliability) from an LSP client and also enables future Razor LSP clients to have richer functionality with less "work".
    • Added C# light bulbs to enable users to "Fully Qualify" members that are causing errors.
    • Expanded Razor's TextMate grammar colorization support to understand email addresses and await foreach.
    • Several bug fixes
  • Updated Debugger support (PR:#3515)
    • Added option to search the NuGet.org Symbol Server
    • Added options to control logging Process and Thread exits while debugging
  • Fixed a bug where completion items didn't decode symbols corectly (impacted, for example, object initializer completion quality) (#3465, PR:omnisharp-roslyn#1670)
  • Updated to MsBuild 16.4.0 on Linux/MacOS (PR:omnisharp-roslyn#1669)
  • Added support for implement type options - it is now possible to define whether code-fix/refactoring generated properties should be auto- or throwing-properties and at which place in the class should newly generated members be inserted. They can be set via OmniSharp configuration, such as omnisharp.json file. (PR: omnisharp-roslyn#1672)
  • Added support for organizing usings on format. This can be set via OmniSharp configuration, such as omnisharp.json file. (PR:omnisharp-roslyn#1686)
  • Improved support for .NET Core 3.1

1.21.9 (December 16, 2019)

1.21.8 (November 11, 2019)

  • Update Razor to work for 3.1 SDKs (PR:#3406)
  • Support plugins configuration in omnisharp.json (PR:omnisharp-roslyn#1615)
  • Improved support for .NET Core 3.1

1.21.7 (November 6, 2019)

1.21.6 (October 28, 2019)

1.21.5 (October 9, 2019)

1.21.4 (September 30, 2019)

  • Improved support for .NET Core 3

1.21.3 (September 18, 2019)

  • Added support for CheckForOverflowUnderflow in csproj files
  • Improved support for .NET Core 3

1.21.2 (September 5, 2019)

  • Improved support for .NET Core 3

1.21.1 (August 20, 2019)

1.21.0 (July 18, 2019)

  • Added a omnisharp.enableEditorConfigSupport setting to enable support for .editorconfig #3136 (Contributed by @hoffs)(PR: omnisharp-roslyn#1526 (Contributed by @filipw))
  • Modified the auto generated tasks in tasks.json to generate full paths and disable summary to fix the problem of no source links in the problems panel. (PR:#3145)
  • Added support for Roslyn code actions that normally need UI - they used to be explicitly sipped by OmniSharp, now it surfaces them with predefined defaults instead. (omnisharp-roslyn#1220, PR: #1406) These are:
    • extract interface
    • generate constructor
    • generate overrides
    • generate Equals and GetHashCode
  • Improved analyzers performance by introducing background analysis support (omnisharp-roslyn#1507)
  • According to official Microsoft .NET Core support policy, .NET Core 1.0 and 1.1 (project.json-based .NET Core flavors) have reached end of life and went out of support on 27 June 2019. OmniSharp features to support that, which have been obsolete and disabled by default since version 1.32.2 (2018-08-07), are now completely removed.
  • Fixed a bug where some internal services didn't respect the disabling of a project system (omnisharp-roslyn#1543)
  • Improved the MSBuild selection logic. The standalone instance inside OmniSharp is now preferred over VS2017, with VS2019 given the highest priority. This ensures that .NET Core 3.0 works correctly. It is also possible manually provide an MSBuild path using OmniSharp configuration, which is then always selected. (omnisharp-roslyn#1541, PR: omnisharp-roslyn#1545)
        {
            "MSBuild": {
                "MSBuildOverride": {
                    "MSBuildPath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\MSBuild\\15.0\\Bin",
                    "Name": "vs2017 msbuild"
                }
            }
        }
  • Added support for AdditionalFiles in csproj files (omnisharp-roslyn#1510, PR: omnisharp-roslyn#1547)
  • Fixed a bug in .editorconfig where formatting settings were not correctly passed into external code fixes (omnisharp-roslyn#1558, PR: omnisharp-roslyn#1559)

1.20.0 (June 11, 2019)

  • Updated the auto-generated launch.json to use new mechanism for starting web browser. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser
  • Improved support for .NET Core 3
  • Updates to Razor support
  • Made QuickInfo display more consistent with Visual Studio. (#2610) (Contributed by @paladique)(PR: #3090)
  • Added support for fading unnecessary code and using statements #2873

1.19.1 (May 6, 2019)

  • Updated debugger to work correctly on Linux distributions with openssl 1.1 such as Ubuntu 19.04 (#3010)
  • Fixed OmniSharp hanging on wildcard Nuget package references.(PR: omnisharp-roslyn#1473)
  • OmniSharp now uses correct 4.7.2 framework sku to prompt for installation of .NET 4.7.2 if missing.(PR: omnisharp-roslyn#1469).

1.19.0 (April 16, 2019)

  • Improved support for .NET Core 3
  • Added support for roslyn analyzers, code fixes and rulesets which can be enabled viaomnisharp.enableRoslynAnalyzers setting.
  • Improved Razor diagnostics
  • Razor tooling support for tag helpers

1.18.0 (March 26, 2019)

  • Added a csharp.maxProjectFileCountForDiagnosticAnalysis setting to configure the file limit when the extension stops reporting errors for whole workspace. When this threshold is reached, the diagnostics are reported for currently opened files only. This mechanism was available in previous versions, but now can be configured. The default is 1000. (PR: #1877)
  • Added a omnisharp.enableMsBuildLoadProjectsOnDemand setting to load project for files that were opened in the editor. This setting is useful for big C# codebases and allows for faster initialization of code navigation features only for projects that are relevant to code that is being edited._(Contributed by @dmgonch)(PR: #2750)
  • Added initial support for C# 8. (PR: omnisharp-roslyn#1365)
  • Fixed finding references to operator overloads (Contributed by @SirIntruder) (PR: omnisharp-roslyn#1371)
  • Improved handling of files moving on disk (PR: omnisharp-roslyn#1368)
  • Improved detection of MSBuild when multiple instances are available (Contributed by @johnnyasantoss ) (PR: omnisharp-roslyn#1349)
  • Fixed a bug where the "OmniSharp" and "C# log" would steal the editor focus and hinder the user's development flow.(PR: #2828)
  • Improvement in code load times for the extension by using webpack (PR: #2835)
  • Added tasks for "dotnet publish" and "dotnet watch" in the initial asset generation (Contributed by @timheuer ) (PR: #2903)

Debugger

  • Added support for set next statement. Set next statement is a feature that has been available for a long time in full Visual Studio, and this brings the feature to Visual Studio Code. This feature allows developers to change what code is executed next in the target program. For example, you can move the instruction pointer back to re-execute a function that you just ran so you can debug into it, or you can skip over some code that you don't want to execute. To use this feature, move your cursor to the statement you would like to execute next, and either open the editor context menu and invoke 'Set Next Statement (.NET)', or use the keyboard shortcut of Ctrl+Shift+F10 (#1753)
  • Improved responsiveness by making the debugger backend asynchronous and cancelable so that operations (ex: evaluate expression 'xyz') can be aborted on step/go/disconnect (#1215).
  • Added support for pagination of evaluation result children. Before, if an element in the watch/variables/data tip had a large number of child elements, then the first 1,000 children would be calculated up front and no others would be shown. This could be very slow. Now only the first 25 elements are calculated and there is a '[More]' node to obtain additional values. Note that if you are trying to find a particular element in a large collection it is still best to use Linq (example: myCollection.Where(x => x > 12).ToList()).
  • Added support for showing return values in the variables window (#859).
  • Fixed evaluating string functions with interpretation in .NET Core 2.1+. Evaluation uses interpretation for conditional breakpoints, evaluating methods that take a lambda, etc (#2683).
  • Many small improvements to launch.json/tasks.json generation. Highlights include a selection dialog if the workspace contains multiple launchable projects, a few simplifications to reduce the number of fields in the default launch.json, and switching the 'problem matcher' for build tasks. (PR: #2780)
  • Updated the default symbol cache directory to match other .NET Tools (#2797).

1.17.1 (November 11, 2018)

1.17.0 (October 31, 2018)

  • Added preview Razor (cshtml) language service with support for C# completions and diagnostics in ASP.NET Core projects. Please report issues with the preview Razor tooling on the aspnet/Razor.VSCode repo. To disable the preview Razor tooling set the "razor.disabled" setting to true. (PR: 2554)
  • Added omnisharp.minFindSymbolsFilterLength setting to configure the number of characters a user must type in for "Go to Symbol in Workspace" command to return any results (default is 0 to preserve existing behavior). Additionally added omnisharp.maxFindSymbolsItems for configuring maximum number of items returned by "Go to Symbol in Workspace" command. The default is 1000. (PR: #2487)
  • Added a command - "CSharp: Start authoring a new issue on GitHub" to enable the users to file issues on github from within the extension with helpful config information from their system.(PR: #2503)

Debugger

  • Fixed crash at the end of debug sessions on Linux (#2439)
  • Fixed searching for PDBs in original built location (#2483)
  • Fixed launching the web browser against an ASP.NET project that uses wildcard ('*') bindings (#2528)

1.16.2 (October 3, 2018)

  • Update extension to handle upcoming breaking change to launch.json configurations in VS Code 1.28. (PR: #2558)
  • Fixed a bug where OmniSharp flame was red in spite of OmniSharp loading the projects without any errors. (PR: #2450)
  • Fixed launch.json envFile option on Windows. (PR: #2560)
  • Fixed a problem with tracking virtual documents from other providers. (PR: #2562)

1.16.0 (September 10, 2018)

Project System

  • Separated the existing "Restore Packages" option in the Command Palette into two distinct functions:

    • "Restore Project" - Displays a drop-down that shows all the available projects in the solution or in the workspace. Selecting one of them would trigger a dotnet restore for the particular project.
    • "Restore All Projects" - Triggers a dotnet restore for all projects in the current solution or workspace.
  • Modified the "Unresolved dependencies" prompt to restore the all the projects in the currently selected solution or workspace. (PR: #2323)

  • Added support to configure the default *.sln file loaded when opening a project with multiple *.sln files in the root. (Contributed by @janaka) (PR: #2053)

  • Added support for tracking opening, closing and changing of virtual documents that don't exist on disk. (PR: #2436) (Contributed by @NTaylorMullen)

  • Enabled IDE features for .cs files that are not part of a project. (PR: #2471, omnisharp-roslyn#1252)

Misc

  • Added a prompt to "Restart OmniSharp" when there is a change in omnisharp "path", "useGlobalMono" or "waitForDebugger" settings.(PR: #2316)

Editor

  • Improved diagnostics by refreshing them when the active editor changes or the current window is focused. (PR: #2317) (Contributed by @SirIntruder)

  • Improved completions by adding the preselect property so the best match is preselected. (PR: #2388)

Testing

  • Added test execution output to the output of the Run/Debug Test CodeLens. (PR: #2337, #2343, omnisharp-roslyn#1203)
  • Fixed a bug where a debug session could not be started and duplicate logs were displayed after a previous one failed due to build failure. (PR: #2405, omnisharp-roslyn#1239)

Options

  • Added monoPath option to use the mono installation at the specified path when the useGlobalMono is set to "always" or "auto". (PR: #2425) (Contributed by @shana)

Debugger

  • Added support for launching with environment variables stored in a seperate file from launch.json via a new envFile option. (PR: #2462, #1944) (Contributed by @SebastianPfliegel)
  • Fixed editting breakpoint conditions while debugging with recent versions of VS Code. (#2428)
  • Added support for hit count breakpoint conditions. (#895)
  • Support the applicationUrl property in launchSettings.json. (#2296)
  • Improve the error message when attaching to privileged processes on Linux and macOS. (#477)

1.15.2 (May 15, 1018)

1.15.1 (May 11, 1018)

  • The minimum Mono version required to run OmniSharp on has been increased to 5.8.1.

1.15.0 (May 10, 2018)

Debugger

  • New features:

    • Adds support for Source Link, Symbol Servers and other more advanced symbol options (#373)
    • Adds launch.json option to suppress Just-In-Time compiler optimizations.
    • Due to the previous two items and work from the .NET Team, it is now possible to easily debug into ASP.NET itself in projects running against .NET Core 2.1. Instructions are in the wiki.
    • Adds support for pulling in environment variables from ${cwd}/Properties/launchSettings.json. This means that if you add environment variable configuration to your launchSettings.json file, they will now be used when you start your app from Visual Studio Code like they previously would be used from the command line (dotnet run), and from Visual Studio. (#2017)
  • Bug fixes:

    • On Linux, this reduces the native dependencies of the debugger to match the .NET Core 2.1 runtime. The Linux .NET Core 2.1 runtime reduced its native dependencies over all the previous versions, but the debugger still had the same dependencies as .NET Core 2.0. With this fix, the debugger will now continue to work on Linux after installing the .NET Core runtime and nothing else. (#2199)
    • Fixes async call stacks with the .NET Core 2.1 runtime. (#1892)
    • Fixes the debugger's browser launch code when launching projects configured to use Application Insights. (2177)

Editor

  • Fixed regression where the "Generate Type in New File" code action would create an empty file. (#2112, PR: omnisharp-roslyn#1143)
  • Made several improvements to the display of tooltips in Signature Help. (#1940, PR: #1958)

Options

  • "omnisharp.path": This option has been updated to enable the user to specify different versions of OmniSharp, including prerelease versions. (#1909, PR: #2039)

    Possible values for this option are:

    • <Path to the omnisharp executable>: Use a local copy of OmniSharp. The value must point directly to the OmniSharp executable. This is typically the build output directory of the omnisharp-roslyn project on the current machine, for example, C:/omnisharp-roslyn/artifacts/publish/OmniSharp.Stdio/win7-x64/OmniSharp.exe.
    • latest: Use the latest CI build from omnisharp-roslyn.
    • <version>: Use a specific version of OmniSharp. Example: 1.29.2-beta.60 If "omnisharp.path" is not set, the defalut version of OmniSharp for the current release of C# for VS Code is used.
  • "omnisharp.useGlobalMono": This option replaces the old "omnisharp.useMono" option and controls whether or not OmniSharp will be launched with a globally-installed version of Mono. (PR: #2244)

    There are three possible values:

    • "auto": Automatically launch OmniSharp with mono if version 5.2.0 or greater is available on the PATH.
    • "always": Always launch OmniSharp with mono. If version 5.2.0 or greater is not available on the PATH, an error will be printed.
    • "never": Never launch OmniSharp on a globally-installed Mono.
  • It is now possible to suppress the "Some projects have trouble loading" popup using the omnisharp.disableMSBuildDiagnosticWarning option. (#2110

Project System

Scripting

  • It is now possible to define the default target framework for C# scripts in an omnisharp.json file.

    {
      "script": {
        "defaultTargetFramework": "netcoreapp2.0"
      }
    }

    (PR: omnisharp-roslyn#1154) (Contributed by @filipw)

Status Bar

  • Splits the OmniSharp status bar item into two parts, both of which appear on the left side of VS Code's status bar and have specific responsibilities. (#2146, PR: #2133)

    • OmniSharp Server info:
      • Displays the current state of the OmniSharp server, such as Downloading, Installing, etc. The flame icon is green when the server is initialized and running properly, or red if there is an error.
    • Selected Project info:
      • Displays the name of the selected project regardless of the currently active document.
      • If a project is already selected, it displays the name of the selected project. Clicking on it displays a menu to switch to other projects in the workspace.
      • If there are multiple possible launch targets, it displays 'Select Project'. Clicking on it displays a menu to select one.

Testing

  • Added "debug all tests" and "run all tests" to the CodeLens that appears above test classes to allow running or debugging all tests in a class. (#420, PRs: #1961, omnisharp-roslyn#1089

Misc

  • Fixed script for creating offline VSIXs. (#2137, PR: #2138)

1.14.0 (February 14, 2018)

C# Language Support

Debugger

  • Fixes symbol loading while debugging apps running under .NET Core 2.1 (ex: netcoreapp 2.1) on Linux and macOS
  • Fixes debug console message encoding issue on Windows (#1775).
  • Adds support for extracting source files embedded in PDBs. See the C# EmbeddedFiles feature for more information.
  • Adds preliminary support for Linux ARM debugging

Editor

Project System

Task Generation

Misc

1.13.1 (November 13, 2017)

1.13.0 (November 7, 2017)

Cake

Debugger

  • Improved logic for resolving breakpoints in local functions and lambdas. (#1678)
  • When generating a new launch.json file via "start debugging" in a workspace without a launch.json file, the extension now provides the same content as is created with the '.NET: Generate Assets for Build and Debug' command. This takes advantage of a new extensibility point from VS Code. Before the C# extension could only statically provide templates, so, for example, they couldn't have the path to the launchable project. (PR: #1801)

Editor

Navigation

  • Fixed issue with Go to Definition where it was not possible to navigate to a definition within the same file if the file was generated from metadata. (PR: #1772) (Contributed by @filipw)
  • Improved symbol search behavior when matching substrings. (PR: omnisharp-roslyn#990) (Contributed by @filipw)

Project System

  • Significantly changed how MSBuild is located by OmniSharp, resulting in more project types loading properly. (PR: omnisharp-roslyn#988)
  • Fixed bug where LangVersion property was not read correctly from project file, blocking C# 7.1 development. (omnisharp-roslyn#961, PR: omnisharp-roslyn#962]) (Contributed by @filipw)
  • Fixed issue where signing key was not read correctly from project file, which can result in InternalsVisibleTo not being handled properly. (PR: omnisharp-roslyn#964)
  • Fixed long-standing problem with renaming files. (#785, #1792, PR: #1805)
  • Fixed problem where the Antlr4.CodeGenerator Nuget package would not generate files during OmniSharp design-time build. (#1822, PR: omnisharp-roslyn#1002)
  • Fixed issue where a C# project referencing a non-C# project would cause the referenced project to be loaded (causing OmniSharp to potentially treat it as C#!). (#371, #1829, PR: omnisharp-roslyn#1005)

Testing

Other Updates and Fixes

  • If Mono 5.2.0 or greater is installed, OmniSharp will be launched on that rather than the local Mono runtime that it carries with it. This allows, more Mono and Xamarin projects to load properly and improves OmniSharp performance (since it can run on Mono AOT'd binaries). (#1779, PR: #1789)
  • Support added for launching OmniSharp on folders and solutions across multi-root workspaces. (#1762, PR: #1806)
  • Added csharp.referencesCodeLens.enabled and csharp.testsCodeLens.enabled options to allow disabling/enabling for the 'references' and 'run/debug test' code lenses independently. (#1570, #1807, PRs: #1781, #1809)

1.12.1 (August 14, 2017)

  • MSBuild support properly sets CscToolExe to 'csc.exe' to address issues when a project's MSBuild targets have set it to 'mcs.exe'. (#1707)

1.12.0 (August 8, 2017)

Debugger

  • Update debugger to run itself on .NET Core 2.0-preview2 (target app can still use .NET Core 1.x). This allows the debugger to run on more Linux distributions, and it allows there to be a single debugger package for all supported Linux distributions.
  • Fix issue where the call stack may be empty when stepping quickly (#1575)
  • Improvements to the information displayed in the editor peak window when stopping on an exception that has inner exceptions (#1007)
  • Fix expression evaluation when stopping at an exception in .NET Core 2.0 (#1593)
  • Improve error behavior when "program" in launch.json is set to a path that doesn't exist (#1634)
  • Enable stepping by statement (instead of by line) (#1476)

Editor

  • Go to Definition now works from "metadata as source" files (#771, PR: #1620) (Contributed by @filipw)
  • Selection-based code fixes and refactorings (such as "Extract Method") will no longer be offerred unless there is actually a selection in the editor. (#1605, PR: #1606)

Project System

  • Mono targets and tasks are now better located when Mono is installed. This enables support for many Mono-based projects types, such as Xamarin.iOS, Xamarin.Android, MonoGame, etc. (#1597, #1624, #1396 omnisharp-roslyn#892, PR: omnisharp-roslyn#923)
  • Use new solution parer to be more resilient against invalid solution files. (1580, 1645, PRs: omnisharp-roslyn#897 and omnisharp-roslyn#918)
  • The MSBuild project system now calls the "Compile" target rather than the "ResolveReferences" target when processing MSBuild files. This has the effect of ensuring that other targets have the opportunity to run (such as targets that generate files) while still not building any output binaries. (#1531)
  • Binding redirects added for MSBuild assemblies, fixing issues with MSBuild tasks built with different versions of MSBuild. (omnisharp-roslyn#903)
  • The OmniSharp server has updated to the latest MSBuild. (omnisharp-roslyn#904, PR: omnisharp-roslyn#907)

Scripting

Other Updates and Fixes

  • Switched to a new CDN for the extension's dependencies which should deliver an improved download experience (#1542)
  • Automatically activate the extension when opening workspaces that contain any .csproj, .sln, or .csx files (#1375, #1150, PR: #1592))
  • Added nag message when project.json projects are opened by OmniSharp, to serve as a reminder to migrate projects from project.json to .csproj. (PR: #1657)
  • Added type property to csharp.unitTestDebuggingOptions to allow debugging tests with 'clr' debugger (Windows only). (#1586, PR: #1663)
  • The [csharp] configuration section is now checked for formatting options. (#1574) (Contributed by @filipw)
  • All project systems (project.json, MSBuild, CSX Scripting) now support an "Enabled" property that can be configured in omnisharp.json. (PR: omnisharp-roslyn#902) (Contributed by @filipw)
  • The OmniSharp server has been updated to Roslyn 2.3.0, which adds support for C# 7.1 (PRs: omnisharp-roslyn#900, omnisharp-roslyn#901, omnisharp-roslyn#930 and omnisharp-roslyn#931)

1.11.0 (June 27, 2017)

Completion List

  • No longer trigger completion when a '<' character is typed. (#1521, PR: #1530)
  • Completion list no longer triggers on space in contexts where a lambda expression could be typed. (#1524, PR: #1548)

Project System

  • Fixed support for the latest .NET Core 2.0 preview. (#1566)

Other Updates and Fixes

  • Improved download speeds for OmniSharp and Mono dependencies.
  • Allow the ".NET: Restore Packages" command to run on projects targeting full framework. (#1507, PR: #1545) (contributed by @adamhartford)

1.10.0 (May 25, 2017)

Completion List

  • Several improvements to the completion list! (All contributed by @filipw with PR omnisharp-roslyn#840)
    • Attributes are completed properly without the 'Attribute' suffix. (#393)
    • Named parameters now appear in the completion list. (#652)
    • Object initializer members now appear in the completion list. (#260)
    • Completion appears within XML doc comment CREFs.
    • Initial support for completion on 'override' and 'partial' keywords. (#1044)
  • New VS Code completion item glyphs (e.g. struct, event, etc.) are supported. (PR: #1472) (Contributed by @dopare)
  • Updated completion to use same commit characters as Visual Studio. Completion should now complete as non-identifier characters are typed. (#1487, #1491, PR: #1494)

Project System

  • Project references to projects located outside of the current workspace directory are now loaded and processed. (#963, PR: omnisharp-roslyn#832)
  • OmniSharp now loads .NET Core projects using the SDKs included with the .NET Core SDK appropriate for that project, if they're installed on the machine. (#1438, omnisharp-roslyn#765, PR: omnisharp-roslyn#847)
  • Options can now be set in an omnisharp.json to specify the Configuration (e.g. Debug) and Platform (e.g. AnyCPU) that MSBuild should use. (omnisharp-roslyn#202, PR: omnisharp-roslyn#858) (Contributed by @nanoant)
  • Fixed issue where a package reference would be reported as an unresolved dependency if the reference differed from the intended dependency by case (PR: #861)
  • Cleaned up unresolved dependency detection in OmniSharp and added logging to help diagnose project issues. (#1272, PR: #861)

Scripting

Unit Testing

  • MSTest support added (#1482, PRs: #1478, omnisharp-roslyn#856) (Contributed by @AbhitejJohn)
  • Add support for NUnit Test Adapter. (#1434, PR: omnisharp-roslyn#834)
  • Files are saved before running or debugging tests to ensure that recent unsaved changes are included in test runs. (#1473, PR: #1493)
  • Tests that define display names are now run properly. (#1426, PR: omnisharp-roslyn#833)
  • Tests with similar names are no longer incorrectly run together when one of them is clicked. (#1432, PR: omnisharp-roslyn#833)
  • Improve response from running/debugging tests to include output from build and test summary. (#419, #455, PRs: #1436, #1486)
  • Added csharp.unitTestDebugingOptions setting to pass launch.json-style debug options (example: justMyCode) when unit test debugging.

Debugger

  • Resolves crash on OSX when the target process loads an embedded PDB (#1456). This commonly affects users trying to debug XUnit tests.
  • Enhanced exception peek display to provide additional exception properties.

Other Updates and Fixes

  • New csharp.suppressHiddenDiagnostics setting that can be set to true to display hidden diagnostics, such as 'unnecessary using directive'. (#1429, PR: #1435) (Contributed by @cruz82)
  • Fix issue causing several code snippets to not be available. (#1459, PR: #1461) (Contributed by @shaunluttin)
  • Ensure the 'Generate Assets for Build and Debug' command can cause the extension to activate. (PR: #1470)
  • The OmniSharp process is now correctly terminated on Unix when the 'Restart OmniSharp' command is invoked. (#1445, PR: #1466)
  • Added new RoslynExtensions option to allow specifying a set of assemblies in an omnisharp.json file that OmniSharp will look in to find Roslyn extensions to load. (PR: omnisharp-roslyn#848) (Contributed by @filipw)

1.9.0 (April 20, 2017)

Unit Testing

  • Support added for running and debugging unit tests in .csproj-based .NET Core projects. (#1100)

Debugger

  • Arch Linux change: Before, the debugger would automatically use the Ubuntu 16 debugger on Arch. Now we require the debugger to be explicitly set. See https://aka.ms/vscode-csext-arch for more information.
  • Several bug fixes that addressed problems with launch (#1335, #1336)
  • Fixed several pipeTransport issues including introducing a new quoteArgs option (#1318), and fixing attach with Docker (#1369)
  • Fix issue where VS Code would incorrectly display threads as paused (#1317)
  • Added new 'csharp.fallbackDebuggerLinuxRuntimeId' configuration setting to control the version of the debugger used on Linux (#1361).
  • Added a new clr debugging type in launch.json to enable debugging for Azure scenarios. That type is limited to Windows Desktop CLR, 64-bit processes, and only supports the Portable PDB debug format.
  • Added support for the launch.json editor's 'Add Configuration' button (#1024)

Project System

Improved OmniSharp Settings

  • Added support for global omnisharp.json file (omnisharp-roslyn#717, PR: omnisharp-roslyn#809) (Contributed by @filipw)

    This file can appear in one of the following locations:

    • Windows: %APPDATA%\OmniSharp\omnisharp.json
    • macOS/Linus: ~/.omnisharp/omnisharp.json
  • Watch local and global omnisharp.json files for changes while OmniSharp is running. Currently, this only works for formatting options. (PR: omnisharp-roslyn#804)(Contributed by @filipw)

  • New 'omnisharp.waitForDebugger' setting to make it easier to debug the OmniSharp server itself. (PR: #1370)

Other Updates and Fixes

  • Improvements made to project.json package completion experience. (#1338)
  • Diagnostics are no longer created for hidden diagnostics, addressing the problem of "Remove Unnecessary Usings" spam in the Problems pane. (#1231)
  • Improved the extension's runtime dependency download logic to skip re-downloading packages that were already successfully downloaded and installed.
  • Assets for building and debugging are now always generated with POSIX style paths. (#1354)
  • Don't offer to generate tasks.json if build task already exists. (PR #1363) (Contributed by @eamodio)

1.8.1 (March 31, 2017)

Fixes debugging on macOS Sierra 10.12.4.

1.8.0 (March 10, 2017)

Go to Implementation

  • Added support for "Go to Implementation" and "Peek Implementation" introduced in Visual Studio Code 1.9. (#37) (Contributed by @ivanz)

Scripting

  • C# scripts (.csx files) now allow multiple #load directives, and #r and #load directives update live. (omnisharp-roslyn#760) (Contributed by @filipw)
  • .csx files can now be discovered as valid launch targets using the project selector at the bottom-right of the status bar. (#1247) (Contributed by @filipw)
  • Assembly references will now unify properly for C# scripts. (omnisharp-roslyn#764) (Contributed by @filipw)
  • Unsafe code is now allowed in C# scripts. (omnisharp-roslyn#781) (Contributed by @filipw)
  • C# scripting now ignores duplicated CorLibrary types, which can manifest in certain edge scenarios. (omnisharp-roslyn#784) (Contributed by @filipw)

Debugger

The 1.8 release makes a major change to how the debugger works under the hood. This new architecture simplifies how the debugger is tied to VS Code. We hope that this will make it easier to bring .NET debugging features to VS Code. We also expect it to improve debugger launch performance.

Changes:

  • The module load messages in the output window are now more detailed and hopefully less confusing. (#837)

  • Programs can now be launched into VS Code's integrated terminal. (documentation)

  • VS Code recently introduced column breakpoint support and they are now enabled for C#.

  • React to the VS Code change to use ${command: instead of ${command.. (#1275)

  • Fix a problem with browser launch support that could lead to debugger session's being aborted when the browser is started. (#1274)

  • Remote debugging breaking changes: as part of our new architecture, there are a few breaking changes to the way remote debugging works.

    • vsdbg vs. clrdbg: As part of the new architecture, clrdbg has been replaced with a new executable named vsdbg. As such, the script to download vsdbg has changed to http://aka.ms/getvsdbgsh. Run curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l ~/vsdbg to download. See the wiki for more information.
    • Pseudo-tty's are no longer supported: previously we were a little more tolerant of pseudo-tty's transforming the input/output from the remote debugger. We are currently not as tolerant. If you are using ssh or plink as a pipe program, pass -T to fix this. If you have another transport and you are no longer able to connect, let us know and we can fix this for a future release.
    • debuggerPath is now required - previously the debuggerPath property of pipeTransport was recomended but not required. As part of this change we are now requiring it.

Other Updates and Fixes

  • Find All References now properly highlights locations of found references. (#428)
  • Assembly references will now unify properly for project.json projects. (#1221)
  • Code Actions (i.e. refactorings and fixes) now respect the formatting options that are set when a project is opened. (omnisharp-roslyn#759) (Contributed by @filipw)
  • Completion support for package references in project.json files has been restored. (#1236)
  • The C# TextMate grammar used for syntax highlighting has been removed because it is now part of Visual Studio Code itself. (#1206) (Many thanks to @aeschli)

1.7.0 (February 8, 2017)

Syntax Hightlighting

Project Support

  • Updated with the latest changes for .NET Core .csproj projects. (omnisharp-roslyn#738)
  • Automatic package restore and out-of-date notifications implemented for .NET Core .csproj projects. (#770)
  • Correctly update project when dotnet restore is performed on a .NET Core .csproj project. (#1114)
  • Properly handle .csproj projects in .sln files that were added via .NET CLI commands. (omnisharp-roslyn#741)
  • Fix dotnet restore Visual Studio Code command to execute for .csproj .NET Core projects. (#1175)
  • Respect nowarn in project.json projects. (omnisharp#734) (Contributed by @filipw)
  • Fix problem with project.json projects that wrap assemblies. (#424)

Debugging

  • Enable debugger support for Zorin OS 12. (#1160) (Contributed by @mkaziz)
  • Added off-road support for Windows Subsystem for Linux (NOTE: requires newer version of Windows than have been publicly released yet)
  • Fixed issue with debugger pause and multithreaded call stacks (#1107 and #1105)

C# Scripting

Code Actions

  • Fixed code actions that add files, such as "Move Type to File". (#975)
  • Properly surface code actions that have "nested code actions". This allows "generate type" to work properly. (#302)
  • Don't display the Remove Unnecessary Usings code action unless it is relevant. (omnisharp-roslyn#742)
  • Don't show the Extract Interface refactoring as it requires a dialog that does not exist in VS Code. (#925)

Completion List

  • A namespace icon should be displayed for namespaces in the completion list. (#1125) (Contributed by @filipw)
  • Add icons for several symbol kinds in the completion list, fixing many symbols that incorrectly displayed a property "wrench" icon. (#1145)

Other Updates and Fixes

  • Add schema validation for omnisharp.json files. (#1082) (Contributed by @Thaina)
  • Add support for auto-closing and surrounding characters. (#749, #842) (Contributed by @filipw)
  • Fix running and debugging of tests defined in nested classes. (#743, #1151)
  • Fix error when 'tasks.json' does not contain a 'tasks' node, or contains os-specific 'tasks' nodes. (#1140)
  • Better detection of Windows architecture (x86 or x64) when determining extension dependencies to download. The detection logic now uses well-known environment variables rather than launching 'wmic'. (#1110, #1125)
  • Improvements to the OmniSharp Log (#1155)
  • Add new values to the omnisharp.logginglevel option to allow more granualar control of OmniSharp logging. (#993) (Contributed by @filipw)
  • Don't display the "some projects have trouble loading" message if projects only contain warnings. (#707)
  • Update Mono detection logic to succeed even if another shell is set as the default (e.g. zsh). (#1031)

1.6.2 (December 24, 2016)

  • Fix performance issue when editing type names containing multiple generic type parameters. (#1088, #1086)

1.6.1 (December 22, 2016)

  • Fix crash when tasks.json contains comments. (#1074)

1.6.0 (December 21, 2016)

C# Scripting

Project Support

  • Support for latest .NET Core .csproj projects updates. (omnisharp-roslyn#705)
  • Update 'tasks.json' and 'launch.json' generation to support .NET Core .csproj projects. (#767)
  • Properly support <NoWarn> in MSBuild projects and specifically ignore the CS1701 warning in .NET Core MSBuild projects. (#967)
  • Fix global.json-based project search to also the top-level folders specified by the "projects" property and not just their children. (#904 and #962)

Debugging

  • Update the debugger so that the debugger itself runs on .NET Core 1.1. This change:
    • Enables debugger support for additional Linux distributions - Ubuntu 16.10, openSUSE 42, Fedora 24
    • Brings support for running all supported distros on top of Linux Kernel >= 4.6
  • Enable debugger support for Arch Linux (#564)
  • Improve debugger install errors for macOS without openSSL symlinks (#986), and x86 Windows (#998).
  • Improve debugger performance using precompiled debugger binaries (#896)(#971).

Syntax Highlighting

  • Tons of great syntax highlighting fixes and support! (All contributed by @ivanz)
    • Fix for field declarations. (#757)
    • Fix for generic types with multiple type parameters. (#960)
    • Proper support for interpolated strings (verbatim and non-verbatim). (#852)
    • Fix for multi-line properties. (#854)
    • Fixes for events, nested type references (e.g. Root.IInterface<Something.Nested>), variable declarations, nested classes, and fields spanning multiple lines

Hover Tooltips

  • Improve display of hover tool tips for built-in C# types, such as int and string. (#250) (Contributed by @filipw)
  • Improve display of hover tool tips for nested classes. (#394) (Contributed by @filipw)
  • Fix spacing in hover tool tips around <paramref/> in XML doc comments. (#672) (Contributed by @filipw)

Other Updates and Fixes

  • Support for running/debugging NUnit tests (#996) (Contributed by @HexWrench)
  • Fix exception thrown when sending /autocomplete request to OmniSharp server in location where no completion items are available. (#980)
  • Add omnisharp.maxProjectResults setting to control the maximum number of projects to display in the 'Select Project' dropdown. The default is 250. (#875) (Contributed by @filipw)
  • Fix signature help display for constructors. (#36) (Contributed by @filipw)
  • Ensure that the editor.insertSpaces and editor.tabSize settings are passed to OmniSharp for formatting. Note that this behavior can be controlled with the omnisharp.useEditorFormattingSettings option, which defaults to true. (#1055) (Contributed by @filipw)

1.5.3 (November 21, 2016)

  • Use value of http.proxyStrictSSL even when http.proxy is not set. (#957)

1.5.2 (November 15, 2016)

  • Ensure diagnostics are cleared in files when they are no longer needed. (#858)
  • Enqueue requests for diagnostics in visible editors when the extension starts up. (#843)
  • Provide fallback URLs for debugger downloads. (#930)
  • Properly require .NET Framework 4.6 in the OmniSharp.exe.config file to ensure that the user is displayed a dialog on Windows machines that don't have .NET Framework 4.6 installed. (#937)
  • Fix issue with installing on non-English installations of Windows. (#938)
  • Display platform information when acquiring runtime dependencies. (#948)

1.5.1 (November 14, 2016)

  • Fix to properly support http.proxy and http.proxyStrictSSL settings. (#930)

1.5.0 (November 14, 2016)

Initial support for C# 7

  • New C# 7 features like pattern-matching and tuples are now supported in VS Code editor. Note: To use tuples, you will need a reference to this NuGet package.

Initial support for CSProj .NET Core Projects

  • With the .NET Core SDK moving to embrace MSBuild and .csproj files over project.json, we've made sure the C# extension can handle the new format. This support is preliminary and there are still several features coming to smooth out the experience.

Broader OS Support for C# Code Editing

  • This release dramatically changes the runtime that OmniSharp runs on, which allows it to be run an many more operating systems than before:

    • Windows: OmniSharp runs on the installed .NET Framework. In addition, OmniSharp now runs on 32-bit Windows!
    • macOS/Linux: OmniSharp runs on a custom embedded Mono runtime. Note: Mono does not need to be installed on the system for this to work.

Debugger

  • Remote debugging is now supported for attach by using the pipeTransport launch.json option.
  • Resolved issue with setting breakpoints when there are multple files with the same name (e.g. two 'Program.cs' files).

New Dependency Acquisition System

  • This improves the acquisition and reliability of platform-specific OmniSharp and debugger dependencies.

New Settings

Several new settings have been added:

  • csharp.suppressDotnetRestoreNotification: Suppress the notification window to perform a 'dotnet restore' when dependencies can't be resolved.
  • omnisharp.projectLoadTimeout: The time Visual Studio Code will wait for the OmniSharp server to start. Time is expressed in seconds. (Contributed by @wjk)

Colorizer

  • A new unit testing framework for testing the colorizer grammer (#742) (Contributed by @ivanz)
  • Single-line comments after preprocessor directives (#762) (Contributed by @damieng)

Performance

  • Major improvements have been made to editor performance. The communication with the OmniSharp server has been rewritten to allow long-running operations (such as gathering all errors and warnings) to queue while high priority operations (such as text buffer changes) run serially. (#902) (Thanks to @david-driscoll for his help with this change!)

Other Improvements

  • The prompt to generate assets for building and debugging can now be dismissed for a workspace permanently. In addition, a new dotnet.generateAssets command has been added to force regeneration of the assets. (#635)
  • Fix "running forever" issue for folder with multple .NET Core projects. (#735) (Contributed by @eamodio)
  • ctor snippet is now more consistent with other code snippets. (#849) (Contibuted by @Eibx)
  • Ampersands in file paths are now properly escaped on Windows (#909) (Contributed by @filipw)

1.4.1 (September 1, 2016)

  • 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.

1.4.0 (August 29, 2016)

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 is true.
  • 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 by csharp.omnisharp, which is now deprecated.
  • omnisharp.useMono: When omnisharp.path is specified, this controls whether OmniSharp will be launched with Mono or not. Previously, this option was controlled by csharp.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)

1.3.0 (July 20, 2016)

  • 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

1.2.0 (June 29, 2016)

  • Adds debugger support for new Linux versions: Ubuntu 16.04, Fedora 23, openSUSE 13.2, and Oracle Linux 7.1
  • Enhanced debug console output: module loads are now output, and there are launch.json options for controlling what is output
  • Source file checksum support for breakpoints. This ensures that the debugger only sets breakpoints in code that exactly matches the open document.
  • Support for editing the value of variables in the watch and locals window (requires VS Code 1.3)