Webinar Recording: How We Built Comma, the Raku IDE, on the IntelliJ Platform

The recording of our January 16 webinar, How We Built Comma, the Raku IDE, on the IntelliJ Platform featuring Jonathan Worthington, is now available. Subscribe to our community newsletter to receive notifications about future webinars.

This webinar tells the story of how Edument built an IDE for the Raku programming language using the IntelliJ Platform. Building an IDE from scratch would have been prohibitively expensive. By contrast, building on the IntelliJ Platform meant starting from a mature base, getting a great deal of generic IDE functionality for free, and therefore being able to focus on the parts of the experience specific to the Raku language.

Continue reading

Posted in IntelliJ Platform | Tagged , , , | Leave a comment

Planned maintenance January 19, 2020

JetBrains Account and sales-related applications will have 3 hours of scheduled downtime on January 19, 2020, starting at 9 am CET. Since Marketplace has integrations with these services, the following functionality will not be available during this period:

  • Uploading new plugins and new versions of the plugins
  • Editing plugins information
  • Buying paid plugins
  • Showing sales information for paid plugins authors

In addition, it will not be possible to verify acceptance of the license agreement, so users of plugins.jetbrains.com will see a banner with a link to the agreement and it will be assumed that they accept it.

There could also be unforeseen problems with the application, and we sincerely appreciate your understanding for any inconvenience this downtime may cause.

Regards,
The JetBrains Marketplace team

Posted in Plugin Repository | Leave a comment

Introducing JetBrains Platform Slack for plugin developers

Marketplace LogoWe are introducing a JetBrains Platform Slack to help the JetBrains plugin development community keep in touch.

This Slack is NOT an official support channel. It is a place where the community hang out along with some members of the JetBrains team (:jetbrains: icon jb.)

For official support, please use the support channels, where messages are also persisted.

JetBrains Platform Slack aims to be an inclusive space that is committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof.)

For this to be the case, it is vital that we all follow a basic set of guidelines and most importantly adhere to a code of conduct. As such, please make sure you read the Code of Conduct and Basic Usage Guidelines in its entirety.

Get an instant invitation to JetBrains Platform Slack.

Continue reading

Posted in General, Plugin Repository | Tagged , | Leave a comment

Deprecation Notice: Login/Password Authentication in the plugins.jetbrains.com API Replaced with Token-based Authentication

We would like you to be informed that the login/password authentication method previously available in the https://plugins.jetbrains.com API has been replaced with token-based authentication. This will help improve the security of your plugins. We ask that you switch to the new auth method as soon as possible.

The JetBrains Hub authentication policies have changed as we’ve introduced mandatory two-factor authentication. For this reason, the login/password option for publishing your plugins to https://plugins.jetbrains.com via the API will stop working on August 26, 2019.

If you are using plugin-repository-rest-client or gradle-intellij-plugin, you should pass the token instead of both username and password.

Should you have any questions, feel free to write to us at plugins-admin@jetbrains.com or leave a comment to this blog post.

Happy Developing!
The JetBrains Marketplace Team

Posted in IntelliJ Platform, Plugin Repository, ReSharper Platform, TeamCity Platform | Tagged , , , | 1 Comment

JetBrains Marketplace is Live

Last September, we announced the start of the JetBrains Marketplace Early Access Program, and we are very grateful to the 100+ individual plugin developers and companies who participated in this EAP and shared their feedback with the Marketplace team. It was a fantastic journey for all of us, and it definitely proved that we have a community of plugin developers for JetBrains tools who are truly awesome!

JetBrains Marketplace platform is an evolutionary new step for the plugins repository which turns it into a marketplace for third-party plugin developers to sell their plugins and take advantage of an out-of-the-box licensing and billing solution provided by JetBrains.

It is time to move on and remove the EAP flag from our project page. We are pleased to announce that starting today, we have 10 third-party plugins proudly being sold and licensed via the JetBrains Marketplace. You can apply to have your own paid plugin be a part of this journey here.

blog

Continue reading

Posted in General, IntelliJ Platform, Plugin Repository | Tagged , , , , , | Leave a comment

Java functionality extracted as a plugin

In the latest EAP build of IntelliJ IDEA 2019.2 we’ve extracted Java functionality into a separate plugin. This separates the Java implementation from the “platform” part of IntelliJ IDEA and introduces some flexibility for the future. For example, we could include Java functionality as a plugin to other products, and other plugins such as Gradle can now take optional dependencies on Java, and still work if Java isn’t available.

The new plugin is not visible in Settings | Plugins and cannot be switched off, so there should be no impact on end users. However, if you’re writing a plugin for IntelliJ IDEA you may need to make some small changes to continue working correctly.

Firstly, if your plugin depends on the Java part of the IntelliJ API, you will need to declare this dependency in your plugin.xml file, by adding the following line:

