The RubyMine 2023.2 Beta: Updated AI Assistant, LSP API for Plugin Developers, and More

The RubyMine 2023.2 Early Access Program has reached Beta! Below are some of the new features in the upcoming release that we haven’t yet mentioned. 

Please try it out and share your feedback either in the comments or through our issue tracker.

Documentation generation with AI Assistant

If you’re looking to generate documentation for a declaration using a large language model (LLM), simply access the AI Actions menu and choose the Write documentation action. By selecting this option, the IDE will generate the static portion of the comment, while the AI will take care of generating the actual documentation text on your behalf. This feature saves you time and effort by leveraging the power of AI to automate the documentation generation process.

LSP support for plugin developers

In this build, we’re introducing a significant feature: the LSP API for plugin developers. IntelliJ-based IDEs are renowned for their extensive comprehension of source code and their support for numerous programming languages and frameworks. However, there may be certain languages and technologies that are not yet natively supported. This is where the LSP API comes in.

The LSP API primarily targets plugin developers who wish to leverage a specific Language Server Protocol (LSP) server for enhanced coding assistance within the IDE. If you have developed your own programming language or framework, you can now ensure it’s supported in the IDE by creating an LSP server and a corresponding plugin.

Currently, the LSP support encompasses functionalities such as error and warning highlighting, quick-fixes, code completion, and navigation to declarations. We have plans to introduce additional features in the near future.

A minimal, fully-functional plugin requires writing a few lines of code. The plugin implements the com.intellij.platform.lsp.api.LspServerSupportProvider interface and answers which files it will support and how to start the server. Prisma ORM is an open-source plugin by JetBrains and can be used as a reference implementation. The codebase is quite large, but there are only a few classes that are related to LSP-based support: see the org.intellij.prisma.ide.lsp.* package.

With the LSP API, we aim to provide a flexible and extensible platform that empowers plugin developers to enhance the IDE’s language support and deliver a seamless coding experience for various languages and technologies.

Code insight for RBS class and module aliases

RubyMine now provides code insight and navigation features, such as resolve, completion, find usages, rename, and more, as well as type inference for class and module aliases. Inspections such as Duplicate declarations or Conflicting type variable variance now support class and module aliases, and new inspections for detecting cyclic or inconsistent alias declarations have been added.

Provide and inject support in Vue

RubyMine 2023.2 includes support for provide and inject. The provide/inject mechanism solves the issue of prop drilling in Vue. A parent component can register a provider, and then any component in the descendent tree can inject dependencies provided by the components. RubyMine now provides completion for the inject field, resolves the injected property, and displays correct information about the type of the injected property. 

The full list of improvements in this version is available in the release notes.

To learn about the latest features as they come out, follow RubyMine on Twitter. We post product news and tips several times a week.

We’d love to hear more about your experience with RubyMine. Schedule a 40–60 minute call with us to discuss it and get answers to any questions you might have!

We encourage you to share your thoughts in the comments below and to suggest and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

image description