Visual Studio for Mac Dev Team Explains Editor Revamp Prompted by Complaints

After many developer complaints such as "Editor becomes so slow it's unusable after a while," the Visual Studio for Mac dev team revamped all of the IDE's editors and this week explained those changes.

That April 2018 complaint above -- one of many -- said: "VSmac responds normally right after launch but it gradually becomes slower and slower to the point where it's unusable and I need to restart it."

Such negative developer feedback prompted Microsoft to focus on an editor revamp that borrowed the internals from Visual Studio for Windows, the fruits of which were finally realized in the recent general availability of VS for Mac 8.3.

This week, the company explained the work involved.

"Over the past year, the Visual Studio for Mac team updated the editors within the IDE to be faster, more fluent and more productive," said Cody Beyer, program manager. "We did this by building a macOS-native editor interface on top of the same editor backend as Visual Studio on Windows."

Editor Structure
[Click on image for larger view.] Editor Structure (source: Microsoft).

The step-by-step revamp included:

  • Introduction of a new C# editor in v8.1
  • A new XAML editor in v8.2
  • Updated web languages to utilize the new editors in v8.3

Going into the details, Beyer said:

At the core of the updated editors within Visual Studio for Mac is the shared language service with Visual Studio on Windows. What this means is that the same backend that powers the Windows version of Visual Studio now powers the macOS version as well. This includes IntelliSense, Roslyn, text logic, and all the language services behind the scenes. The only portion not shared between Windows and macOS is the UI layer, which stays native for each platform. In the case of macOS, that means using macOS frameworks like Cocoa and CoreText to power the UI experience. By using a native UI, while also being able to utilize support for native input methods as well as support for right-to-left languages, font ligatures and other advanced graphical features.

Beyer also detailed his top five favorite new editor features:

  1. Multi-Caret Editing: Multi-caret allows you to insert any number of carets (text insertion points) within the file you are editing.
  2. IntelliSense Type Filtering: With IntelliSense Type Filtering, you can filter the completion list by type of completion.
  3. Show Import Items: The IDE not only shows completions which have already imported, but also completions that are available for import.
  4. Right-to-Left and Native Input Support: A top ask from our community was to enable support of right-to-left and bi-directional languages.
  5. Ligature Support: If you use a font which supports ligatures, such as the newly released Cascadia Code, Visual Studio for Mac 2019 will automatically support the insertion of ligatures in place of common dual character glyphs.

Those features are aimed at making VS for Mac development more productive, delightful and fun, he said. He also solicited more feedback via the Report a Problem menu in the IDE.

About the Author

David Ramel is an editor and writer for Converge360.

comments powered by Disqus


  • GitHub Copilot for Azure Gets Preview Glitches

    This reporter, recently accepted to preview GitHub Copilot for Azure, has thus far found the tool to be, well, glitchy.

  • New .NET 9 Templates for Blazor Hybrid, .NET MAUI

    Microsoft's fifth preview of .NET 9 nods at AI development while also introducing new templates for some of the more popular project types, including Blazor Hybrid and .NET MAUI.

  • What's Next for ASP.NET Core and Blazor

    Since its inception as an intriguing experiment in leveraging WebAssembly to enable dynamic web development with C#, Blazor has evolved into a mature, fully featured framework. Integral to the ASP.NET Core ecosystem, Blazor offers developers a unique combination of server-side rendering and rich client-side interactivity.

  • Nearest Centroid Classification for Numeric Data Using C#

    Here's a complete end-to-end demo of what Dr. James McCaffrey of Microsoft Research says is arguably the simplest possible classification technique.

  • .NET MAUI in VS Code Goes GA

    Visual Studio Code's .NET MAUI workload, which evolves the former Xamarin.Forms mobile-centric framework by adding support for creating desktop applications, has reached general availability.

Subscribe on YouTube