<idea-plugin>
    <id>com.rovo.lsp</id>
    <name>Rovo LSP</name>
    <vendor email="dev@arthurdw.com" url="https://github.com/Arthurdw/rovo">Rovo</vendor>

    <description><![CDATA[
    <p>Language Server Protocol (LSP) support for Rovo framework annotations in Rust. Write cleaner, more maintainable OpenAPI-style documentation directly in your Rust code with intelligent IDE support.</p>

    <h3>Features</h3>
    <ul>
        <li><strong>Smart completions</strong> - Auto-complete for Rovo section headers and metadata annotations with helpful snippets</li>
        <li><strong>Hover documentation</strong> - Detailed information for section headers, metadata annotations, status codes, and security schemes</li>
        <li><strong>Real-time diagnostics</strong> - Instant feedback on syntax errors and invalid section headers or metadata annotations</li>
        <li><strong>Code actions</strong> - Quick fixes for common issues</li>
        <li><strong>Navigation</strong> - Go to definition, find usages, and rename support for tags</li>
        <li><strong>Syntax highlighting</strong> - Context-aware highlighting for section headers, metadata annotations, status codes, and security schemes</li>
    </ul>

    <h3>Requirements</h3>
    <p>Install the matching version of <code>rovo-lsp</code>:</p>
    <pre>cargo install rovo-lsp --version 0.4.5</pre>
    <p>The plugin will automatically detect the LSP server from common locations or your system PATH.</p>

    <h3>Usage Example</h3>
    <pre>
/// Get user by ID
///
/// # Responses
///
/// 200: Json&lt;User&gt; - Successfully retrieved user
/// 404: Json&lt;Error&gt; - User not found
///
/// # Metadata
///
/// @tag users
/// @security bearer
#[rovo]
async fn get_user(id: i64) -&gt; impl IntoApiResponse {
    // Implementation
}</pre>
    ]]></description>

    <change-notes><![CDATA[
    <h3>Version 0.1.0</h3>
    <ul>
        <li>Initial release</li>
        <li>Context-aware syntax highlighting for Rovo annotations</li>
        <li>Support for RustRover, IntelliJ IDEA, and CLion</li>
    </ul>
    ]]></change-notes>

    <!-- Compatible with IntelliJ IDEA 2024.3 and later -->
    <idea-version since-build="243"/>

    <!-- Plugin dependencies -->
    <depends>com.intellij.modules.platform</depends>
    <depends optional="true" config-file="rust-support.xml">org.rust.lang</depends>
    <depends>com.redhat.devtools.lsp4ij</depends>

    <extensions defaultExtensionNs="com.intellij">
        <notificationGroup id="Rovo" displayType="BALLOON"/>
    </extensions>

    <extensions defaultExtensionNs="com.redhat.devtools.lsp4ij">
        <server id="rovoLanguageServer"
                name="Rovo LSP"
                factoryClass="com.rovo.lsp.RovoLanguageServerFactory">
            <description>Language server for Rovo framework annotations</description>
        </server>
        <languageMapping language="Rust"
                         serverId="rovoLanguageServer"
                         languageId="rust"/>
    </extensions>
</idea-plugin>
