SEOct 1, 2021

The IntelliJ Platform: a Framework for Building Plugins and Mining Software Data

arXiv:2110.00141v115 citations
Originality Synthesis-oriented
AI Analysis

It offers a practical tool for researchers developing code analysis tools, but is incremental as it builds on existing IDE capabilities.

The paper describes the IntelliJ Platform as a framework for building plugins to support software engineering research, such as mining software data and running machine learning models on code, and provides example plugins as templates.

In software engineering, a great number of new approaches are being actively researched, and a lot of tools are being developed based on them. These tools require a framework for their creation and an opportunity to be used by potential developers. Modern IDEs provide both. In this paper, we describe the main capabilities of the IntelliJ Platform that could be useful for researchers that are developing code analysis tools. To illustrate the benefits of using the platform, we describe several use cases that researchers might be interested in: mining software data, running machine learning models on code, recommending refactorings, and visualizing data in the IDE. We provide several examples of existing plugins that implement these cases. Finally, to make it easier to start working with the platform, we develop and provide simple plugins for each use case that could serve as a template for a new project.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes