| <!-- |
| 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> |