As I said in the comment you were commenting on, there is a JVM and a Mono VM. The IDE is running as two processes, one on the JVM (running the IntelliJ shell) and one on, currently, a Mono VM (running the ReSharper engine). They use IPC with a custom protocol to send UI events and ViewModel updates between the processes.