You might have this line in your  plugin.xml already, as this is the recommended way of declaring a dependency on the Java functionality, even for earlier versions of IntelliJ IDEA. However, it is now required, to ensure that your plugin can access classes from the Java plugin at runtime. See the Plugin Compatibility with IntelliJ Platform Products page for more details on dependencies.

Secondly, if you’re developing a plugin using gradle-intellij-plugin, you need to tell Gradle about the Java plugin. Add the following to build.gradle in order to include classes from the Java plugin into the compilation classpath, and tell the IDE to load the plugin at runtime:

Please let us know if you have any issues.

Posted in IntelliJ Platform | Tagged , , , | 9 Comments

Creating Custom Themes for IntelliJ Platform IDEs

Beginning with the 2019.1 release, Custom UI Themes can be provided by 3rd party authors to customize the whole Look and Feel of the IDE.

customtheme

Customization is done by packaging a Theme descriptor file (JSON format) as a plugin. Most themes will change the colors of the UI, but replacing icons, changing the appearance of borders, and bundling editor schemes are also possible. By the way, the bundled “ High contrast” theme uses the same mechanism.

After uploading the Custom UI Theme plugin to the JetBrains Plugin Repository (plugins.jetbrains.com), it can easily be installed right from the IDE’s plugin manager and activated via Preferences | Appearance & Behavior | Appearance “Theme” combo box.

darktheme

Get started today by following the detailed tutorial we’ve added to the IntelliJ Platform SDK docs that will walk you through the process of creating a custom Theme. As a reference, you can also take peek at the provided sample Theme plugin.

Posted in IntelliJ Platform | 20 Comments

JetBrains Marketplace service to replace ReSharper gallery on January 30th, 2019

We would like to inform all the ReSharper Platform plugin developers that the ReSharper gallery server is being retired and will be soon turned off. All the plugins from the ReSharper gallery will be migrated to the JetBrains Marketplace. All new plugins and plugin updates should be uploaded to there after the migration is finished.

resharper_plugins_prior_announcement

The migration will be performed on January 30th, 2019. As a result of this change, any existing NuGet API keys will no longer be valid. A new token must be obtained from JetBrains Hub as described in the documentation. Also, you need login at JetBrains Marketplace after January 30th, to verify that your plugins were migrated and you are able to manage them.

We have already sent the e-mail notification to all the developers with plugins published in the ReSharper Gallery, and will post the update here as soon as the migration is successfully completed.

If you have any issues with recovering ownership of your plugins or any other questions, please contact us.

Develop with pleasure,
JetBrains Marketplace Team

Posted in Plugin Repository, ReSharper Platform | Tagged , , | 2 Comments

Cleaning up tags on GitHub

Since we started development on IDEA, every nightly build of each IntelliJ-based IDE was tagged in the intellij-community repository on GitHub. After 18 years of development and having 10 products, we now have more than 68,000 tags in the repository! This many tags causes performance issues with git, in particular, every git fetch is very slow.

To improve the experience of working with the intellij-community repository, both for us and for our contributors, we have removed these tags. We’re currently deciding on whether they are needed on GitHub and what our tagging strategy will be going forward.

If you need a specific tag that isn’t available in the  intellij-community repo on GitHub (e.g. for an EAP, a release version or a different product) you can still find it in the git mirror on git.jetbrains.org which will be keeping all of the tags. For convenience, a couple of scripts were added to the project to work with the mirror – one to fetch a single tag by name, and another to list all tags.

Posted in IntelliJ Platform | Tagged , | Leave a comment

Updated guidance for module JARs in IntelliJ based IDEs

When building an IntelliJ based IDE, we’ve historically packed class files from implementation modules into a single big JAR. For example, for IntelliJ IDEA Ultimate this was idea.jar. However most of the classes in that JAR were IntelliJ Platform classes which are included in all IntelliJ-based IDEs. In IntelliJ IDEA 2018.1 we extracted such common classes to a separate platform-impl.jar file. Similarly, we extracted common platform API classes from openapi.jar to  platform-api.jar. This can help to decrease build and startup time for the IDE, and also makes layout of different IDEs more consistent.

Now we’re recommending that you do the same for your own IntelliJ-based IDEs. The change is rather simple, when listing the modules using the ProductModulesLayout class, you should now list only your product specific API and implementation modules, using the new  productApiModules and productImplementationModules properties (note the prefix is product!).

The platfromApiModules and platformImplementationModules properties you would have been using previously are now deprecated, and should be left unassigned, in which case the default behaviour is to pack the modules listed in CommunityRepositoryModules#PLATFORM_API_MODULES into platform-api.jar, and CommunityRepositoryModules#PLATFORM_IMPLEMENTATION_MODULES into platform-imp.jar. You can read more details in the javadocs for ProductModulesLayout.

You can see how straightforward the change is by taking a look at how it was done for PyCharm Edu in this commit.

 

Posted in IntelliJ Platform | Tagged , , | Leave a comment