<!-- Plugin Configuration File for mpp-idea Compose UI module -->
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
    <id>cc.unitmesh.devins.idea</id>
    <name>Xiuper</name>
    <vendor email="h@phodal.com" url="https://github.com/phodal">Phodal</vendor>

    <description><![CDATA[
    <strong>AutoDev Xiuper: One Platform. All Phases. Every Device.</strong><br/>
    AutoDev Xiuper - Provides Compose-based UI components for IntelliJ IDEA 2025.2+.
    This module leverages Jewel theme for native IDE integration with DevIn language support.
    ]]></description>

    <!-- Required for Compose support in IDEA 252+ -->
    <dependencies>
        <module name="intellij.platform.compose"/>
        <plugin id="org.jetbrains.plugins.terminal"/>
        <!-- DevIn language support for @ and / completion -->
        <plugin id="org.intellij.plugins.markdown"/>
        <plugin id="com.jetbrains.sh"/>
        <plugin id="Git4Idea"/>
        <!-- Required for JsonLanguage detection -->
        <plugin id="com.intellij.modules.json"/>
    </dependencies>

    <resource-bundle>messages.AutoDevIdeaBundle</resource-bundle>

    <extensions defaultExtensionNs="com.intellij">
        <!-- Project-level service for coroutine scope management -->
        <projectService serviceImplementation="cc.unitmesh.devins.idea.services.CoroutineScopeHolder"/>
        <!-- Project-level service for tool configuration state management -->
        <projectService serviceImplementation="cc.unitmesh.devins.idea.services.IdeaToolConfigService"/>
        <!-- Project-level service for Omnibar data provider -->
        <projectService serviceImplementation="cc.unitmesh.devins.idea.omnibar.IdeaOmnibarDataProvider"/>
        <!-- Project-level service for multimodal image upload and vision analysis -->
        <projectService serviceImplementation="cc.unitmesh.devins.idea.editor.multimodal.IdeaMultimodalService"/>
        <!-- ToolWindow for Agent UI with tab-based navigation (Advanced version) -->
        <toolWindow factoryClass="cc.unitmesh.devins.idea.toolwindow.IdeaAgentToolWindowFactory"
                    id="Xiuper Agents"
                    anchor="right"
                    secondary="false"
                    icon="cc.unitmesh.devins.idea.AutoDevIcons.ToolWindow"/>

        <!-- NanoDSL Split Editor with Compose Preview -->
        <fileEditorProvider implementation="cc.unitmesh.devins.idea.editor.NanoDSLComposeSplitEditorProvider"/>
    </extensions>

    <!-- Include core extensions and extension points -->
    <xi:include href="/META-INF/autodev-core.xml" xpointer="xpointer(/idea-plugin/*)"/>

    <!-- Include DevIn language extensions -->
    <xi:include href="/cc.unitmesh.devti.language.xml" xpointer="xpointer(/idea-plugin/*)"/>

    <!-- Include NanoDSL language extensions -->
    <xi:include href="/cc.unitmesh.nanodsl.language.xml" xpointer="xpointer(/idea-plugin/*)"/>

    <content>
        <!-- language modules -->
        <module name="cc.unitmesh.pycharm"/>
        <module name="cc.unitmesh.idea"/>
        <module name="cc.unitmesh.kotlin"/>
        <module name="cc.unitmesh.javascript"/>
        <module name="cc.unitmesh.go"/>
        <module name="cc.unitmesh.rust"/>
        <!--        <module name="cc.unitmesh.csharp"/>-->

        <!-- extension modules -->
        <module name="cc.unitmesh.database"/>
        <module name="cc.unitmesh.terminal"/>
        <module name="cc.unitmesh.git"/>
    </content>
</idea-plugin>

