## Meaning of Versions

Versions are defined in `build.gradle.kts`.

`intellij.version` is used for -
1. Building the plugin, so the source code needs to be compatible with it.
2. Determining the _maximum_ supported version. This means that it needs to be updated every time a new IntelliJ _Branch_ version is released. For example, 2021.1, 2021.2, etc.

`tasks.patchPluginXml.sinceBuild` is used for -
1. Determinig the _minimum_ supported version, so the code must not reference classes not introduced yet.


## Testing

* Use Gradle to run the plugin.
* _Don't_ use IntelliJ to run the plugin.

```
ktfmt/ktfmt_idea_plugin $ ./gradlew runIde
```

Point `intellij.alternativeIdePath` in `build.gradle.kts` to a local installation of IntelliJ / Android Studio to test the plugin with it. Don't forget to enable the plugin. Easiest way: Cmd-shift-A, type 'ktfmt', look for Preferences.

Another way: change `intellij.version` and comment out `alternativeIdePath`. This will run the plugin on whatever version you put - it'll be downloaded through Gradle.