<!--
  Copyright 2020 Google Inc.

  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 url="https://github.com/google/google-java-format/tree/master/idea_plugin">
  <id>google-java-format</id>
  <name>google-java-format</name>
  <vendor url="https://github.com/google/google-java-format">
    Google
  </vendor>

  <!-- Mark it as available on all JetBrains IDEs. It's really only useful in
       IDEA and Android Studio, but there's no way to specify that for some
       reason. It won't crash PyCharm or anything, so whatever. -->
  <depends>com.intellij.modules.lang</depends>

  <change-notes><![CDATA[
    <dl>
      <dt>1.8.0.1</dt>
      <dd>Fixed support for 2020.2 IDEs.<dd>
      <dt>1.8.0.0</dt>
      <dd>Updated to use google-java-format 1.8.<dd>
      <dt>1.7.0.5</dt>
      <dd>Added a version for 2020.1+ IDEs.</dd>
      <dt>1.7.0.4</dt>
      <dd>Marked the plugin as being incompatible with 2020.1+ IDEs.</dd>
      <dt>1.7.0.3</dt>
      <dd>Fixed the plugin on 2019.3 IDEs.</dd>
      <dt>1.7.0.2</dt>
      <dd>Added support for all IDEs after 2017.3.</dd>
      <dt>1.7.0.1</dt>
      <dd>Added support for 2019.1 IDEs.</dd>
      <dt>1.7.0.0</dt>
      <dd>Upgraded to google-java-format 1.7.</dd>
    </dl>
  ]]></change-notes>

  <applicationListeners>
    <listener class="com.google.googlejavaformat.intellij.InitialConfigurationProjectManagerListener"
              topic="com.intellij.openapi.project.ProjectManagerListener"/>
    <listener class="com.google.googlejavaformat.intellij.GoogleJavaFormatInstaller"
              topic="com.intellij.openapi.project.ProjectManagerListener"/>
  </applicationListeners>

  <extensions defaultExtensionNs="com.intellij">
    <projectConfigurable instance="com.google.googlejavaformat.intellij.GoogleJavaFormatConfigurable"
                         id="google-java-format.settings"
                         displayName="google-java-format Settings"/>
    <projectService serviceImplementation="com.google.googlejavaformat.intellij.GoogleJavaFormatSettings"/>
  </extensions>

</idea-plugin>
