The IntelliJ Platform: a Framework for Building Plugins and Mining Software Data
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.