R# vs Roslyn

192 views
Skip to first unread message

Dmitry Dolotovskikh

unread,
Mar 5, 2015, 2:08:49 PM3/5/15
to resharpe...@googlegroups.com
Hi

How about Roslyn R# support? Can roslyn kill R#?
Will we have two R# versions for old and new VS?
How does it affect to plugin API?

Thanks

Matt Ellis

unread,
Mar 6, 2015, 7:12:12 AM3/6/15
to resharpe...@googlegroups.com
Roslyn is a separate technology to ReSharper, but is conceptually based on the same idea - parsing source files as-you-type to create abstract syntax trees and semantic models, running inspections on these models, and rewriting the trees for safe refactoring. However, ReSharper has been at this for 10 years, while Roslyn is just coming up to its first release. As such, there is a massive difference both technically and as a product. ReSharper ships with loads more inspections and context actions than Roslyn, for example. Also, Roslyn is about parsing C# and VB files, while ReSharper provides a framework for parsing any kind of file, and supporting references between arbitrary syntax trees, which allows things like code completion, find usages and navigate to definition to work across files. For example, a XAML file can reference classes or methods in a C# file, or C# files can reference CSS or HTML, again with code completion and find usages support. On the other hand, Roslyn is also a compiler, generating assemblies, which is something ReSharper doesn't go anywhere near.

Essentially, ReSharper has a fundamentally different architecture to Roslyn, and 10 years of experience and features built with that architecture. It is not something that can be easily swapped out, which means ReSharper is not going to integrate with Roslyn's parsing and syntax trees, but continue to use its own. It is integrating Roslyn's light bulb menu into ReSharper's own light bulb menu, so there will be only one displayed, containing ReSharper's actions as well as Visual Studio's.

So, there won't be two ReSharper versions. Version 9.x supports VS 2015, just as it supports VS2013, 2012 and 2010 - with separate code to integrate nicely with features specific to that version (such as Roslyn, but also things like the Peek window, or light and dark themes). Which means that there is no affect to the plugin API - ReSharper will still analyse files and your ReSharper extensions will continue to work just as before.

Regards
Matt
Reply all
Reply to author
Forward
0 new messages