Rider: Taking ReSharper out of process
Rider is a new cross platform .NET IDE from JetBrains, integrating the language analysis features of ReSharper inside the IDE functionality of IntelliJ. Wait, what? ReSharper is a plugin to Visual Studio, running in .NET, and IntelliJ is a JVM application! Cats and dogs, living together, mass hysteria! So how does this work? Rider runs ReSharper out of process, as a headless language server. All of the .NET language features - inspections, navigations, refactorings and more - happen in the ReSharper process, with the results being displayed in the IntelliJ based user interface, running on the JVM.
How would you tackle this? JSON and REST? Protobuf and named pipes? Or something a little more made-to-measure? In this session, we won’t be looking at Rider’s (impressive, comprehensive, some would say attractive) feature set. Instead, let’s geek out and see how and why we built our own custom, asynchronous, declarative, reactive, inter-process, cross runtime communications protocol.
About Matt Ellis:
Matt is a developer advocate at JetBrains. He has spent 20 years shipping software and currently works with language tooling, having fun with abstract syntax trees and source code analysis. He owns and contributes to various open source projects, and believes in the open closed principle.