News

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.

Featured

  • Bright Tunnel

    Visual Studio 16.4 Preview 2 Boosted by Extension Tech

    Microsoft today shipped Visual Studio 2019 v16.4 Preview 2, boosted with new features that come from formerly separate extensions.

  • Nebula

    .NET Core 3.1 Preview 1 Focuses on Blazor, Desktop

    The first preview of .NET Core 3.1 focuses on two of the big features highlighting the Sept. 23 release of .NET Core 3.0: Blazor (for C# Web development instead of JavaScript) and desktop development (Windows Forms and Windows Presentation Foundation).

  • Stone Steps Graphic

    Microsoft Research's SandDance Data Visualization Tool Goes Open Source

    A data visualization tool some four years in the making from Microsoft Research has been open sourced, available for use as an extension for Visual Studio Code or Azure Data Studio.

.NET Insight

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.

Upcoming Events