Historically, all libraries used for building IntelliJ have been stored, as JAR files, directly in the IntelliJ git repositories. This approach has several downsides, such as increasing the size of the git repo whenever we need to update to a new version. Also, who wants to manually manage dependencies and versions these days? We’ve recently made some changes to try and improve this situation.
Some good news for plugin developers – starting in IntelliJ IDEA 2017.3 EAP 173.2463.16, we’re introducing some improvements and fixes to working with test data. Let’s take a look at what’s new.
For those that don’t know, the IntelliJ Platform comes with a test framework we can use to test language features added by plugins. The tests themselves are functional tests – we run an in-memory, headless version of the IDE that can load test data, such as projects and source files, execute a feature on those files (such as highlighting) and then compare the output of the feature with known good files. If the files match, the test passes. If they don’t, the test fails. More details on this approach can be found in the SDK documentation.
The JetBrains Plugin Repository is an aptly named web service for hosting and finding plugins for IntelliJ-based IDEs and TeamCity, extending the functionality of the products with new features, such as new language, framework or integrations. It’s both a web site and a web service, with a rich front end for searching for new plugins, and an API, used from the IDEs to find and install plugins, and by plugin authors to upload new versions.
As various teams are working on many improvements to the extensibility and plugins at JetBrains, today we’d like to start publishing regular updates on changes introduced on the side of the plugin repository.
We’ve recently made some changes to how we build IntelliJ Platform, specifically in how we handle external dependencies, such as the Kotlin compiler.
IntelliJ Platform is the core code of IntelliJ IDEA, and powers all of our IDEs – IDEA Ultimate, WebStorm, PyCharm, Rider, and so on. It’s also an open source project, making up most of the IntelliJ IDEA Community Edition repo, and can be used to build your own IDEs that make use of IntelliJ’s editors, user interface and infrastructure for projects, rich language parsing, refactoring, navigation, testing and much more, just like Android Studio and the Cursive Clojure IDE do.
Of course, building a product as complex as IntelliJ IDEA Community Edition requires a number of external dependencies, such as the Kotlin compiler and plugin and JetBrains’ own version of the JDK, which contains important fixes for IntelliJ Platform.
From its very early days, JetBrains has been dedicated to making its products available as a platform to extend and build upon. To this date, our public plugin repositories feature 2000+ plugins for IntelliJ Platform, 200+ for ReSharper and 300+ for TeamCity, not counting many private plugins, as well as standalone IDEs built on top of IntelliJ Platform.
With so much happening in the plugins and extensions development ecosystem, we are currently working in various directions to make plugin development for all JetBrains products an even more pleasant experience.
To share more news around plugin development and related topics with you, and to discuss our ideas and get feedback, today we are launching several brand-new resources. All are targeting plugin and extension developers for various JetBrains tools, which at this moment include IntelliJ Platform, ReSharper Platform, and TeamCity Platform.
Posted in General