blob: 9ab920de0fa9966d8d6974247529f1f732ce508f [file] [log] [blame]
<!--
Copyright 2019 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
<id>androidx.compose.plugins.idea</id>
<name>Jetpack Compose</name>
<description><![CDATA[
Adds support for building native UI on Android via the <a href="https://developer.android.com/jetpack/compose">Jetpack Compose</a> toolkit.
]]></description>
<category>Android</category>
<vendor url="http://www.android.com">Android, JetBrains</vendor>
<depends>org.jetbrains.android</depends>
<depends>com.intellij.java</depends>
<depends>org.jetbrains.kotlin</depends>
<dependencies>
<module name="intellij.json.split"/>
</dependencies>
<extensions defaultExtensionNs="com.intellij">
<dependencySupport coordinate="androidx.compose.runtime:runtime" kind="java" displayName="Jetpack Compose"/>
<annotator language="kotlin" implementationClass="com.android.tools.compose.code.state.ComposeStateReadAnnotator"/>
<additionalTextAttributes scheme="Default" file="colorschemes/ComposeColorSchemeDefault.xml"/>
<additionalTextAttributes scheme="Darcula" file="colorschemes/ComposeColorSchemeDarcula.xml"/>
<colorSettingsPage implementation="com.android.tools.compose.ComposeColorSettingsPage"/>
<intentionAction>
<className>com.android.tools.compose.intentions.ComposeSurroundWithWidgetActionGroup</className>
<category>Compose Android</category>
</intentionAction>
<intentionAction>
<className>com.android.tools.compose.intentions.ComposeUnwrapAction</className>
<category>Compose Android</category>
</intentionAction>
<intentionAction>
<className>com.android.tools.compose.intentions.ComposeWrapModifiersAction</className>
<category>Compose Android</category>
</intentionAction>
<lang.foldingBuilder language="kotlin" implementationClass="com.android.tools.compose.ComposeFoldingBuilder"/>
<defaultLiveTemplates file="templates/AndroidCompose.xml"/>
<defaultLiveTemplates file="templates/AndroidComposePreview.xml"/>
<liveTemplateContext contextId="COMPOSE" implementation="com.android.tools.compose.templates.ComposeEnabledTemplateContextType"/>
<liveTemplateContext contextId="COMPOSE_KOTLIN" baseContextId="COMPOSE" implementation="com.android.tools.compose.templates.ComposeKotlinTemplateContextType$Generic"/>
<liveTemplateContext contextId="COMPOSE_KOTLIN_TOP_LEVEL" baseContextId="COMPOSE_KOTLIN" implementation="com.android.tools.compose.templates.ComposeKotlinTemplateContextType$TopLevel"/>
<liveTemplateContext contextId="COMPOSE_KOTLIN_STATEMENT" baseContextId="COMPOSE_KOTLIN" implementation="com.android.tools.compose.templates.ComposeKotlinTemplateContextType$Statement"/>
<liveTemplateContext contextId="COMPOSE_KOTLIN_CLASS" baseContextId="COMPOSE_KOTLIN" implementation="com.android.tools.compose.templates.ComposeKotlinTemplateContextType$Class"/>
<liveTemplateContext contextId="COMPOSE_KOTLIN_EXPRESSION" baseContextId="COMPOSE_KOTLIN" implementation="com.android.tools.compose.templates.ComposeKotlinTemplateContextType$Expression"/>
<liveTemplateContext contextId="COMPOSE_KOTLIN_COMMENT" baseContextId="COMPOSE_KOTLIN" implementation="com.android.tools.compose.templates.ComposeKotlinTemplateContextType$Comment"/>
<liveTemplateContext contextId="COMPOSE_KOTLIN_OBJECT_DECLARATION" baseContextId="COMPOSE_KOTLIN" implementation="com.android.tools.compose.templates.ComposeKotlinTemplateContextType$ObjectDeclaration"/>
<codeCompletionConfigurable instance="com.android.tools.compose.ComposeCodeCompletionConfigurable"/>
<codeStyleSettingsProvider implementation="com.android.tools.compose.settings.ComposeFormattingCodeStyleSettingsProvider"/>
<completion.contributor language="kotlin"
id="ComposeCompletionContributor"
implementationClass="com.android.tools.compose.code.completion.ComposeCompletionContributor"
order="first, before KotlinCompletionContributor, before kind_executor"/>
<completion.contributor language="kotlin"
id="ComposeAlignmentCompletionContributor"
implementationClass="com.android.tools.compose.code.completion.ComposePositioningCompletionContributor"
order="first, before KotlinCompletionContributor"/>
<completion.contributor language="kotlin"
implementationClass="com.android.tools.compose.code.completion.ComposeModifierCompletionContributor"
order="first, before ComposeCompletionContributor"/>
<completion.contributor language="JSON"
id="MotionSceneCompletionContributor"
implementationClass="com.android.tools.compose.code.completion.constraintlayout.ConstraintLayoutJsonCompletionContributor"
order="first, before JsonCompletionContributor"/>
<weigher key="completion"
implementationClass="com.android.tools.compose.code.completion.ComposeCompletionWeigher"
id="android.compose"
order="first"/>
<weigher key="completion"
implementationClass="com.android.tools.compose.code.completion.ComposePositioningCompletionWeigher"
id="ComposePositioningCompletionWeigher"
order="first"/>
<weigher key="proximity"
implementationClass="com.android.tools.compose.code.actions.ComposeProximityWeigher"
id="composeProximityWeigher"
order="before javaInheritance" />
<lang.inspectionSuppressor language="kotlin" implementationClass="com.android.tools.compose.ComposeSuppressor"/>
<postFormatProcessor implementation="com.android.tools.compose.formatting.ComposePostFormatProcessor"/>
<automaticRenamerFactory implementation="com.android.tools.compose.ComposableElementAutomaticRenamerFactory"/>
<debugger.positionManagerFactory implementation="com.android.tools.compose.debug.ComposePositionManagerFactory"/>
<debugger.kotlinStackFrameValueContributor implementation="com.android.tools.compose.debug.recomposition.ComposeValueContributor"/>
<debuggerClassFilterProvider implementation="com.android.tools.compose.debug.ComposeDebuggerClassesFilterProvider"/>
<xdebugger.settings implementation="com.android.tools.compose.debug.ComposeDebuggerSettings"/>
<xdebugger.breakpointType implementation="com.android.tools.compose.debug.ComposeFunctionBreakpointType"/>
<debugger.javaBreakpointHandlerFactory implementation="com.android.tools.compose.debug.ComposeFunctionBreakpointHandlerFactory"/>
<debugger.compoundRendererProvider id="SnapshotMutableStateImplRenderer"
implementation="com.android.tools.compose.debug.render.SnapshotMutableStateImplRendererProvider"
order="first"/>
<debugger.compoundRendererProvider id="DerivedSnapshotStateRenderer"
implementation="com.android.tools.compose.debug.render.DerivedSnapshotStateRendererProvider"
order="first"/>
<debugger.compoundRendererProvider id="ComposeStateObjectListRenderer"
implementation="com.android.tools.compose.debug.render.ComposeStateObjectListRendererProvider"
order="first"/>
<debugger.compoundRendererProvider id="ComposeStateObjectMapRenderer"
implementation="com.android.tools.compose.debug.render.ComposeStateObjectMapRendererProvider"
order="first"/>
<debugger.compoundRendererProvider id="KotlinMapEntryRenderer"
implementation="com.android.tools.compose.debug.render.KotlinMapEntryRenderer"
order="first"/>
<itemPresentationProvider
forClass="org.jetbrains.kotlin.psi.KtFunction"
implementationClass="com.android.tools.compose.ComposableItemPresentationProvider"
order="first"
/>
<iconProvider implementation="com.android.tools.compose.ComposableIconProvider" order="first" />
<registryKey key="androidx.compose.debugger.recomposition.node"
description="Add a node to the debugger view of a composable function that describes why the function is being recomposed"
defaultValue="true"
restartRequired="false"/>
<overrideImplementsAnnotationsFilter id="ComposeOverrideImplementsAnnotationsFilter"
implementation="com.android.tools.compose.ComposeOverrideImplementsAnnotationsFilter"/>
<codeInsight.lineMarkerProvider language="kotlin"
implementationClass="com.android.tools.compose.code.ComposeLineMarkerProviderDescriptor" />
<codeInsight.lineMarkerProvider language="kotlin"
implementationClass="com.android.tools.compose.ComposeColorLineMarkerProviderDescriptor" />
<usageGroupingRuleProvider implementation="com.android.tools.compose.ComposeUsageGroupingRuleProvider" />
<codeInsight.declarativeInlayProvider language="kotlin"
implementationClass="com.android.tools.compose.code.state.ComposeStateReadInlayHintsProvider"
isEnabledByDefault="false"
group="OTHER_GROUP"
providerId="compose.state.read"
bundle="messages.ComposeBundle"
nameKey="state.read.inlay.provider.name"
descriptionKey="state.read.inlay.provider.description"/>
<codeInsight.inlayActionHandler implementationClass="com.android.tools.compose.code.state.ComposeStateReadInlayActionHandler"
handlerId="compose.state.read" />
</extensions>
<extensions defaultExtensionNs="org.jetbrains.kotlin.extensions.internal">
<typeResolutionInterceptorExtension implementation="androidx.compose.compiler.plugins.kotlin.k1.ComposeTypeResolutionInterceptorExtension"/>
</extensions>
<extensions defaultExtensionNs="org.jetbrains.kotlin.idea.debugger.base.util">
<classNameCalculator implementation="com.android.tools.compose.debug.ComposeClassNameCalculator"/>
</extensions>
<actions>
<group id="android.device.liveedit.status.group" class="com.android.tools.idea.editors.liveedit.ui.LiveEditNotificationGroup">
<add-to-group group-id="StreamingToolbarSecondary" anchor="last"/>
</group>
<action id="android.device.liveedit.status" class="com.android.tools.idea.editors.liveedit.ui.LiveEditNotificationAction">
<add-to-group group-id="StreamingToolbarSecondary" anchor="last"/>
</action>
</actions>
<xi:include href="plugin.k1.xml" includeUnless="idea.kotlin.plugin.use.k2" />
<xi:include href="plugin.k2.xml" includeIf="idea.kotlin.plugin.use.k2"/>
</idea-plugin>