Kotlin Plugin for Eclipse

Add this URL to your Eclipse Installation to reach this solution's update site.

2022-12 (4.26), 2022-09 (4.25), 2022-06 (4.24), 2022-03 (4.23), 2021-12 (4.22), 2021-09 (4.21), 2021-06 (4.20), 2021-03 (4.19), 2020-12 (4.18), 2020-09 (4.17), 2020-06 (4.16), 2020-03 (4.15), 2019-12 (4.14), 2019-09 (4.13), 2019-06 (4.12), 2019-03 (4.11), 2023-03 (4.27), 2023-06 (4.28), 2023-09 (4.29), 2023-12 (4.30), 2024-03 (4.31), 2024-06 (4.32), 2024-09 (4.33)

https://files.pkg.jetbrains.space/kotlin/p/kotlin-eclipse/main/last/

Learn more...
Solution Description

The Kotlin Plugin for Eclipse helps you write, run, debug and test programs in Kotlin language.

Categories: Editor, IDE, Languages

Additional Details

Eclipse Versions: 2022-12 (4.26), 2022-09 (4.25), 2022-06 (4.24), 2022-03 (4.23), 2021-12 (4.22), 2021-09 (4.21), 2021-06 (4.20), 2021-03 (4.19), 2020-12 (4.18), 2020-09 (4.17), 2020-06 (4.16), 2020-03 (4.15), 2019-12 (4.14), 2019-09 (4.13), 2019-06 (4.12), 2019-03 (4.11), 2023-03 (4.27), 2023-06 (4.28), 2023-09 (4.29), 2023-12 (4.30), 2024-03 (4.31), 2024-06 (4.32), 2024-09 (4.33)

Platform Support: Windows, Mac, Linux/GTK

Organization Name: JetBrains

Development Status: Alpha

Date Created: Wednesday, March 25, 2015 - 19:04

License: Apache 2.0

Date Updated: Friday, October 6, 2023 - 10:49

Submitted by: company JetBrains

Screenshot
Date Ranking Installs Clickthroughs
November 2024 38/601 350 8
October 2024 45/663 796 17
September 2024 38/642 892 30
August 2024 37/641 864 34
July 2024 41/663 805 29
June 2024 47/681 804 24
May 2024 47/682 857 32
April 2024 47/687 904 20
March 2024 42/694 1073 22
February 2024 39/687 907 21
January 2024 39/691 1077 27
December 2023 36/671 1030 23
View Data for all Listings

Marketplace Drag to Install Button

By adding the following code below to your website you will be able to add an install button for Kotlin Plugin for Eclipse.

HTML Code:

Markdown Syntax:

Output:

Drag to your running Eclipse* workspace. *Requires Eclipse Marketplace Client

Reviews Add new review

After installation of the Kotlin plugin the Java plugin is not running anymore. I cannot open a Java project anymore.

The log file says:

!MESSAGE org/eclipse/jdt/internal/ui/refactoring/actions/RenameJavaElementAction$AjcClosure1
!STACK 0
java.lang.NoClassDefFoundError: org/eclipse/jdt/internal/ui/refactoring/actions/RenameJavaElementAction$AjcClosure1
    at org.eclipse.jdt.ui.actions.RenameAction.<init>(RenameAction.java:60)
    at org.eclipse.jdt.ui.actions.RefactorActionGroup.<init>(RefactorActionGroup.java:372)
    at org.eclipse.jdt.ui.actions.RefactorActionGroup.<init>(RefactorActionGroup.java:206)
    at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.<init>(PackageExplorerActionGroup.java:139)
    at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.makeActions(PackageExplorerPart.java:796)
    at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.createPartControl(PackageExplorerPart.java:516)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:158)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityView.createPartControl(CompatibilityView.java:155)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:365)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:987)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:952)
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:141)
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:395)
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:322)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)
    at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:132)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:995)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:659)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$1.run(PartRenderingEngine.java:544)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:528)
    at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:73)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:995)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:659)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
    at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1344)
    at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:116)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:677)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
    at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
    at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:150)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:673)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
    at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
    at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:150)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:673)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
    at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
    at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:51)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:673)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
    at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:82)
    at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:116)
    at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.postProcess(PerspectiveStackRenderer.java:64)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:677)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
    at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
    at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:150)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:673)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
    at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
    at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:658)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:673)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1083)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jdt.internal.ui.refactoring.actions.RenameJavaElementAction$AjcClosure1 cannot be found by org.eclipse.jdt.ui_3.29.0.v20230525-0728
    at org.eclipse.osgi.internal.loader.BundleLoader.generateException(BundleLoader.java:541)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:536)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
    ... 107 more

