Our client is a US-based company that provides a powerful code search and intelligence platform designed to help developers understand, navigate, analyze, and develop large codebases. As a part of their platform, they provide an intelligent plugin for VS Code that gives developers a range of AI-powered tools.
The plugin analyzes an entire codebase and provides users with different forms of context-aware assistance.
- suggesting code completions in real-time
- answering questions about the codebase
- performing complex code edits
- automatically fixing code
Initially, the plugin was available only for Visual Studio Code. Encouraged by a warm reception of their product, our client decided to extend their offer and introduce it to a wider range of IDEs.
The challenge
Developing such a solution required niche, specialist knowledge that is rare in the current IT job market. Recruiting and building an expert-level team would take time, which could potentially delay the release of the plugin.
To ensure the timely delivery of the IntelliJ plugin and to maintain its high standards, our client chose to collaborate with external providers instead of assembling an in-house team.
Additionally, the VS Code plugin was developed in Typescript/Node.js, which is challenging to integrate into the JVM-based stack that IntelliJ is built on. Our client needed a team capable of finding a solution to integrate these two technologies and deliver a complete plugin for IntelliJ on time.
They turned to VirtusLab, recognizing our experience in providing customized developer experience products.
The solution
Our engineers resolved the compatibility challenge by employing LSP architecture to communicate with the existing Node.js application and maintain the native look and feel of IntelliJ.
Our client has already built a part of the backend, such as the compatibility layer. With the LSP architecture in place, a joint team, made by ours and our client's engineers, was able to develop the remaining elements:
- An end-to-end testing framework.
- The user interface and multiple features.
- Extended compatibility with different LLMs (Claude by Anthropic, GPT by OpenAI, Mixtral by Mistral, Gemini by Google).
- Support for multiple JetBrains IDEs: IntelliJ, PyCharm, WebStorm, etc.
Catching up to VS Code
Our client aimed for their plugin to have a similar set of features in every IDE. As the plugin for the VS Code has already been available for some time, our engineers had to develop multiple features before the plugin's first release.
- Feature for editing files within the IDE.
- An autocomplete, with a powerful LLM and broad context.
- An additional feature for the built-in chat includes providing additional context from various sources, smart code application, model selection, prompts library, and chat history, offering a complete UI experience.
- AI chat for simple fixes, refactors, and questions on specific regions of code files, with a codebase understanding.
- Chat commands for quick inquiry about the code: explain and smell
- Inline edits, that follow user instructions and edit files on-demand.
- The multi-repository context for enterprise customers so the users can access their repositories with relevant code or knowledge.
The results
The new plugin for JetBrains became generally available, with the new versions being released weekly.
Employing LSP architecture has reduced the time to market by utilizing the existing codebase, joining it with the native experience of the IntelliJ plugin. It also allowed our engineers to abstract over common actions and functionalities.
The client was so satisfied with our work that they already engaged our engineers in two new projects: building Virtual Studio and Eclipse plugins.