<idea-plugin>
  <id>fuchsia.developer.plugin.fidl</id>
  <name>FIDL</name>
  <version>0.19</version>
  <vendor
      url="https://fuchsia.googlesource.com/intellij-language-fidl/">The Fuchsia Authors
  </vendor>
  <category>Languages</category>

  <description><![CDATA[
    <a href="https://fuchsia.dev/fuchsia-src/development/languages/fidl/">FIDL</a> Plugin for IntelliJ.<br>
    <h2> Features </h2>
    <ul>
    <li> Syntax and Semantic Highlighting </li>
    <li> Error highlighting </li>
    </ul>
    ]]></description>

  <change-notes><![CDATA[
      <ul>
        <li><b>0.19</b>
          <ul>
            <li>Remove support for deprecated struct defaults.</li>
            <li>Support for simplified escape sequences</li>
            <li>Drop support for IntelliJ 2019.</li>
          </ul>
        </li>
        <li><b>0.18</b>
          <ul>
            <li>Enabled configurable style/formatting.</li>
            <li>Fixed bug where syntax highlighting was applied incorrectly.</li>
            <li>New checks for string literal correctness.</li>
            <li>Use updated Fuchsia icon.</li>
          </ul>
        </li>
        <li><b>0.17</b>
          <ul>
            <li>Fix crash in version 0.16.</li>
          </ul>
        </li>
        <li><b>0.16</b>
          <ul>
            <li>Updated to support the new (RFC-0050) FIDL syntax.</li>
          </ul>
        </li>
        <li><b>0.15</b>
          <ul>
            <li>Add resource_definition keyword.</li>
            <li>Add alias keyword.</li>
          </ul>
        </li>
        <li><b>0.14</b>
          <ul>
            <li>Add flexible keyword, allow strict on more declarations </li>
            <li>Support union ordinals and remove xunion.</li>
            <li>Support service declarations.</li>
            <li>Improve compatibility with IJ 2019.3, and shrink JAR size</li>
            <li>Support clock handle type.</li>
          </ul>
        </li>
        <li><b>0.13</b>
          <ul>
            <li>Add exception handle subtype and strict keyword for xunion</li>
            <li>Produce error when attributes are added to restricted table fields</li>
            <li>Support strict mode for bits/enums/tables</li>
            <li>Add new subtypes for handles: iommu, pcidevice, pmt, suspendtoken, vcpu</li>
          </ul>
        </li>
        <li><b>0.12</b>
          <ul>
            <li>Add spell checker for doc comments</li>
            <li>Add support for doc comments on type alias declarations</li>
            <li>Fix bug around spurious errors for negative numbers.</li>
          </ul>
        </li>
        <li><b>0.11</b>
          <ul>
            <li>Pull several errors out of grammar into syntax highlighter (also, make grammar more accurate)</li>
            <li>Allow type aliases anywhere a top level declaration is allowed.</li>
          </ul>
        </li>
        <li><b>0.10</b>
          <ul>
            <li>Add structure view.</li>
            <li>Add generalized type aliasing</li>
          </ul>
        </li>
        <li><b>0.9</b>
          <ul>
            <li>Add support for bytes keyword.</li>
            <li>Amended bits and enum members to require values.</li>
          </ul>
        </li>
        <li><b>0.8</b>
          <ul>
            <li>Add support for bits syntax and binary numeric literals.</li>
            <li>Remove support for interface syntax.</li>
          </ul>
        </li>
        <li><b>0.7</b>
          <ul>
            <li>Add protocol support, deprecate interface support</li>
            <li>Remove explicit ordinal support</li>
            <li>Add doc comment support to interfaces</li>
          </ul>
        <li><b>0.6</b>
          <ul>
            <li>Add temporary support for extensible unions.</li>
            <li>Add support for error syntax.</li>
            <li>Add support for attributes / doc comments in a few more places.</li>
          </ul>
        </li>
        <li><b>0.5</b>
          <ul>
            <li>Fix for exception in syntax highlighter init</li>
          </ul>
        </li>
        <li><b>0.4</b>
          <ul>
            <li>Expanded support for context-sensitive keywords</li>
            <li>Deprecated ordinals.</li>
          </ul>
        </li>
        <li><b>0.3</b>
           <ul>
             <li>Add support for context-sensitive keywords</li>
             <li>Bug fix for ambiguous grammar</li>
           </ul>
        </li>
        <li><b>0.2</b> Add table support</li>
        <li><b>0.1</b> Initial support for parsing and syntax highlighting</li>
      </ul>
    ]]>
  </change-notes>

  <!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description -->
  <idea-version since-build="201.0"/>

  <!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
       on how to target different products -->
  <depends>com.intellij.modules.lang</depends>

  <extensions defaultExtensionNs="com.intellij">
    <fileType name="FIDL file" implementationClass="fuchsia.developer.plugin.fidl.FileType"
        fieldName="INSTANCE" language="FIDL" extensions="fidl"/>
    <lang.parserDefinition language="FIDL"
        implementationClass="fuchsia.developer.plugin.fidl.FidlParserDefinition"/>
    <lang.syntaxHighlighterFactory language="FIDL"
        implementationClass="fuchsia.developer.plugin.fidl.FidlSyntaxHighlighterFactory"/>
    <annotator language="FIDL" implementationClass="fuchsia.developer.plugin.fidl.ContextAwareHighlighter"/>
    <lang.psiStructureViewFactory language="FIDL"
        implementationClass="fuchsia.developer.plugin.fidl.StructureViewFactory"/>
    <spellchecker.support language="FIDL" implementationClass="fuchsia.developer.plugin.fidl.FidlSpellcheckingStrategy"/>
    <codeStyleSettingsProvider implementation="fuchsia.developer.plugin.fidl.FidlCodeStyleSettingsProvider"/>
    <langCodeStyleSettingsProvider
           implementation="fuchsia.developer.plugin.fidl.FidlLanguageCodeStyleSettingsProvider"/>

  </extensions>

  <actions>
    <!-- Add your actions here -->
  </actions>

</idea-plugin>