It showed an error... It is pasted below...

Cannot complete the install because one or more required items could not be found.
Software being installed: Kotlin 1.5.31.v20211018-0606 (org.jetbrains.kotlin.feature.feature.group 1.5.31.v20211018-0606]
Missing requirement: kotlin-eclipse-ui 1.5.31.v20211018-0606 (org.jetbrains.kotlin.ui 1.5.31.v20211018-0606) requires org.eclipse.mylyn.commons.ui 0.0.0' but it could not be found
Cannot satisfy dependency:
From: Kotlin 1.5.31.v20211018-0606 (org.jetbrains.kotlin.feature.feature.group 1.5.31.v20211018-0606)
org.eclipse.equinox.p2.iu; org.jetbrains.kotlin.ui [1.5.31.v20211018-0606,1.5.31.v20211018-0606]

If you have this error, please follow this step to install Kotlin Plugin.

Step 1: Install Mylin. You can refer the link below.

https://marketplace.eclipse.org/content/mylyn

Step 2: Try Installing Kotlin Again after restarting the eclipse IDE

The Kotlin Plugin for Eclipse (GitHub JetBrains/kotlin-eclipse project) is a dead/unsupported plugin that hasn't worked for a couple of years. Don't bother installing it because it will just break the JDT Package Explorer and other features. At least they finally stopped incrementing the "Eclipse Versions:"

Cannot complete the install because one or more required items could not be found.
  Software being installed: Kotlin 1.5.31.v20211018-0606 (org.jetbrains.kotlin.feature.feature.group 1.5.31.v20211018-0606)
  Missing requirement: kotlin-eclipse-ui 1.5.31.v20211018-0606 (org.jetbrains.kotlin.ui 1.5.31.v20211018-0606) requires 'osgi.bundle; org.eclipse.mylyn.commons.ui 0.0.0' but it could not be found
  Cannot satisfy dependency:
    From: Kotlin 1.5.31.v20211018-0606 (org.jetbrains.kotlin.feature.feature.group 1.5.31.v20211018-0606)
    To: org.eclipse.equinox.p2.iu; org.jetbrains.kotlin.ui [1.5.31.v20211018-0606,1.5.31.v20211018-0606]

Is this not maintened?

The version is 8 month old and it crashes instantly when trying to compile or open a .kt file...

I wanted to try Kotlin, but I don't want to be dependant on Jetbrains for it.

I get the following error when trying to install it:

"Unable to read repository at download.jetbrains.com/kotlin/eclipse-plugin/1.5.31/content.xml.

Received fatal alert: handshake_failure"

Completely unusable, it crashes whenever I open a kotlin file (and on Eclipse start when there was a file open) with:

java.lang.StackOverflowError
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:380)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:489)
    at org.jetbrains.kotlin.storage.StorageKt.getValue(storage.kt:42) [...]

In reply to by Daniel Schaarschmidt

I guess it's not completely abandoned (yet). The just released new version 1.5.31 fixes the StackOverflowError.

But editing Kotlin Scripts is still impossible because the Jetbrains Youtrack-Issue KE-360 still exists leading to the error: "Cannot access script base class 'org.jetbrains.kotlin.core.script.template.ProjectScriptTemplate'

This happens with Gradle Build Scripts in Kotlin as well as with a new Kotlin Project and new Kotlin Script in it.

Can you please update this plugin? Why is it even abandoned? If we want to use Kotlin we have to go with IntelliJ? This sucks guys.. please update your stuff.

Added kotlin plugin to STS 4.Now the debug feature is completely broken ,as STS is not able to fire the debug event  at all in both java as well as kotlin.

Gradle projects with Kotlin plugin do not get configured properly after Import or Refresh: 

* Project Nature is not set correctly on Import

* Project and Classpath files are left in an invalid state after Refresh (Need to Remove and Re-Add Kotlin Nature).

 

Some other things that don't function as expected:

* Launchers for SpringBoot Applications throw errors about not finding the type

* Open Declaration (F3) doesn't work for mixed Kotlin/Java

* Changing the Kotlin Compiler JVM target version from the default 1.6 breaks the preference page if you don't fill in the JDK Home. Need to uninstall and reinstall to reset it.

I've spent the last few  hours fighting with this plugin. The problem I am having was reported 3 years ago and people are still using unofficial hacks from forum posts to get code deployed to tomcat. The recommended solution is "Buy and use IntelliJ".

 

Maven works, and the kotlin and java code compile and work correctly when using maven only. I have confirmed this by deploying to a tomcat installation outside eclipse.

 

So it seems the Kotlin dev team do not care about this plugin (integration was nowhere near as seamless as it is with IntelliJ), and It seems like Kotlin is treated as a second class citizen on everything but IntellliJ/Android Studio, in an attempt to get more sales.

 

I will be reverting to Java

Run away! The plugin is crap and in general Kotlin is crap nothing works just the eyecandy features forget about java interopability and many more promise

Trying to install produces a popup with the message:
Security Warning: Installing unsigned software for which the authenticity or validity cannot be established.
If this plugin is unsigned, how can we verify that what we download and run is safe?
 

Kotlin plugin for Eclipse is currently painful to use.  If you try to use it in a mixed Java, Xtend, Kotlin project setup, it barely works and constantly throws 'Analysis Error'.  Further, unit testing is completely busted as tests are not compiled for Eclipse and you get constant ClassNotFoundExceptions.

Just upgraded to 0.8.15
Eclipse Version: 2018-12 (4.10.0)
             Build id: 20181214-0600

i´m doing a spring-boot project with kotlin, and in the main class runApplication it show me the error:

Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper '-jvm-target' option

But in Project Properties >> Kotlin Compiler >> JMV target version the option 1.8 is selected. And the project runs without problem

On a clean install of Eclipse 2018-12, in a brand new workspace, I installed the Kotlin plugin and then I created a Kotlin project. When I open a .kt file, the editor fails to startup with the following error:

org.eclipse.core.runtime.CoreException: Plug-in org.jetbrains.kotlin.ui was unable to load class org.jetbrains.kotlin.ui.editors.KotlinFileEditor.

I tried this on a kotin project created from the "New" wizard and also on new maven project to which I added the kotlin nature.

When I import the mixed-java-kotlin-hello-world (from JetBrains kotlin-examples on Github) into Eclipse the HelloWorld Java class cannot find the KotlinGreetingJointer Kotlin class.  I also cannot run Kotlin unit tests using the plugin.

Description    Resource    Path    Location    Type
KotlinGreetingJoiner cannot be resolved to a type    HelloWorld.java    /mixed-java-kotlin-hello-world/src/main/java/demo    line 5    Java Problem
 

I installed the kotlin plugin in the last new release of eclipse called Photon. And I can't create Kotlin projects. When I select new project in eclipse I can see the Kotlin project options. And in the preferences I can't see a menu for Kotlin options.

Unable to read repository at htttttps://dl.bintray.com/jetbrains/kotlin/eclipse-plugin/last/content.xml.
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Hello, a kotlin file is displaying an error marker with message 

'when' expression must be exhaustive, add necessary 'BOOLEAN', 'DATE', 'NUMBER', 'STRING', 'TIMESTAMP' branches or 'else' branch instead

but this wrong as I have a case for each branches. The only way to have the error gone is to add an else branch, but this is wrong because if I add an enum value, I will not have error (because of the else) and I could miss to write proper branch for the new value.

By the way do you have some bug tracking system, where we could raised issues on the plugin ?

Is it possible to create a multi-platform project (MPP) with Eclipse Oxygen (latest release)? I cannot achieve to create a multi-platform-project as described in the Kotlin Language reference. It is possible to do that in IntelliJ IDEA 2017.3 EAP. 

Will MPP support be available in the future?