Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump detekt-formatting from 1.14.2 to 1.15.0 #73

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Dec 21, 2020

Bumps detekt-formatting from 1.14.2 to 1.15.0.

Release notes

Sourced from detekt-formatting's releases.

v1.15.0

  • 2020-12-18
Notable Changes

detekt 1.15.0 bundles Kotlin 1.4.10.
You may experience some known issues when your project already used 1.4.20

In addition to many rule improvements, there are also new ones:

  • RedundantHigherOrderMapUsage
  • ListAllWhenCases
  • UseIfEmptyOrIfBlank

We added documentation on how to configure type resolution.
Only the rules marked with Requires Type Resolution are run ( e.g. https://detekt.github.io/detekt/style.html#forbiddenmethodcall).

detekt now supports SARIF as an output format. In the future you will be able to upload this format to GitHub and see detekt issues right in your pull requests.

Migration

We removed implementations of the Config interface from the public api.
It was first deprecated and then moved to internal package earlier this year.
Rule authors can use TestConfig(Map) or yamlConfig(String) from detekt-test to test their rules.

  • Move internal config api to core module - #3163
Changelog
  • NamedArguments: fix false positive with java method call - #3290
  • Prepare 1.15.0 rc2 - #3286
  • UnconditionalJumpStatementInLoop: don't report a return after a conditional jump
  • Add MuseDev to the list of integrations - #3284
  • Fix ForbiddenComment rule not checking for KDoc - #3275
  • ForbiddenComments don't report TODO: in KDoc - #3273
  • Add IntelliJ platform plugin template integration to readme - #3270
  • Bundle new sarif output format by default - #3268
  • Add a test for UnusedImports with annotations used as attributes #3246
  • Add documentation page on type resolution - #3225
  • ThrowsCount rule: fix false positive with nested function - #3223
  • False positive in ThrowsCount rule - #3222
  • Refactor UnsafeCallOnNullableType rule - #3221
  • Fix false negatives in UnreachableCode rule - #3220
  • False negatives in UnreachableCode rule - #3219
  • Refactor RedundantElseInWhen to use compiler warning - #3214

... (truncated)

Commits
  • 37f0a1d NamedArguments: fix false positive with varargs (#3294)
  • 3409f39 Inline UnconditionalJumpStatementInLoop case files (#3296)
  • cc14640 Standardize "active" constant (#3292)
  • 2e89bd4 NamedArguments: fix false positive with java method call (#3290)
  • cea1e9f UnconditionalJumpStatementInLoop: don't report a return after a conditional j...
  • 9434d33 Update Spek to v2.0.15 (#3287)
  • 8513ed6 Prepare 1.15.0 rc2 (#3286)
  • 84e42ec Fix ForbiddenComment rule not checking for KDoc (#3275)
  • 481dab9 Bundle new sarif output format by default (#3268)
  • abd1310 Add MuseDev to the list of integrations (#3284)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [detekt-formatting](https://github.com/detekt/detekt) from 1.14.2 to 1.15.0.
- [Release notes](https://github.com/detekt/detekt/releases)
- [Commits](detekt/detekt@v1.14.2...v1.15.0)

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Dec 21, 2020
@hsz hsz merged commit 0260531 into main Dec 21, 2020
@hsz hsz deleted the dependabot/gradle/io.gitlab.arturbosch.detekt-detekt-formatting-1.15.0 branch December 21, 2020 10:17
austintraver added a commit to austintraver/austintraver-professor-theme-intellij that referenced this pull request Mar 3, 2021
diff --git .github/dependabot.yml .github/dependabot.yml
new file mode 100644
index 0000000..70d86ad
--- /dev/null
+++ .github/dependabot.yml
@@ -0,0 +1,9 @@
+# Dependabot configuration:
+# https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/configuration-options-for-dependency-updates
+
+version: 2
+updates:
+  - package-ecosystem: "gradle"
+    directory: "/"
+    schedule:
+      interval: "daily"
diff --git .github/readme/draft-release.png .github/readme/draft-release.png
new file mode 100644
index 0000000..00a4be8
Binary files /dev/null and .github/readme/draft-release.png differ
diff --git .github/readme/run-debug-configurations.png .github/readme/run-debug-configurations.png
new file mode 100644
index 0000000..d19c09a
Binary files /dev/null and .github/readme/run-debug-configurations.png differ
diff --git .github/readme/run-logs.png .github/readme/run-logs.png
new file mode 100644
index 0000000..f493c5a
Binary files /dev/null and .github/readme/run-logs.png differ
diff --git .github/readme/settings-secrets.png .github/readme/settings-secrets.png
new file mode 100644
index 0000000..a877734
Binary files /dev/null and .github/readme/settings-secrets.png differ
diff --git .github/readme/use-this-template.png .github/readme/use-this-template.png
new file mode 100644
index 0000000..4d43798
Binary files /dev/null and .github/readme/use-this-template.png differ
diff --git .github/template-cleanup/CHANGELOG.md .github/template-cleanup/CHANGELOG.md
new file mode 100644
index 0000000..619f92d
--- /dev/null
+++ .github/template-cleanup/CHANGELOG.md
@@ -0,0 +1,7 @@
+<!-- Keep a Changelog guide -> https://keepachangelog.com -->
+
+# %NAME% Changelog
+
+## [Unreleased]
+### Added
+- Initial scaffold created from [IntelliJ Platform Plugin Template](https://github.com/JetBrains/intellij-platform-plugin-template)
diff --git .github/template-cleanup/README.md .github/template-cleanup/README.md
new file mode 100644
index 0000000..b3d285b
--- /dev/null
+++ .github/template-cleanup/README.md
@@ -0,0 +1,40 @@
+# %NAME%
+
+![Build](https://github.com/%REPOSITORY%/workflows/Build/badge.svg)
+[![Version](https://img.shields.io/jetbrains/plugin/v/PLUGIN_ID.svg)](https://plugins.jetbrains.com/plugin/PLUGIN_ID)
+[![Downloads](https://img.shields.io/jetbrains/plugin/d/PLUGIN_ID.svg)](https://plugins.jetbrains.com/plugin/PLUGIN_ID)
+
+## Template ToDo list
+- [x] Create a new [IntelliJ Platform Plugin Template][template] project.
+- [ ] Verify the [pluginGroup](/gradle.properties), [plugin ID](/src/main/resources/META-INF/plugin.xml) and [sources package](/src/main/kotlin).
+- [ ] Review the [Legal Agreements](https://plugins.jetbrains.com/docs/marketplace/legal-agreements.html).
+- [ ] [Publish a plugin manually](https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html?from=IJPluginTemplate) for the first time.
+- [ ] Set the Plugin ID in the above README badges.
+- [ ] Set the [Deployment Token](https://plugins.jetbrains.com/docs/marketplace/plugin-upload.html).
+- [ ] Click the <kbd>Watch</kbd> button on the top of the [IntelliJ Platform Plugin Template][template] to be notified about releases containing new features and fixes.
+
+<!-- Plugin description -->
+This Fancy IntelliJ Platform Plugin is going to be your implementation of the brilliant ideas that you have.
+
+This specific section is a source for the [plugin.xml](/src/main/resources/META-INF/plugin.xml) file which will be extracted by the [Gradle](/build.gradle.kts) during the build process.
+
+To keep everything working, do not remove `<!-- ... -->` sections.
+<!-- Plugin description end -->
+
+## Installation
+
+- Using IDE built-in plugin system:
+
+  <kbd>Settings/Preferences</kbd> > <kbd>Plugins</kbd> > <kbd>Marketplace</kbd> > <kbd>Search for "%NAME%"</kbd> >
+  <kbd>Install Plugin</kbd>
+
+- Manually:
+
+  Download the [latest release](https://github.com/%REPOSITORY%/releases/latest) and install it manually using
+  <kbd>Settings/Preferences</kbd> > <kbd>Plugins</kbd> > <kbd>⚙️</kbd> > <kbd>Install plugin from disk...</kbd>
+
+
+---
+Plugin based on the [IntelliJ Platform Plugin Template][template].
+
+[template]: https://github.com/JetBrains/intellij-platform-plugin-template
diff --git .github/template-cleanup/gradle.properties .github/template-cleanup/gradle.properties
new file mode 100644
index 0000000..a22b18c
--- /dev/null
+++ .github/template-cleanup/gradle.properties
@@ -0,0 +1,22 @@
+# IntelliJ Platform Artifacts Repositories
+# -> https://plugins.jetbrains.com/docs/intellij/intellij-artifacts.html
+
+pluginGroup = %GROUP%
+pluginName = %NAME%
+pluginVersion = 0.0.1
+pluginSinceBuild = 202
+pluginUntilBuild = 203.*
+# Plugin Verifier integration -> https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl
+# See https://jb.gg/intellij-platform-builds-list for available build versions
+pluginVerifierIdeVersions = 2020.2.4, 2020.3.2, 2021.1
+
+platformType = IC
+platformVersion = 2020.2.4
+platformDownloadSources = true
+# Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html
+# Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22
+platformPlugins =
+
+# Opt-out flag for bundling Kotlin standard library.
+# See https://kotlinlang.org/docs/reference/using-gradle.html#dependency-on-the-standard-library for details.
+kotlin.stdlib.default.dependency = false
diff --git .github/template-cleanup/settings.gradle.kts .github/template-cleanup/settings.gradle.kts
new file mode 100644
index 0000000..34ec91d
--- /dev/null
+++ .github/template-cleanup/settings.gradle.kts
@@ -0,0 +1 @@
+rootProject.name = "%NAME%"
diff --git .github/workflows/build.yml .github/workflows/build.yml
new file mode 100644
index 0000000..e98c5be
--- /dev/null
+++ .github/workflows/build.yml
@@ -0,0 +1,246 @@
+# GitHub Actions Workflow created for testing and preparing the plugin release in following steps:
+# - validate Gradle Wrapper,
+# - run test and verifyPlugin tasks,
+# - run buildPlugin task and prepare artifact for the further tests,
+# - run IntelliJ Plugin Verifier,
+# - create a draft release.
+#
+# Workflow is triggered on push and pull_request events.
+#
+# Docs:
+# - GitHub Actions: https://help.github.com/en/actions
+# - IntelliJ Plugin Verifier GitHub Action: https://github.com/ChrisCarini/intellij-platform-plugin-verifier-action
+#
+## JBIJPPTPL
+
+name: Build
+on: [push, pull_request]
+jobs:
+
+  # Run Gradle Wrapper Validation Action to verify the wrapper's checksum
+  gradleValidation:
+    name: Gradle Wrapper
+    runs-on: ubuntu-latest
+    steps:
+
+      # Check out current repository
+      - name: Fetch Sources
+        uses: actions/checkout@v2
+
+      # Validate wrapper
+      - name: Gradle Wrapper Validation
+        uses: gradle/[email protected]
+
+  # Run verifyPlugin and test Gradle tasks
+  test:
+    name: Test
+    needs: gradleValidation
+    runs-on: ubuntu-latest
+    steps:
+
+      # Setup Java 1.8 environment for the next steps
+      - name: Setup Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+
+      # Check out current repository
+      - name: Fetch Sources
+        uses: actions/checkout@v2
+
+      # Cache Gradle dependencies
+      - name: Setup Gradle Dependencies Cache
+        uses: actions/cache@v2
+        with:
+          path: ~/.gradle/caches
+          key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts', 'gradle.properties') }}
+
+      # Cache Gradle Wrapper
+      - name: Setup Gradle Wrapper Cache
+        uses: actions/cache@v2
+        with:
+          path: ~/.gradle/wrapper
+          key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}
+
+      # Run detekt, ktlint and tests
+      - name: Run Linters and Test
+        run: ./gradlew check
+
+      # Run verifyPlugin Gradle task
+      - name: Verify Plugin
+        run: ./gradlew verifyPlugin
+
+  # Build plugin with buildPlugin Gradle task and provide the artifact for the next workflow jobs
+  # Requires test job to be passed
+  build:
+    name: Build
+    needs: test
+    runs-on: ubuntu-latest
+    outputs:
+      name: ${{ steps.properties.outputs.name }}
+      version: ${{ steps.properties.outputs.version }}
+      changelog: ${{ steps.properties.outputs.changelog }}
+      artifact: ${{ steps.properties.outputs.artifact }}
+    steps:
+
+      # Setup Java 1.8 environment for the next steps
+      - name: Setup Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+
+      # Check out current repository
+      - name: Fetch Sources
+        uses: actions/checkout@v2
+
+      # Cache Gradle Dependencies
+      - name: Setup Gradle Dependencies Cache
+        uses: actions/cache@v2
+        with:
+          path: ~/.gradle/caches
+          key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts', 'gradle.properties') }}
+
+      # Cache Gradle Wrapper
+      - name: Setup Gradle Wrapper Cache
+        uses: actions/cache@v2
+        with:
+          path: ~/.gradle/wrapper
+          key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}
+
+      # Set environment variables
+      - name: Export Properties
+        id: properties
+        shell: bash
+        run: |
+          PROPERTIES="$(./gradlew properties --console=plain -q)"
+          VERSION="$(echo "$PROPERTIES" | grep "^version:" | cut -f2- -d ' ')"
+          NAME="$(echo "$PROPERTIES" | grep "^pluginName:" | cut -f2- -d ' ')"
+          CHANGELOG="$(./gradlew getChangelog --unreleased --no-header --console=plain -q)"
+          CHANGELOG="${CHANGELOG//'%'/'%25'}"
+          CHANGELOG="${CHANGELOG//$'\n'/'%0A'}"
+          CHANGELOG="${CHANGELOG//$'\r'/'%0D'}"
+          ARTIFACT="${NAME}-${VERSION}.zip"
+
+          echo "::set-output name=version::$VERSION"
+          echo "::set-output name=name::$NAME"
+          echo "::set-output name=changelog::$CHANGELOG"
+          echo "::set-output name=artifact::$ARTIFACT"
+
+      # Build artifact using buildPlugin Gradle task
+      - name: Build Plugin
+        run: ./gradlew buildPlugin
+
+      # Upload plugin artifact to make it available in the next jobs
+      - name: Upload artifact
+        uses: actions/upload-artifact@v1
+        with:
+          name: plugin-artifact
+          path: ./build/distributions/${{ steps.properties.outputs.artifact }}
+
+  # Verify built plugin using IntelliJ Plugin Verifier tool
+  # Requires build job to be passed
+  verify:
+    name: Verify
+    needs: build
+    runs-on: ubuntu-latest
+    steps:
+
+      # Setup Java 1.8 environment for the next steps
+      - name: Setup Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+
+      # Check out current repository
+      - name: Fetch Sources
+        uses: actions/checkout@v2
+
+      # Cache Gradle Dependencies
+      - name: Setup Gradle Dependencies Cache
+        uses: actions/cache@v2
+        with:
+          path: ~/.gradle/caches
+          key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts', 'gradle.properties') }}
+
+      # Cache Gradle Wrapper
+      - name: Setup Gradle Wrapper Cache
+        uses: actions/cache@v2
+        with:
+          path: ~/.gradle/wrapper
+          key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}
+
+      # Set environment variables
+      - name: Export Properties
+        id: properties
+        shell: bash
+        run: |
+          PROPERTIES="$(./gradlew properties --console=plain -q)"
+          IDE_VERSIONS="$(echo "$PROPERTIES" | grep "^pluginVerifierIdeVersions:" | base64)"
+
+          echo "::set-output name=ideVersions::$IDE_VERSIONS"
+          echo "::set-output name=pluginVerifierHomeDir::~/.pluginVerifier"
+
+      # Cache Plugin Verifier IDEs
+      - name: Setup Plugin Verifier IDEs Cache
+        uses: actions/cache@v2
+        with:
+          path: ${{ steps.properties.outputs.pluginVerifierHomeDir }}/ides
+          key: ${{ runner.os }}-plugin-verifier-${{ steps.properties.outputs.ideVersions }}
+
+      # Run IntelliJ Plugin Verifier action using GitHub Action
+      - name: Verify Plugin
+        run: ./gradlew runPluginVerifier -Pplugin.verifier.home.dir=${{ steps.properties.outputs.pluginVerifierHomeDir }}
+
+  # Prepare a draft release for GitHub Releases page for the manual verification
+  # If accepted and published, release workflow would be triggered
+  releaseDraft:
+    name: Release Draft
+    if: github.event_name != 'pull_request'
+    needs: [build, verify]
+    runs-on: ubuntu-latest
+    steps:
+
+      # Check out current repository
+      - name: Fetch Sources
+        uses: actions/checkout@v2
+
+      # Remove old release drafts by using the curl request for the available releases with draft flag
+      - name: Remove Old Release Drafts
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        run: |
+          curl -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/repos/$GITHUB_REPOSITORY/releases \
+            | tr '\r\n' ' ' \
+            | jq '.[] | select(.draft == true) | .id' \
+            | xargs -I '{}' \
+          curl -X DELETE -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/repos/$GITHUB_REPOSITORY/releases/{}
+
+      # Create new release draft - which is not publicly visible and requires manual acceptance
+      - name: Create Release Draft
+        id: createDraft
+        uses: actions/create-release@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          tag_name: v${{ needs.build.outputs.version }}
+          release_name: v${{ needs.build.outputs.version }}
+          body: ${{ needs.build.outputs.changelog }}
+          draft: true
+
+      # Download plugin artifact provided by the previous job
+      - name: Download Artifact
+        uses: actions/download-artifact@v2
+        with:
+          name: plugin-artifact
+
+      # Upload artifact as a release asset
+      - name: Upload Release Asset
+        id: upload-release-asset
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          upload_url: ${{ steps.createDraft.outputs.upload_url }}
+          asset_path: ./${{ needs.build.outputs.artifact }}
+          asset_name: ${{ needs.build.outputs.artifact }}
+          asset_content_type: application/zip
diff --git .github/workflows/release.yml .github/workflows/release.yml
new file mode 100644
index 0000000..382fa91
--- /dev/null
+++ .github/workflows/release.yml
@@ -0,0 +1,70 @@
+# GitHub Actions Workflow created for handling the release process based on the draft release prepared
+# with the Build workflow. Running the publishPlugin task requires the PUBLISH_TOKEN secret provided.
+
+name: Release
+on:
+  release:
+    types: [prereleased, released]
+
+jobs:
+
+  # Prepare and publish the plugin to the Marketplace repository
+  release:
+    name: Publish Plugin
+    runs-on: ubuntu-latest
+    steps:
+
+      # Setup Java 1.8 environment for the next steps
+      - name: Setup Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+
+      # Check out current repository
+      - name: Fetch Sources
+        uses: actions/checkout@v2
+        with:
+          ref: ${{ github.event.release.tag_name }}
+
+      # Publish the plugin to the Marketplace
+      - name: Publish Plugin
+        env:
+          PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
+        run: ./gradlew publishPlugin
+
+  # Patch changelog, commit and push to the current repository
+  changelog:
+    name: Update Changelog
+    needs: release
+    runs-on: ubuntu-latest
+    steps:
+
+      # Setup Java 1.8 environment for the next steps
+      - name: Setup Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+
+      # Check out current repository
+      - name: Fetch Sources
+        uses: actions/checkout@v2
+        with:
+          ref: ${{ github.event.release.tag_name }}
+
+      # Update Unreleased section with the current version
+      - name: Patch Changelog
+        run: ./gradlew patchChangelog
+
+      # Commit patched Changelog
+      - name: Commit files
+        run: |
+          git config --local user.email "[email protected]"
+          git config --local user.name "GitHub Action"
+          git commit -m "Update changelog" -a
+
+      # Push changes
+      - name: Push changes
+        uses: ad-m/github-push-action@master
+        with:
+          branch: main
+          github_token: ${{ secrets.GITHUB_TOKEN }}
diff --git .github/workflows/template-cleanup.yml .github/workflows/template-cleanup.yml
new file mode 100644
index 0000000..b7b1a53
--- /dev/null
+++ .github/workflows/template-cleanup.yml
@@ -0,0 +1,81 @@
+# GitHub Actions Workflow responsible for cleaning up the IntelliJ Platform Plugin Template repository from
+# the template-specific files and configurations. This workflow is supposed to be triggered automatically
+# when a new template-based repository has been created.
+
+name: Template Cleanup
+on:
+  push:
+    branches:
+      - main
+
+jobs:
+
+  # Run cleaning process only if workflow is triggered by the non-JetBrains/intellij-platform-plugin-template repository.
+  template-cleanup:
+    name: Template Cleanup
+    runs-on: ubuntu-latest
+    if: github.event.repository.name != 'intellij-platform-plugin-template'
+    steps:
+
+      # Check out current repository
+      - name: Fetch Sources
+        uses: actions/checkout@v2
+
+      # Cleanup project
+      - name: Cleanup
+        run: |
+          export LC_CTYPE=C
+          export LANG=C
+
+          # Prepare variables
+          NAME="${GITHUB_REPOSITORY##*/}"
+          ACTOR=$(echo $GITHUB_ACTOR | tr '[:upper:]' '[:lower:]')
+          SAFE_NAME=$(echo $NAME | sed 's/[^a-zA-Z0-9]//g' | tr '[:upper:]' '[:lower:]')
+          SAFE_ACTOR=$(echo $ACTOR | sed 's/[^a-zA-Z0-9]//g' | tr '[:upper:]' '[:lower:]')
+          GROUP="com.github.$SAFE_ACTOR.$SAFE_NAME"
+
+          # Replace placeholders in the template-cleanup files
+          sed -i "s/%NAME%/$NAME/g" .github/template-cleanup/*
+          sed -i "s/%REPOSITORY%/${GITHUB_REPOSITORY/\//\\/}/g" .github/template-cleanup/*
+          sed -i "s/%GROUP%/$GROUP/g" .github/template-cleanup/*
+
+          # Replace template package name in project files with $GROUP
+          find src -type f -exec sed -i "s/org.jetbrains.plugins.template/$GROUP/g" {} +
+          find src -type f -exec sed -i "s/Template/$NAME/g" {} +
+          find src -type f -exec sed -i "s/JetBrains/$ACTOR/g" {} +
+
+          # Remove lines marked with #REMOVE-ON-CLEANUP#
+          find . -type f -exec sed -i '/#REMOVE-ON-CLEANUP#/d' {} +
+
+          # Move content
+          mkdir -p src/main/kotlin/${GROUP//.//}
+          cp -R .github/template-cleanup/* .
+          cp -R src/main/kotlin/org/jetbrains/plugins/template/* src/main/kotlin/${GROUP//.//}/
+
+          # Cleanup
+          rm -rf \
+            .github/readme \
+            .github/template-cleanup \
+            .github/workflows/template-cleanup.yml \
+            .idea/icon.png \
+            src/main/kotlin/org \
+            CODE_OF_CONDUCT.md \
+            LICENSE
+
+          # Run ktlint formatting
+          ./gradlew ktlintFormat
+
+      # Commit modified files
+      - name: Commit files
+        run: |
+          git config --local user.email "[email protected]"
+          git config --local user.name "GitHub Action"
+          git add .
+          git commit -m "Template cleanup"
+
+      # Push changes
+      - name: Push changes
+        uses: ad-m/github-push-action@master
+        with:
+          branch: main
+          github_token: ${{ secrets.GITHUB_TOKEN }}
diff --git .idea/icon.png .idea/icon.png
new file mode 100644
index 0000000..7a34198
Binary files /dev/null and .idea/icon.png differ
diff --git .run/Run IDE with Plugin.run.xml .run/Run IDE with Plugin.run.xml
new file mode 100644
index 0000000..d15ff68
--- /dev/null
+++ .run/Run IDE with Plugin.run.xml
@@ -0,0 +1,24 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="Run Plugin" type="GradleRunConfiguration" factoryName="Gradle">
+    <log_file alias="idea.log" path="$PROJECT_DIR$/build/idea-sandbox/system/log/idea.log" />
+    <ExternalSystemSettings>
+      <option name="executionName" />
+      <option name="externalProjectPath" value="$PROJECT_DIR$" />
+      <option name="externalSystemIdString" value="GRADLE" />
+      <option name="scriptParameters" value="" />
+      <option name="taskDescriptions">
+        <list />
+      </option>
+      <option name="taskNames">
+        <list>
+          <option value="runIde" />
+        </list>
+      </option>
+      <option name="vmOptions" value="" />
+    </ExternalSystemSettings>
+    <ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
+    <ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
+    <DebugAllEnabled>false</DebugAllEnabled>
+    <method v="2" />
+  </configuration>
+</component>
\ No newline at end of file
diff --git .run/Run Plugin Tests.run.xml .run/Run Plugin Tests.run.xml
new file mode 100644
index 0000000..03d0287
--- /dev/null
+++ .run/Run Plugin Tests.run.xml
@@ -0,0 +1,24 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="Run Tests" type="GradleRunConfiguration" factoryName="Gradle">
+    <log_file alias="idea.log" path="$PROJECT_DIR$/build/idea-sandbox/system/log/idea.log" />
+    <ExternalSystemSettings>
+      <option name="executionName" />
+      <option name="externalProjectPath" value="$PROJECT_DIR$" />
+      <option name="externalSystemIdString" value="GRADLE" />
+      <option name="scriptParameters" value="" />
+      <option name="taskDescriptions">
+        <list />
+      </option>
+      <option name="taskNames">
+        <list>
+          <option value="check" />
+        </list>
+      </option>
+      <option name="vmOptions" value="" />
+    </ExternalSystemSettings>
+    <ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
+    <ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
+    <DebugAllEnabled>false</DebugAllEnabled>
+    <method v="2" />
+  </configuration>
+</component>
\ No newline at end of file
diff --git .run/Run Plugin Verification.run.xml .run/Run Plugin Verification.run.xml
new file mode 100644
index 0000000..3a8d688
--- /dev/null
+++ .run/Run Plugin Verification.run.xml
@@ -0,0 +1,26 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="Run Verifications" type="GradleRunConfiguration" factoryName="Gradle">
+    <log_file alias="idea.log" path="$PROJECT_DIR$/build/idea-sandbox/system/log/idea.log" />
+    <ExternalSystemSettings>
+      <option name="executionName" />
+      <option name="externalProjectPath" value="$PROJECT_DIR$" />
+      <option name="externalSystemIdString" value="GRADLE" />
+      <option name="scriptParameters" value="" />
+      <option name="taskDescriptions">
+        <list />
+      </option>
+      <option name="taskNames">
+        <list>
+          <option value="runPluginVerifier" />
+        </list>
+      </option>
+      <option name="vmOptions" value="" />
+    </ExternalSystemSettings>
+    <ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
+    <ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
+    <DebugAllEnabled>false</DebugAllEnabled>
+    <method v="2">
+      <option name="Gradle.BeforeRunTask" enabled="true" tasks="clean" externalProjectPath="$PROJECT_DIR$" vmOptions="" scriptParameters="" />
+    </method>
+  </configuration>
+</component>
\ No newline at end of file
diff --git CHANGELOG.md CHANGELOG.md
new file mode 100644
index 0000000..b9012d4
--- /dev/null
+++ CHANGELOG.md
@@ -0,0 +1,212 @@
+<!-- Keep a Changelog guide -> https://keepachangelog.com -->
+
+# IntelliJ Platform Plugin Template Changelog
+
+## [Unreleased]
+### Added
+- `properties` shorthand function for accessing `gradle.properties` in a cleaner way
+
+## [0.8.3]
+### Changed
+- Dependencies - upgrade `org.jetbrains.intellij` to `0.7.2`
+- Dependencies - upgrade `org.jlleitschuh.gradle.ktlint` to `10.0.0`
+- Update `platformVersion` to `2020.2.4` for compatibility with macOS Big Sur
+- Upgrade Gradle Wrapper to `6.8.3`
+
+## [0.8.2]
+### Changed
+- Use `-bin` distribution of the Gradle Wrapper
+- Upgrade Gradle Wrapper to `6.8.2`
+- Update `pluginVerifierIdeVersions` in `gradle.properties` files
+- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.4.30`
+- Dependencies - upgrade `org.jetbrains.changelog` to `1.1.1`
+- Configure the `changelog` Gradle plugin
+
+## [0.8.1]
+### Added
+- README: Dependencies management section
+
+### Changed
+- Upgrade Gradle Wrapper to `6.8`
+- Dependencies - upgrade `org.jetbrains.changelog` to `1.0.0`
+
+### Fixed
+- Template Cleanup: Escape GitHub username to avoid incorrect characters in class package name
+- Template Cleanup: Run `ktlintFormat` task to fix imports order
+- GitHub Actions: Use the correct property in the "Upload artifact" step
+
+## [0.8.0]
+### Added
+- Dependabot integration
+- Show `idea.log` logs of the run IDE in the Run console
+- README: FAQ section
+
+### Changed
+- `build.gradle.kts`: simpler syntax for configuring `KotlinCompile`
+- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.4.21`
+- Dependencies - upgrade `detekt-formatting` to `1.15.0`
+- Dependencies - upgrade `io.gitlab.arturbosch.detekt` to `1.15.0`
+- README: Clarify the Java usage in the project
+- `pluginVerifierIdeVersions` - upgrade to `2020.1.4, 2020.2.3, 2020.3.1`
+
+### Fixed
+- Return `Supplier<@Nls String>` instead of `String` in `MyBundle.messagePointer`
+
+## [0.7.1]
+### Changed
+- Upgrade Gradle Wrapper to `6.7.1`
+- Dependencies - upgrade `org.jetbrains.intellij` to `0.6.5`
+- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.4.20`
+- Update the base platform version to 2020.1
+- Change since/until build to `201-203.*`
+
+## [0.7.0]
+### Added
+- Predefined Run/Debug Configurations
+- Project icon for development purposes
+
+### Changed
+- Dependencies - upgrade `org.jetbrains.intellij` to `0.6.3`
+
+## [0.6.1]
+### Added
+- GitHub Actions - use hash based on `pluginVerifierIdeVersions` in `Setup Plugin Verifier IDEs Cache` step
+
+### Changed
+- Use [Kotlin extension function](https://plugins.jetbrains.com/docs/intellij/plugin-services.html#retrieving-a-service) to retrieve the `MyProjectService` in the `MyProjectManagerListener`
+- Dependencies - upgrade `org.jetbrains.intellij` to `0.6.2`
+- Update `pluginVerifierIdeVersions` in the `gradle.properties` files
+
+## [0.6.0]
+### Added
+- Integration with [IntelliJ Plugin Verifier](https://github.com/JetBrains/intellij-plugin-verifier) through the [Gradle IntelliJ Plugin](https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl) `runPluginVerifier` task
+- Cache downloaded IDEs used by Plugin Verifier for the verification
+
+### Changed
+- Switch Gradle Wrapper to `-all` to improve the IntelliSense
+- Update detekt config to be in line with IJ settings
+- Dependencies - upgrade `io.gitlab.arturbosch.detekt` to `1.14.2`
+- Dependencies - upgrade `org.jetbrains.intellij` to `0.6.1`
+- GitHub Actions - `gradleValidation` update to `gradle/[email protected]`
+- GitHub Actions - `releaseDraft` update to `actions/download-artifact@v2`
+
+### Removed
+- Remove Third-party IntelliJ Plugin Verifier GitHub Action
+
+## [0.5.1]
+### Added
+- Missing properties in the `gradle.properties` template file
+
+### Changed
+- Upgrade Gradle Wrapper to `6.7`
+- Dependencies - upgrade `org.jetbrains.changelog` to `0.6.2`
+
+## [0.5.0]
+### Added
+- Introduced `platformPlugins` property in `gradle.properties` for configuring dependencies to bundled/external plugins
+
+### Changed
+- Disable "Release Draft" job for pull requests in the "Build" GitHub Actions Workflow
+- Dependencies - upgrade `org.jetbrains.intellij` to `0.5.0`
+- Dependencies - upgrade `org.jetbrains.changelog` to `0.6.1`
+- Dependencies - upgrade `io.gitlab.arturbosch.detekt` to `1.14.1`
+- Dependencies - upgrade `org.jlleitschuh.gradle.ktlint` to `9.4.1`
+- Remove LICENSE file during the Template Cleanup workflow
+
+## [0.4.0]
+### Added
+- Fix default to opt-out of bundling Kotlin standard library in plugin distribution
+
+### Changed
+- GitHub Actions: allow releasing plugin even for the base project
+- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.4.10`
+- Dependencies - upgrade `io.gitlab.arturbosch.detekt` to `1.13.1`
+
+### Fixed
+- `pluginName` variable name collision with `intellij` closure getter in Gradle configuration #29
+
+## [0.3.2]
+### Changed
+- Simplify and optimize GitHub Actions
+- Gradle Wrapper upgrade to `6.6.1`
+- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.4.0`
+- Dependencies - upgrade `org.jetbrains.intellij` to `0.4.22`
+- Dependencies - upgrade `org.jetbrains.changelog` to `0.5.0`
+- Dependencies - upgrade `io.gitlab.arturbosch.detekt` to `1.12.0`
+- Dependencies - upgrade `org.jlleitschuh.gradle.ktlint` to `9.4.0`
+- Rename `master` branch to `main`
+
+### Fixed
+- GitHub Actions - cache Gradle dependencies and wrapper separately
+
+## [0.3.1]
+### Added
+- Better handling of the Gradle plugin description extraction from the README file
+- GitHub Actions - cache Gradle Wrapper
+
+### Changed
+- Gradle - remove kotlin("stdlib-jdk8") dependency to decrease the plugin artifact size
+- Dependencies - bump ktlint to `9.3.0`
+- GitHub Actions - make *Update Changelog* job dependent on the *Publish Plugin*
+
+### Fixed
+- Resolve ktlint reports
+
+## [0.3.1]
+### Changed
+- GitHub Actions - run plugin verifier against `2019.3` `2020.1` `2020.2`
+
+### Fixed
+- GitHub Actions - Plugin Verifier broken for artifacts with whitespaces in name
+
+## [0.3.0]
+### Added
+- Set publish channel depending on the plugin version, i.e. `1.0.0-beta` -> `beta` channel
+
+### Changed
+- Update `org.jetbrains.changelog` dependency to `v0.3.3`
+- Update Gradle Wrapper to `v6.5.1`
+- Run GitHub Actions Release workflow on `prereleased` event
+- GitHub Actions - Release - separate changelog related job from the release
+
+### Fixed
+- Remove vendor website from `plugin.xml`
+- Update Template Cleanup workflow test to avoid running it on forks
+
+## [0.2.0]
+### Added
+- JetBrains Plugin badges and TODO list for the end users
+- `ktlint` integration
+
+### Changed
+- `pluginUntilBuild` set to the correct format: `201.*`
+- Bump detekt dependency to `1.10.0`
+
+### Fixed
+- GitHub Actions - Template Cleanup - fixed adding files to git
+- Update Template plugin name on cleanup
+- Set `buildUponDefaultConfig = true` in detekt configuration
+
+## [0.1.0]
+### Added
+- `settings.gradle.kts` for the [performance purposes](https://docs.gradle.org/current/userguide/organizing_gradle_projects.html#always_define_a_settings_file)
+- `#REMOVE-ON-CLEANUP#` token to mark content to be removed with **Template Cleanup** workflow
+
+### Changed
+- README proofreading
+- GitHub Actions - Update IDE versions for the Plugin Verifier
+- Update platformVersion to `2020.1.2`
+
+## [0.0.2]
+### Added
+- [Gradle Changelog Plugin](https://github.com/JetBrains/gradle-changelog-plugin) integration
+
+### Changed
+- Bump Detekt version
+- Change pluginSinceBuild to 193
+
+## [0.0.1]
+### Added
+- Initial project scaffold
+- GitHub Actions to automate testing and deployment
+- Kotlin support
diff --git CODE_OF_CONDUCT.md CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..85ed20d
--- /dev/null
+++ CODE_OF_CONDUCT.md
@@ -0,0 +1,4 @@
+## Code of Conduct
+
+This project and the corresponding community is governed by the [JetBrains Open Source and Community Code of Conduct](https://confluence.jetbrains.com/display/ALL/JetBrains+Open+Source+and+Community+Code+of+Conduct). Please make sure you read it.
+
diff --git LICENSE LICENSE
new file mode 100644
index 0000000..77057df
--- /dev/null
+++ LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2000-2021 JetBrains s.r.o.
+
+   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.
diff --git README.md README.md
index e69de29..ddc75cd 100644
--- README.md
+++ README.md
@@ -0,0 +1,355 @@
+# IntelliJ Platform Plugin Template
+
+[![official JetBrains project](https://jb.gg/badges/official.svg)][jb:confluence-on-gh]
+[![Twitter Follow](https://img.shields.io/twitter/follow/JBPlatform?style=flat)][jb:twitter]
+[![Build](https://github.com/JetBrains/intellij-platform-plugin-template/workflows/Build/badge.svg)][gh:build]
+[![Slack](https://img.shields.io/badge/Slack-%23intellij--platform--plugin--template-blue)][jb:slack]
+
+> **TL;DR:** Click the <kbd>Use this template</kbd> button and clone it in IntelliJ IDEA.
+
+<!-- Plugin description -->
+**IntelliJ Platform Plugin Template** is a repository that provides a pure boilerplate template to make it easier to create a new plugin project (check the [Creating a repository from a template][gh:template] article).
+
+The main goal of this template is to speed up the setup phase of plugin development for both new and experienced developers by preconfiguring the project scaffold and CI, linking to the proper documentation pages, and keeping everything organized.
+
+[gh:template]: https://help.github.com/en/enterprise/2.20/user/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template
+<!-- Plugin description end -->
+
+If you're still not quite sure what this is all about, read our introduction: [What is the IntelliJ Platform?][docs:intro]
+
+> **TIP**: Click the <kbd>Watch</kbd> button on the top to be notified about releases containing new features and fixes.
+
+
+### Table of contents
+
+In this README, we will highlight the following elements of template-project creation:
+
+- [Getting started](#getting-started)
+- [Gradle configuration](#gradle-configuration)
+- [Plugin template structure](#plugin-template-structure)
+    - [Dependency on the Kotlin standard library](#dependency-on-the-kotlin-standard-library)
+- [Plugin configuration file](#plugin-configuration-file)
+- [Sample code](#sample-code):
+    - listeners – project and dynamic plugin lifecycle
+    - services – project-related and application-related services
+    - actions – basic action with shortcut binding
+- [Predefined Run/Debug configurations](#predefined-rundebug-configurations)
+- [Continuous integration](#continuous-integration) based on GitHub Actions
+    - [Dependencies management](#dependencies-management) with dependabot
+    - [Changelog maintenance](#changelog-maintenance) with the Gradle Changelog Plugin
+    - [Release flow](#release-flow) using GitHub Releases
+    - [Publishing the plugin](#publishing-the-plugin) with the Gradle IntelliJ Plugin
+- [FAQ](#faq)
+- [Useful links](#useful-links)
+
+
+## Getting started
+
+Before we dive into plugin development and everything related to it, it's worth mentioning the benefits of using GitHub Templates. By creating a new project using the current template, you start with no history and no reference to this repository. This allows you to create a new repository easily without having to copy and paste previous content, clone repositories, or clear the history manually.
+
+All you have to do is click the <kbd>Use this template</kbd> button.
+
+![Use this template][file:use-this-template.png]
+
+After using the template to create your blank project, the [Template Cleanup][file:template_cleanup.yml] workflow will be triggered to override or remove any template-specific configurations, such as the plugin name, current changelog, etc. Once this is complete, the project is ready to be cloned to your local environment and opened with [IntelliJ IDEA][jb:download-ij].
+
+For the last step, you have to manually review the configuration variables described in the [gradle.properties][file:gradle.properties] file and *optionally* move sources from the *com.github.username.repository* package to the one that works best for you. Then you can get to work implementing your ideas.
+
+> **TIP:** To use Java in your plugin, create the `/src/main/java` directory.
+
+
+## Gradle configuration
+
+The recommended method for plugin development involves using the [Gradle][gradle] setup with the [gradle-intellij-plugin][gh:gradle-intellij-plugin] installed. The gradle-intellij-plugin makes it possible to run the IDE with your plugin and publish your plugin to the Marketplace Repository.
+
+A project built using the IntelliJ Platform Plugin Template includes a Gradle configuration that's already been set up. Feel free to read through the [Using Gradle][docs:using-gradle] articles to better understand your build and learn how to customize it.
+
+The most significant parts of the current configuration are:
+- Configuration written with [Gradle Kotlin DSL][gradle-kotlin-dsl].
+- Support for Kotlin and Java implementation.
+- Integration with the [gradle-changelog-plugin][gh:gradle-changelog-plugin], which automatically patches the change notes and description based on the `CHANGELOG.md` and `README.md` files.
+- Integration with the [gradle-intellij-plugin][gh:gradle-intellij-plugin] for smoother development.
+- Code linting with [detekt][detekt].
+- [Plugin publishing][docs:publishing] using the token.
+
+The project-specific configuration file [gradle.properties][file:gradle.properties] contains:
+
+| Property name             | Description                                                                                               |
+| ------------------------- | --------------------------------------------------------------------------------------------------------- |
+| `pluginGroup`             | Package name - after *using* the template, this will be set to `com.github.username.repo`.                |
+| `pluginName`              | Plugin name displayed in the Marketplace and the Plugins Repository.                                      |
+| `pluginVersion`           | The current version of the plugin.                                                                        |
+| `pluginSinceBuild`        | The `since-build` attribute of the <idea-version> tag.                                                    |
+| `pluginUntilBuild`        | The `until-build` attribute of the <idea-version> tag.                                                    |
+| `platformType`            | The type of IDE distribution.                                                                             |
+| `platformVersion`         | The version of the IntelliJ Platform IDE that will be used to build the plugin.                           |
+| `platformDownloadSources` | IDE sources downloaded while initializing the Gradle build.                                               |
+| `platformPlugins`         | Comma-separated list of dependencies to the bundled IDE plugins and plugins from the Plugin Repositories. |
+
+The properties listed define the plugin itself or configure the [gradle-intellij-plugin][gh:gradle-intellij-plugin] – check its documentation for more details.
+
+### Dependency on the Kotlin standard library
+
+Since Kotlin 1.4, a dependency on a standard library (`stdlib`) is added automatically.
+In most cases, it is not necessary to distribute this library with a plugin.
+
+The [gradle.properties][file:gradle.properties] file explicitly alters the default behaviour of the Kotlin Gradle plugin by specifying this opt-out property:
+
+```
+kotlin.stdlib.default.dependency = false
+```
+
+For more details, please see: [Dependency on the standard library][kotlin-docs-dependency-on-stdlib] in Kotlin documentation.
+
+
+## Plugin template structure
+
+A generated IntelliJ Platform Plugin Template repository contains the following content structure:
+
+```
+.
+├── .run                    Predefined Run/Debug Configurations
+├── CHANGELOG.md            Full change history.
+├── LICENSE                 License, MIT by default
+├── README.md               README
+├── build/                  Output build directory
+├── build.gradle.kts        Gradle configuration
+├── detekt-config.yml       Detekt configuration
+├── gradle
+│   └── wrapper/            Gradle Wrapper
+├── gradle.properties       Gradle configuration properties
+├── gradlew                 *nix Gradle Wrapper binary
+├── gradlew.bat             Windows Gradle Wrapper binary
+└── src                     Plugin sources
+    └── main
+        ├── kotlin/         Kotlin source files
+        └── resources/      Resources - plugin.xml, icons, messages
+```
+
+In addition to the configuration files, the most crucial part is the `src` directory, which contains our implementation and the manifest for our plugin – [plugin.xml][file:plugin.xml].
+
+> **TIP:** To use Java in your plugin, create the `/src/main/java` directory.
+
+
+## Plugin configuration file
+
+The plugin configuration file is a [plugin.xml][file:plugin.xml] file located in the `src/main/resources/META-INF` directory. It provides general information about the plugin, its dependencies, extensions, and listeners.
+
+```xml
+<idea-plugin>
+    <id>org.jetbrains.plugins.template</id>
+    <name>Template</name>
+    <vendor>JetBrains</vendor>
+    <depends>com.intellij.modules.platform</depends>
+
+    <extensions defaultExtensionNs="com.intellij">
+        <applicationService serviceImplementation="..."/>
+        <projectService serviceImplementation="..."/>
+    </extensions>
+
+    <projectListeners>
+        <listener class="..." topic="..."/>
+    </projectListeners>
+</idea-plugin>
+```
+
+You can read more about this file in the [Plugin Configuration File][docs:plugin.xml] section of our documentation.
+
+
+## Sample code
+
+The prepared template provides as little code as possible because it is impossible for a general scaffold to fulfill all the specific requirements for all types of plugins (language support, build tools, VCS related tools). The template contains only the following files:
+
+```
+.
+├── MyBundle.kt                         Bundle class providing access to the resources messages
+├── listeners
+│   └── MyProjectManagerListener.kt     Project Manager listener - handles project lifecycle
+└── services
+    ├── MyApplicationService.kt         Application-level service available for all projects
+    └── MyProjectService.kt             Project level service
+```
+
+These files are located in `src/main/kotlin`. This location indicates the language being used. So if you decide to use Java instead, sources should be located in the `src/main/java` directory.
+
+To start with the actual implementation, you may check our [IntelliJ Platform SDK DevGuide][docs], which contains an introduction to the essential areas of the plugin development together with dedicated tutorials.
+
+For those, who value example codes the most, there are also available [IntelliJ SDK Code Samples][gh:code-samples] and [IntelliJ Platform Explorer][jb:ipe] – a search tool for browsing Extension Points inside existing implementations of open-source IntelliJ Platform plugins.
+
+
+## Predefined Run/Debug configurations
+
+Within the default project structure, there is a `.run` directory provided containing three predefined *Run/Debug configurations* that expose corresponding Gradle tasks:
+
+![Run/Debug configurations][file:run-debug-configurations.png]
+
+| Configuration name | Description                                                                                                                                                            |
+| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Run Plugin         | Runs [`:runIde`][gh:gradle-intellij-plugin-running-dsl] Gradle IntelliJ Plugin task. Use the *Debug* icon for plugin debugging.                                        |
+| Run Tests          | Runs [`:check`][gradle-lifecycle-tasks] Gradle task that invokes `:test` and `detekt`/`ktlint` code inspections.                                                       |
+| Run Verifications  | Runs [`:runPluginVerifier`][gh:gradle-intellij-plugin-verifier-dsl] Gradle IntelliJ Plugin task to check the plugin compatibility against the specified IntelliJ IDEs. |
+
+
+> **TIP:** You can find the logs from the running task in the `idea.log` tab.
+>
+> ![Run/Debug configuration logs][file:run-logs.png]
+
+
+## Continuous integration
+
+Continuous integration depends on [GitHub Actions][gh:actions], a set of workflows that make it possible to automate your testing and release process. Thanks to such automation, you can delegate the testing and verification phases to the CI and instead focus on development (and writing more tests).
+
+In the `.github/workflows` directory, you can find definitions for the following GitHub Actions workflows:
+
+- [Build](.github/workflows/build.yml)
+    - Triggered on `push` and `pull_request` events.
+    - Runs the *Gradle Wrapper Validation Action* to verify the wrapper's checksum.
+    - Runs the `verifyPlugin` and `test` Gradle tasks.
+    - Builds the plugin with the `buildPlugin` Gradle task and provides the artifact for the next jobs in the workflow.
+    - Verifies the plugin using the *IntelliJ Plugin Verifier* tool.
+    - Prepares a draft release of the GitHub Releases page for manual verification.
+- [Release](.github/workflows/release.yml)
+    - Triggered on `released` event.
+    - Publishes the plugin to the Marketplace using the provided `PUBLISH_TOKEN`.
+    - Sets publish channel depending on the plugin version, i.e. `1.0.0-beta` -> `beta` channel.
+    - Patches the Changelog and commits.
+- [Template Cleanup](.github/workflows/template-cleanup.yml)
+    - Triggered once on the `push` event when a new template-based repository has been created.
+    - Overrides the scaffold with files from the `.github/template-cleanup` directory.
+    - Overrides JetBrains-specific sentences or package names with ones specific to the target repository.
+    - Removes redundant files.
+
+All the workflow files have accurate documentation, so it's a good idea to take a look through their sources.
+
+### Dependencies management
+
+This Template project depends on Gradle plugins and external libraries – and during the development, you will add more of them.
+
+Keeping the project in good shape and having all the dependencies up-to-date requires time and effort, but it is possible to automate that process using [dependabot][gh:dependabot].
+
+Dependabot is a bot provided by GitHub for checking the build configuration files and reviewing any outdated or insecure dependencies of yours – in case if any update is available, it creates a new pull request providing [the proper change][gh:dependabot-pr].
+
+> **Note:** Dependabot doesn't yet support checking of the Gradle Wrapper. Check the [Gradle Releases][gradle-releases] page and update it with:
+> ```bash
+> ./gradlew wrapper --gradle-version 6.8
+> ```
+
+### Changelog maintenance
+
+When releasing an update, it is important to let your users know what the new version offers. The best way to do this is to provide release notes.
+
+The changelog is a curated list that contains information about any new features, fixes, and deprecations. When they are provided, these lists are available in a few different places: the [CHANGELOG.md](./CHANGELOG.md) file, the [Releases page][gh:releases], the *What's new* section of the Marketplace Plugin page, and inside of the Plugin Manager's item details.
+
+There are many methods for handling the project's changelog. The one used in the current template project is the [Keep a Changelog][keep-a-changelog] approach.
+
+### Release flow
+
+The release process depends on the workflows already described above. When your main branch receives a new pull request or a regular push, the [Build](.github/workflows/build.yml) workflow runs multiple tests on your plugin and prepares a draft release.
+
+![Release draft][file:draft-release.png]
+
+The draft release is a working copy of a release, which you can review before publishing. It includes a predefined title and git tag, which is the current version of the plugin, for example, `v0.0.1`. The changelog is provided automatically using the [gradle-changelog-plugin][gh:gradle-changelog-plugin]. An artifact file is also built with the plugin attached. Every new Build overrides the previous draft to keep your *Releases* page clean.
+
+When you edit the draft and use the <kbd>Publish release</kbd> button, GitHub will tag your repository with the given version and add a new entry to the Releases tab. Next, it will notify users that are *watching* the repository, and it will trigger the final [Release](.github/workflows/release.yml) workflow.
+
+### Publishing the plugin
+
+Releasing a plugin to the Marketplace is a straightforward operation that uses the `publishPlugin` Gradle task provided by the [gradle-intellij-plugin][gh:gradle-intellij-plugin]. The [Release](.github/workflows/release.yml) workflow automates this process by running the task when a new release appears in the GitHub Releases section.
+
+> **TIP**: Set a suffix to the plugin version to publish it in the custom repository channel, i.e. `v1.0.0-beta` will push your plugin to the `beta` [release channel][docs:release-channel].
+
+The authorization process relies on the `PUBLISH_TOKEN` secret environment variable, which has to be acquired through the Secrets section of the repository Settings.
+
+![Settings > Secrets][file:settings-secrets.png]
+
+You can get that token in the [My Tokens][jb:my-tokens] tab within your Marketplace profile dashboard.
+
+> **Important:**
+> Before using the automated deployment process, it is necessary to manually create a new plugin in the Marketplace to specify options like the license, repository URL, etc.
+> Please follow the [Publishing a Plugin][docs:publishing] instructions.
+
+
+## FAQ
+
+### How to use Java in my project?
+
+Java language is supported by default along with Kotlin.
+Initially, there's `/src/main/kotlin` directory available with some minimal examples.
+You can still replace it or add next to it the `/src/main/java` to start working with Java language instead.
+
+### How to disable tests or build job using the `[skip ci]` commit message?
+
+You can disable specific tests using the [`if`][github-actions-if] condition, like:
+
+```yaml
+jobs:
+  test:
+    name: Test
+    if: "!contains(github.event.head_commit.message, 'skip ci')"
+    steps:
+      ...
+```
+
+
+## Useful links
+
+- [IntelliJ Platform SDK DevGuide][docs]
+- [IntelliJ Platform Explorer][jb:ipe]
+- [Marketplace Quality Guidelines][jb:quality-guidelines]
+- [IntelliJ Platform UI Guidelines][jb:ui-guidelines]
+- [Marketplace Paid Plugins][jb:paid-plugins]
+- [Kotlin UI DSL][docs:kotlin-ui-dsl]
+- [IntelliJ SDK Code Samples][gh:code-samples]
+- [JetBrains Platform Slack][jb:slack]
+- [JetBrains Platform Twitter][jb:twitter]
+- [IntelliJ IDEA Open API and Plugin Development Forum][jb:forum]
+- [Keep a Changelog][keep-a-changelog]
+- [GitHub Actions][gh:actions]
+
+[docs]: https://plugins.jetbrains.com/docs/intellij?from=IJPluginTemplate
+[docs:intro]: https://plugins.jetbrains.com/docs/intellij/intellij-platform.html?from=IJPluginTemplate
+[docs:kotlin-ui-dsl]: https://plugins.jetbrains.com/docs/intellij/kotlin-ui-dsl.html?from=IJPluginTemplate
+[docs:plugin.xml]: https://plugins.jetbrains.com/docs/intellij/plugin-configuration-file.html?from=IJPluginTemplate
+[docs:publishing]: https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html?from=IJPluginTemplate
+[docs:release-channel]: https://plugins.jetbrains.com/docs/intellij/deployment.html?from=IJPluginTemplate#specifying-a-release-channel
+[docs:using-gradle]: https://plugins.jetbrains.com/docs/intellij/gradle-build-system.html?from=IJPluginTemplate
+
+[file:use-this-template.png]: .github/readme/use-this-template.png
+[file:draft-release.png]: .github/readme/draft-release.png
+[file:gradle.properties]: ./gradle.properties
+[file:run-logs.png]: .github/readme/run-logs.png
+[file:plugin.xml]: ./src/main/resources/META-INF/plugin.xml
+[file:run-debug-configurations.png]: .github/readme/run-debug-configurations.png
+[file:settings-secrets.png]: .github/readme/settings-secrets.png
+[file:template_cleanup.yml]: ./.github/workflows/template-cleanup.yml
+
+[gh:actions]: https://help.github.com/en/actions
+[gh:dependabot]: https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/keeping-your-dependencies-updated-automatically
+[gh:code-samples]: https://github.com/JetBrains/intellij-sdk-code-samples
+[gh:gradle-changelog-plugin]: https://github.com/JetBrains/gradle-changelog-plugin
+[gh:gradle-intellij-plugin]: https://github.com/JetBrains/gradle-intellij-plugin
+[gh:gradle-intellij-plugin-running-dsl]: https://github.com/JetBrains/gradle-intellij-plugin#running-dsl
+[gh:gradle-intellij-plugin-verifier-dsl]: https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl
+[gh:releases]: https://github.com/JetBrains/intellij-platform-plugin-template/releases
+[gh:build]: https://github.com/JetBrains/intellij-platform-plugin-template/actions?query=workflow%3ABuild
+[gh:dependabot-pr]: https://github.com/JetBrains/intellij-platform-plugin-template/pull/73
+
+[jb:confluence-on-gh]: https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub
+[jb:download-ij]: https://www.jetbrains.com/idea/download
+[jb:forum]: https://intellij-suppor…
austintraver pushed a commit to austintraver/austintraver-professor-theme-intellij that referenced this pull request Mar 3, 2021
diff --git .github/readme/draft-release.png .github/readme/draft-release.png
deleted file mode 100644
index 00a4be8..0000000
Binary files .github/readme/draft-release.png and /dev/null differ
diff --git .github/readme/run-debug-configurations.png .github/readme/run-debug-configurations.png
deleted file mode 100644
index d19c09a..0000000
Binary files .github/readme/run-debug-configurations.png and /dev/null differ
diff --git .github/readme/run-logs.png .github/readme/run-logs.png
deleted file mode 100644
index f493c5a..0000000
Binary files .github/readme/run-logs.png and /dev/null differ
diff --git .github/readme/settings-secrets.png .github/readme/settings-secrets.png
deleted file mode 100644
index a877734..0000000
Binary files .github/readme/settings-secrets.png and /dev/null differ
diff --git .github/readme/use-this-template.png .github/readme/use-this-template.png
deleted file mode 100644
index 4d43798..0000000
Binary files .github/readme/use-this-template.png and /dev/null differ
diff --git .github/template-cleanup/CHANGELOG.md .github/template-cleanup/CHANGELOG.md
deleted file mode 100644
index 619f92d..0000000
--- .github/template-cleanup/CHANGELOG.md
+++ /dev/null
@@ -1,7 +0,0 @@
-<!-- Keep a Changelog guide -> https://keepachangelog.com -->
-
-# %NAME% Changelog
-
-## [Unreleased]
-### Added
-- Initial scaffold created from [IntelliJ Platform Plugin Template](https://github.com/JetBrains/intellij-platform-plugin-template)
diff --git .github/template-cleanup/README.md .github/template-cleanup/README.md
deleted file mode 100644
index b3d285b..0000000
--- .github/template-cleanup/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# %NAME%
-
-![Build](https://github.com/%REPOSITORY%/workflows/Build/badge.svg)
-[![Version](https://img.shields.io/jetbrains/plugin/v/PLUGIN_ID.svg)](https://plugins.jetbrains.com/plugin/PLUGIN_ID)
-[![Downloads](https://img.shields.io/jetbrains/plugin/d/PLUGIN_ID.svg)](https://plugins.jetbrains.com/plugin/PLUGIN_ID)
-
-## Template ToDo list
-- [x] Create a new [IntelliJ Platform Plugin Template][template] project.
-- [ ] Verify the [pluginGroup](/gradle.properties), [plugin ID](/src/main/resources/META-INF/plugin.xml) and [sources package](/src/main/kotlin).
-- [ ] Review the [Legal Agreements](https://plugins.jetbrains.com/docs/marketplace/legal-agreements.html).
-- [ ] [Publish a plugin manually](https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html?from=IJPluginTemplate) for the first time.
-- [ ] Set the Plugin ID in the above README badges.
-- [ ] Set the [Deployment Token](https://plugins.jetbrains.com/docs/marketplace/plugin-upload.html).
-- [ ] Click the <kbd>Watch</kbd> button on the top of the [IntelliJ Platform Plugin Template][template] to be notified about releases containing new features and fixes.
-
-<!-- Plugin description -->
-This Fancy IntelliJ Platform Plugin is going to be your implementation of the brilliant ideas that you have.
-
-This specific section is a source for the [plugin.xml](/src/main/resources/META-INF/plugin.xml) file which will be extracted by the [Gradle](/build.gradle.kts) during the build process.
-
-To keep everything working, do not remove `<!-- ... -->` sections.
-<!-- Plugin description end -->
-
-## Installation
-
-- Using IDE built-in plugin system:
-
-  <kbd>Settings/Preferences</kbd> > <kbd>Plugins</kbd> > <kbd>Marketplace</kbd> > <kbd>Search for "%NAME%"</kbd> >
-  <kbd>Install Plugin</kbd>
-
-- Manually:
-
-  Download the [latest release](https://github.com/%REPOSITORY%/releases/latest) and install it manually using
-  <kbd>Settings/Preferences</kbd> > <kbd>Plugins</kbd> > <kbd>⚙️</kbd> > <kbd>Install plugin from disk...</kbd>
-
-
----
-Plugin based on the [IntelliJ Platform Plugin Template][template].
-
-[template]: https://github.com/JetBrains/intellij-platform-plugin-template
diff --git .github/template-cleanup/gradle.properties .github/template-cleanup/gradle.properties
deleted file mode 100644
index a22b18c..0000000
--- .github/template-cleanup/gradle.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-# IntelliJ Platform Artifacts Repositories
-# -> https://plugins.jetbrains.com/docs/intellij/intellij-artifacts.html
-
-pluginGroup = %GROUP%
-pluginName = %NAME%
-pluginVersion = 0.0.1
-pluginSinceBuild = 202
-pluginUntilBuild = 203.*
-# Plugin Verifier integration -> https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl
-# See https://jb.gg/intellij-platform-builds-list for available build versions
-pluginVerifierIdeVersions = 2020.2.4, 2020.3.2, 2021.1
-
-platformType = IC
-platformVersion = 2020.2.4
-platformDownloadSources = true
-# Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html
-# Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22
-platformPlugins =
-
-# Opt-out flag for bundling Kotlin standard library.
-# See https://kotlinlang.org/docs/reference/using-gradle.html#dependency-on-the-standard-library for details.
-kotlin.stdlib.default.dependency = false
diff --git .github/template-cleanup/settings.gradle.kts .github/template-cleanup/settings.gradle.kts
deleted file mode 100644
index 34ec91d..0000000
--- .github/template-cleanup/settings.gradle.kts
+++ /dev/null
@@ -1 +0,0 @@
-rootProject.name = "%NAME%"
diff --git .github/workflows/template-cleanup.yml .github/workflows/template-cleanup.yml
deleted file mode 100644
index b7b1a53..0000000
--- .github/workflows/template-cleanup.yml
+++ /dev/null
@@ -1,81 +0,0 @@
-# GitHub Actions Workflow responsible for cleaning up the IntelliJ Platform Plugin Template repository from
-# the template-specific files and configurations. This workflow is supposed to be triggered automatically
-# when a new template-based repository has been created.
-
-name: Template Cleanup
-on:
-  push:
-    branches:
-      - main
-
-jobs:
-
-  # Run cleaning process only if workflow is triggered by the non-JetBrains/intellij-platform-plugin-template repository.
-  template-cleanup:
-    name: Template Cleanup
-    runs-on: ubuntu-latest
-    if: github.event.repository.name != 'intellij-platform-plugin-template'
-    steps:
-
-      # Check out current repository
-      - name: Fetch Sources
-        uses: actions/checkout@v2
-
-      # Cleanup project
-      - name: Cleanup
-        run: |
-          export LC_CTYPE=C
-          export LANG=C
-
-          # Prepare variables
-          NAME="${GITHUB_REPOSITORY##*/}"
-          ACTOR=$(echo $GITHUB_ACTOR | tr '[:upper:]' '[:lower:]')
-          SAFE_NAME=$(echo $NAME | sed 's/[^a-zA-Z0-9]//g' | tr '[:upper:]' '[:lower:]')
-          SAFE_ACTOR=$(echo $ACTOR | sed 's/[^a-zA-Z0-9]//g' | tr '[:upper:]' '[:lower:]')
-          GROUP="com.github.$SAFE_ACTOR.$SAFE_NAME"
-
-          # Replace placeholders in the template-cleanup files
-          sed -i "s/%NAME%/$NAME/g" .github/template-cleanup/*
-          sed -i "s/%REPOSITORY%/${GITHUB_REPOSITORY/\//\\/}/g" .github/template-cleanup/*
-          sed -i "s/%GROUP%/$GROUP/g" .github/template-cleanup/*
-
-          # Replace template package name in project files with $GROUP
-          find src -type f -exec sed -i "s/org.jetbrains.plugins.template/$GROUP/g" {} +
-          find src -type f -exec sed -i "s/Template/$NAME/g" {} +
-          find src -type f -exec sed -i "s/JetBrains/$ACTOR/g" {} +
-
-          # Remove lines marked with #REMOVE-ON-CLEANUP#
-          find . -type f -exec sed -i '/#REMOVE-ON-CLEANUP#/d' {} +
-
-          # Move content
-          mkdir -p src/main/kotlin/${GROUP//.//}
-          cp -R .github/template-cleanup/* .
-          cp -R src/main/kotlin/org/jetbrains/plugins/template/* src/main/kotlin/${GROUP//.//}/
-
-          # Cleanup
-          rm -rf \
-            .github/readme \
-            .github/template-cleanup \
-            .github/workflows/template-cleanup.yml \
-            .idea/icon.png \
-            src/main/kotlin/org \
-            CODE_OF_CONDUCT.md \
-            LICENSE
-
-          # Run ktlint formatting
-          ./gradlew ktlintFormat
-
-      # Commit modified files
-      - name: Commit files
-        run: |
-          git config --local user.email "[email protected]"
-          git config --local user.name "GitHub Action"
-          git add .
-          git commit -m "Template cleanup"
-
-      # Push changes
-      - name: Push changes
-        uses: ad-m/github-push-action@master
-        with:
-          branch: main
-          github_token: ${{ secrets.GITHUB_TOKEN }}
diff --git .idea/icon.png .idea/icon.png
deleted file mode 100644
index 7a34198..0000000
Binary files .idea/icon.png and /dev/null differ
diff --git CHANGELOG.md CHANGELOG.md
index b9012d4..722e6fa 100644
--- CHANGELOG.md
+++ CHANGELOG.md
@@ -1,212 +1,7 @@
 <!-- Keep a Changelog guide -> https://keepachangelog.com -->

-# IntelliJ Platform Plugin Template Changelog
+# void-theme Changelog

 ## [Unreleased]
 ### Added
-- `properties` shorthand function for accessing `gradle.properties` in a cleaner way
-
-## [0.8.3]
-### Changed
-- Dependencies - upgrade `org.jetbrains.intellij` to `0.7.2`
-- Dependencies - upgrade `org.jlleitschuh.gradle.ktlint` to `10.0.0`
-- Update `platformVersion` to `2020.2.4` for compatibility with macOS Big Sur
-- Upgrade Gradle Wrapper to `6.8.3`
-
-## [0.8.2]
-### Changed
-- Use `-bin` distribution of the Gradle Wrapper
-- Upgrade Gradle Wrapper to `6.8.2`
-- Update `pluginVerifierIdeVersions` in `gradle.properties` files
-- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.4.30`
-- Dependencies - upgrade `org.jetbrains.changelog` to `1.1.1`
-- Configure the `changelog` Gradle plugin
-
-## [0.8.1]
-### Added
-- README: Dependencies management section
-
-### Changed
-- Upgrade Gradle Wrapper to `6.8`
-- Dependencies - upgrade `org.jetbrains.changelog` to `1.0.0`
-
-### Fixed
-- Template Cleanup: Escape GitHub username to avoid incorrect characters in class package name
-- Template Cleanup: Run `ktlintFormat` task to fix imports order
-- GitHub Actions: Use the correct property in the "Upload artifact" step
-
-## [0.8.0]
-### Added
-- Dependabot integration
-- Show `idea.log` logs of the run IDE in the Run console
-- README: FAQ section
-
-### Changed
-- `build.gradle.kts`: simpler syntax for configuring `KotlinCompile`
-- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.4.21`
-- Dependencies - upgrade `detekt-formatting` to `1.15.0`
-- Dependencies - upgrade `io.gitlab.arturbosch.detekt` to `1.15.0`
-- README: Clarify the Java usage in the project
-- `pluginVerifierIdeVersions` - upgrade to `2020.1.4, 2020.2.3, 2020.3.1`
-
-### Fixed
-- Return `Supplier<@Nls String>` instead of `String` in `MyBundle.messagePointer`
-
-## [0.7.1]
-### Changed
-- Upgrade Gradle Wrapper to `6.7.1`
-- Dependencies - upgrade `org.jetbrains.intellij` to `0.6.5`
-- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.4.20`
-- Update the base platform version to 2020.1
-- Change since/until build to `201-203.*`
-
-## [0.7.0]
-### Added
-- Predefined Run/Debug Configurations
-- Project icon for development purposes
-
-### Changed
-- Dependencies - upgrade `org.jetbrains.intellij` to `0.6.3`
-
-## [0.6.1]
-### Added
-- GitHub Actions - use hash based on `pluginVerifierIdeVersions` in `Setup Plugin Verifier IDEs Cache` step
-
-### Changed
-- Use [Kotlin extension function](https://plugins.jetbrains.com/docs/intellij/plugin-services.html#retrieving-a-service) to retrieve the `MyProjectService` in the `MyProjectManagerListener`
-- Dependencies - upgrade `org.jetbrains.intellij` to `0.6.2`
-- Update `pluginVerifierIdeVersions` in the `gradle.properties` files
-
-## [0.6.0]
-### Added
-- Integration with [IntelliJ Plugin Verifier](https://github.com/JetBrains/intellij-plugin-verifier) through the [Gradle IntelliJ Plugin](https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl) `runPluginVerifier` task
-- Cache downloaded IDEs used by Plugin Verifier for the verification
-
-### Changed
-- Switch Gradle Wrapper to `-all` to improve the IntelliSense
-- Update detekt config to be in line with IJ settings
-- Dependencies - upgrade `io.gitlab.arturbosch.detekt` to `1.14.2`
-- Dependencies - upgrade `org.jetbrains.intellij` to `0.6.1`
-- GitHub Actions - `gradleValidation` update to `gradle/[email protected]`
-- GitHub Actions - `releaseDraft` update to `actions/download-artifact@v2`
-
-### Removed
-- Remove Third-party IntelliJ Plugin Verifier GitHub Action
-
-## [0.5.1]
-### Added
-- Missing properties in the `gradle.properties` template file
-
-### Changed
-- Upgrade Gradle Wrapper to `6.7`
-- Dependencies - upgrade `org.jetbrains.changelog` to `0.6.2`
-
-## [0.5.0]
-### Added
-- Introduced `platformPlugins` property in `gradle.properties` for configuring dependencies to bundled/external plugins
-
-### Changed
-- Disable "Release Draft" job for pull requests in the "Build" GitHub Actions Workflow
-- Dependencies - upgrade `org.jetbrains.intellij` to `0.5.0`
-- Dependencies - upgrade `org.jetbrains.changelog` to `0.6.1`
-- Dependencies - upgrade `io.gitlab.arturbosch.detekt` to `1.14.1`
-- Dependencies - upgrade `org.jlleitschuh.gradle.ktlint` to `9.4.1`
-- Remove LICENSE file during the Template Cleanup workflow
-
-## [0.4.0]
-### Added
-- Fix default to opt-out of bundling Kotlin standard library in plugin distribution
-
-### Changed
-- GitHub Actions: allow releasing plugin even for the base project
-- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.4.10`
-- Dependencies - upgrade `io.gitlab.arturbosch.detekt` to `1.13.1`
-
-### Fixed
-- `pluginName` variable name collision with `intellij` closure getter in Gradle configuration #29
-
-## [0.3.2]
-### Changed
-- Simplify and optimize GitHub Actions
-- Gradle Wrapper upgrade to `6.6.1`
-- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.4.0`
-- Dependencies - upgrade `org.jetbrains.intellij` to `0.4.22`
-- Dependencies - upgrade `org.jetbrains.changelog` to `0.5.0`
-- Dependencies - upgrade `io.gitlab.arturbosch.detekt` to `1.12.0`
-- Dependencies - upgrade `org.jlleitschuh.gradle.ktlint` to `9.4.0`
-- Rename `master` branch to `main`
-
-### Fixed
-- GitHub Actions - cache Gradle dependencies and wrapper separately
-
-## [0.3.1]
-### Added
-- Better handling of the Gradle plugin description extraction from the README file
-- GitHub Actions - cache Gradle Wrapper
-
-### Changed
-- Gradle - remove kotlin("stdlib-jdk8") dependency to decrease the plugin artifact size
-- Dependencies - bump ktlint to `9.3.0`
-- GitHub Actions - make *Update Changelog* job dependent on the *Publish Plugin*
-
-### Fixed
-- Resolve ktlint reports
-
-## [0.3.1]
-### Changed
-- GitHub Actions - run plugin verifier against `2019.3` `2020.1` `2020.2`
-
-### Fixed
-- GitHub Actions - Plugin Verifier broken for artifacts with whitespaces in name
-
-## [0.3.0]
-### Added
-- Set publish channel depending on the plugin version, i.e. `1.0.0-beta` -> `beta` channel
-
-### Changed
-- Update `org.jetbrains.changelog` dependency to `v0.3.3`
-- Update Gradle Wrapper to `v6.5.1`
-- Run GitHub Actions Release workflow on `prereleased` event
-- GitHub Actions - Release - separate changelog related job from the release
-
-### Fixed
-- Remove vendor website from `plugin.xml`
-- Update Template Cleanup workflow test to avoid running it on forks
-
-## [0.2.0]
-### Added
-- JetBrains Plugin badges and TODO list for the end users
-- `ktlint` integration
-
-### Changed
-- `pluginUntilBuild` set to the correct format: `201.*`
-- Bump detekt dependency to `1.10.0`
-
-### Fixed
-- GitHub Actions - Template Cleanup - fixed adding files to git
-- Update Template plugin name on cleanup
-- Set `buildUponDefaultConfig = true` in detekt configuration
-
-## [0.1.0]
-### Added
-- `settings.gradle.kts` for the [performance purposes](https://docs.gradle.org/current/userguide/organizing_gradle_projects.html#always_define_a_settings_file)
-- `#REMOVE-ON-CLEANUP#` token to mark content to be removed with **Template Cleanup** workflow
-
-### Changed
-- README proofreading
-- GitHub Actions - Update IDE versions for the Plugin Verifier
-- Update platformVersion to `2020.1.2`
-
-## [0.0.2]
-### Added
-- [Gradle Changelog Plugin](https://github.com/JetBrains/gradle-changelog-plugin) integration
-
-### Changed
-- Bump Detekt version
-- Change pluginSinceBuild to 193
-
-## [0.0.1]
-### Added
-- Initial project scaffold
-- GitHub Actions to automate testing and deployment
-- Kotlin support
+- Initial scaffold created from [IntelliJ Platform Plugin Template](https://github.com/JetBrains/intellij-platform-plugin-template)
diff --git CODE_OF_CONDUCT.md CODE_OF_CONDUCT.md
deleted file mode 100644
index 85ed20d..0000000
--- CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,4 +0,0 @@
-## Code of Conduct
-
-This project and the corresponding community is governed by the [JetBrains Open Source and Community Code of Conduct](https://confluence.jetbrains.com/display/ALL/JetBrains+Open+Source+and+Community+Code+of+Conduct). Please make sure you read it.
-
diff --git LICENSE LICENSE
deleted file mode 100644
index 77057df..0000000
--- LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright 2000-2021 JetBrains s.r.o.
-
-   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.
diff --git README.md README.md
index ddc75cd..de58eba 100644
--- README.md
+++ README.md
@@ -1,355 +1,40 @@
-# IntelliJ Platform Plugin Template
+# void-theme

-[![official JetBrains project](https://jb.gg/badges/official.svg)][jb:confluence-on-gh]
-[![Twitter Follow](https://img.shields.io/twitter/follow/JBPlatform?style=flat)][jb:twitter]
-[![Build](https://github.com/JetBrains/intellij-platform-plugin-template/workflows/Build/badge.svg)][gh:build]
-[![Slack](https://img.shields.io/badge/Slack-%23intellij--platform--plugin--template-blue)][jb:slack]
+![Build](https://github.com/austintraver/void-theme/workflows/Build/badge.svg)
+[![Version](https://img.shields.io/jetbrains/plugin/v/PLUGIN_ID.svg)](https://plugins.jetbrains.com/plugin/PLUGIN_ID)
+[![Downloads](https://img.shields.io/jetbrains/plugin/d/PLUGIN_ID.svg)](https://plugins.jetbrains.com/plugin/PLUGIN_ID)

-> **TL;DR:** Click the <kbd>Use this template</kbd> button and clone it in IntelliJ IDEA.
+## Template ToDo list
+- [x] Create a new [IntelliJ Platform Plugin Template][template] project.
+- [ ] Verify the [pluginGroup](/gradle.properties), [plugin ID](/src/main/resources/META-INF/plugin.xml) and [sources package](/src/main/kotlin).
+- [ ] Review the [Legal Agreements](https://plugins.jetbrains.com/docs/marketplace/legal-agreements.html).
+- [ ] [Publish a plugin manually](https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html?from=IJPluginTemplate) for the first time.
+- [ ] Set the Plugin ID in the above README badges.
+- [ ] Set the [Deployment Token](https://plugins.jetbrains.com/docs/marketplace/plugin-upload.html).
+- [ ] Click the <kbd>Watch</kbd> button on the top of the [IntelliJ Platform Plugin Template][template] to be notified about releases containing new features and fixes.

 <!-- Plugin description -->
-**IntelliJ Platform Plugin Template** is a repository that provides a pure boilerplate template to make it easier to create a new plugin project (check the [Creating a repository from a template][gh:template] article).
+This Fancy IntelliJ Platform Plugin is going to be your implementation of the brilliant ideas that you have.

-The main goal of this template is to speed up the setup phase of plugin development for both new and experienced developers by preconfiguring the project scaffold and CI, linking to the proper documentation pages, and keeping everything organized.
+This specific section is a source for the [plugin.xml](/src/main/resources/META-INF/plugin.xml) file which will be extracted by the [Gradle](/build.gradle.kts) during the build process.

-[gh:template]: https://help.github.com/en/enterprise/2.20/user/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template
+To keep everything working, do not remove `<!-- ... -->` sections.
 <!-- Plugin description end -->

-If you're still not quite sure what this is all about, read our introduction: [What is the IntelliJ Platform?][docs:intro]
+## Installation

-> **TIP**: Click the <kbd>Watch</kbd> button on the top to be notified about releases containing new features and fixes.
+- Using IDE built-in plugin system:
+
+  <kbd>Settings/Preferences</kbd> > <kbd>Plugins</kbd> > <kbd>Marketplace</kbd> > <kbd>Search for "void-theme"</kbd> >
+  <kbd>Install Plugin</kbd>
+
+- Manually:

+  Download the [latest release](https://github.com/austintraver/void-theme/releases/latest) and install it manually using
+  <kbd>Settings/Preferences</kbd> > <kbd>Plugins</kbd> > <kbd>⚙️</kbd> > <kbd>Install plugin from disk...</kbd>

-### Table of contents

-In this README, we will highlight the following elements of template-project creation:
+---
+Plugin based on the [IntelliJ Platform Plugin Template][template].

-- [Getting started](#getting-started)
-- [Gradle configuration](#gradle-configuration)
-- [Plugin template structure](#plugin-template-structure)
-    - [Dependency on the Kotlin standard library](#dependency-on-the-kotlin-standard-library)
-- [Plugin configuration file](#plugin-configuration-file)
-- [Sample code](#sample-code):
-    - listeners – project and dynamic plugin lifecycle
-    - services – project-related and application-related services
-    - actions – basic action with shortcut binding
-- [Predefined Run/Debug configurations](#predefined-rundebug-configurations)
-- [Continuous integration](#continuous-integration) based on GitHub Actions
-    - [Dependencies management](#dependencies-management) with dependabot
-    - [Changelog maintenance](#changelog-maintenance) with the Gradle Changelog Plugin
-    - [Release flow](#release-flow) using GitHub Releases
-    - [Publishing the plugin](#publishing-the-plugin) with the Gradle IntelliJ Plugin
-- [FAQ](#faq)
-- [Useful links](#useful-links)
-
-
-## Getting started
-
-Before we dive into plugin development and everything related to it, it's worth mentioning the benefits of using GitHub Templates. By creating a new project using the current template, you start with no history and no reference to this repository. This allows you to create a new repository easily without having to copy and paste previous content, clone repositories, or clear the history manually.
-
-All you have to do is click the <kbd>Use this template</kbd> button.
-
-![Use this template][file:use-this-template.png]
-
-After using the template to create your blank project, the [Template Cleanup][file:template_cleanup.yml] workflow will be triggered to override or remove any template-specific configurations, such as the plugin name, current changelog, etc. Once this is complete, the project is ready to be cloned to your local environment and opened with [IntelliJ IDEA][jb:download-ij].
-
-For the last step, you have to manually review the configuration variables described in the [gradle.properties][file:gradle.properties] file and *optionally* move sources from the *com.github.username.repository* package to the one that works best for you. Then you can get to work implementing your ideas.
-
-> **TIP:** To use Java in your plugin, create the `/src/main/java` directory.
-
-
-## Gradle configuration
-
-The recommended method for plugin development involves using the [Gradle][gradle] setup with the [gradle-intellij-plugin][gh:gradle-intellij-plugin] installed. The gradle-intellij-plugin makes it possible to run the IDE with your plugin and publish your plugin to the Marketplace Repository.
-
-A project built using the IntelliJ Platform Plugin Template includes a Gradle configuration that's already been set up. Feel free to read through the [Using Gradle][docs:using-gradle] articles to better understand your build and learn how to customize it.
-
-The most significant parts of the current configuration are:
-- Configuration written with [Gradle Kotlin DSL][gradle-kotlin-dsl].
-- Support for Kotlin and Java implementation.
-- Integration with the [gradle-changelog-plugin][gh:gradle-changelog-plugin], which automatically patches the change notes and description based on the `CHANGELOG.md` and `README.md` files.
-- Integration with the [gradle-intellij-plugin][gh:gradle-intellij-plugin] for smoother development.
-- Code linting with [detekt][detekt].
-- [Plugin publishing][docs:publishing] using the token.
-
-The project-specific configuration file [gradle.properties][file:gradle.properties] contains:
-
-| Property name             | Description                                                                                               |
-| ------------------------- | --------------------------------------------------------------------------------------------------------- |
-| `pluginGroup`             | Package name - after *using* the template, this will be set to `com.github.username.repo`.                |
-| `pluginName`              | Plugin name displayed in the Marketplace and the Plugins Repository.                                      |
-| `pluginVersion`           | The current version of the plugin.                                                                        |
-| `pluginSinceBuild`        | The `since-build` attribute of the <idea-version> tag.                                                    |
-| `pluginUntilBuild`        | The `until-build` attribute of the <idea-version> tag.                                                    |
-| `platformType`            | The type of IDE distribution.                                                                             |
-| `platformVersion`         | The version of the IntelliJ Platform IDE that will be used to build the plugin.                           |
-| `platformDownloadSources` | IDE sources downloaded while initializing the Gradle build.                                               |
-| `platformPlugins`         | Comma-separated list of dependencies to the bundled IDE plugins and plugins from the Plugin Repositories. |
-
-The properties listed define the plugin itself or configure the [gradle-intellij-plugin][gh:gradle-intellij-plugin] – check its documentation for more details.
-
-### Dependency on the Kotlin standard library
-
-Since Kotlin 1.4, a dependency on a standard library (`stdlib`) is added automatically.
-In most cases, it is not necessary to distribute this library with a plugin.
-
-The [gradle.properties][file:gradle.properties] file explicitly alters the default behaviour of the Kotlin Gradle plugin by specifying this opt-out property:
-
-```
-kotlin.stdlib.default.dependency = false
-```
-
-For more details, please see: [Dependency on the standard library][kotlin-docs-dependency-on-stdlib] in Kotlin documentation.
-
-
-## Plugin template structure
-
-A generated IntelliJ Platform Plugin Template repository contains the following content structure:
-
-```
-.
-├── .run                    Predefined Run/Debug Configurations
-├── CHANGELOG.md            Full change history.
-├── LICENSE                 License, MIT by default
-├── README.md               README
-├── build/                  Output build directory
-├── build.gradle.kts        Gradle configuration
-├── detekt-config.yml       Detekt configuration
-├── gradle
-│   └── wrapper/            Gradle Wrapper
-├── gradle.properties       Gradle configuration properties
-├── gradlew                 *nix Gradle Wrapper binary
-├── gradlew.bat             Windows Gradle Wrapper binary
-└── src                     Plugin sources
-    └── main
-        ├── kotlin/         Kotlin source files
-        └── resources/      Resources - plugin.xml, icons, messages
-```
-
-In addition to the configuration files, the most crucial part is the `src` directory, which contains our implementation and the manifest for our plugin – [plugin.xml][file:plugin.xml].
-
-> **TIP:** To use Java in your plugin, create the `/src/main/java` directory.
-
-
-## Plugin configuration file
-
-The plugin configuration file is a [plugin.xml][file:plugin.xml] file located in the `src/main/resources/META-INF` directory. It provides general information about the plugin, its dependencies, extensions, and listeners.
-
-```xml
-<idea-plugin>
-    <id>org.jetbrains.plugins.template</id>
-    <name>Template</name>
-    <vendor>JetBrains</vendor>
-    <depends>com.intellij.modules.platform</depends>
-
-    <extensions defaultExtensionNs="com.intellij">
-        <applicationService serviceImplementation="..."/>
-        <projectService serviceImplementation="..."/>
-    </extensions>
-
-    <projectListeners>
-        <listener class="..." topic="..."/>
-    </projectListeners>
-</idea-plugin>
-```
-
-You can read more about this file in the [Plugin Configuration File][docs:plugin.xml] section of our documentation.
-
-
-## Sample code
-
-The prepared template provides as little code as possible because it is impossible for a general scaffold to fulfill all the specific requirements for all types of plugins (language support, build tools, VCS related tools). The template contains only the following files:
-
-```
-.
-├── MyBundle.kt                         Bundle class providing access to the resources messages
-├── listeners
-│   └── MyProjectManagerListener.kt     Project Manager listener - handles project lifecycle
-└── services
-    ├── MyApplicationService.kt         Application-level service available for all projects
-    └── MyProjectService.kt             Project level service
-```
-
-These files are located in `src/main/kotlin`. This location indicates the language being used. So if you decide to use Java instead, sources should be located in the `src/main/java` directory.
-
-To start with the actual implementation, you may check our [IntelliJ Platform SDK DevGuide][docs], which contains an introduction to the essential areas of the plugin development together with dedicated tutorials.
-
-For those, who value example codes the most, there are also available [IntelliJ SDK Code Samples][gh:code-samples] and [IntelliJ Platform Explorer][jb:ipe] – a search tool for browsing Extension Points inside existing implementations of open-source IntelliJ Platform plugins.
-
-
-## Predefined Run/Debug configurations
-
-Within the default project structure, there is a `.run` directory provided containing three predefined *Run/Debug configurations* that expose corresponding Gradle tasks:
-
-![Run/Debug configurations][file:run-debug-configurations.png]
-
-| Configuration name | Description                                                                                                                                                            |
-| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Run Plugin         | Runs [`:runIde`][gh:gradle-intellij-plugin-running-dsl] Gradle IntelliJ Plugin task. Use the *Debug* icon for plugin debugging.                                        |
-| Run Tests          | Runs [`:check`][gradle-lifecycle-tasks] Gradle task that invokes `:test` and `detekt`/`ktlint` code inspections.                                                       |
-| Run Verifications  | Runs [`:runPluginVerifier`][gh:gradle-intellij-plugin-verifier-dsl] Gradle IntelliJ Plugin task to check the plugin compatibility against the specified IntelliJ IDEs. |
-
-
-> **TIP:** You can find the logs from the running task in the `idea.log` tab.
->
-> ![Run/Debug configuration logs][file:run-logs.png]
-
-
-## Continuous integration
-
-Continuous integration depends on [GitHub Actions][gh:actions], a set of workflows that make it possible to automate your testing and release process. Thanks to such automation, you can delegate the testing and verification phases to the CI and instead focus on development (and writing more tests).
-
-In the `.github/workflows` directory, you can find definitions for the following GitHub Actions workflows:
-
-- [Build](.github/workflows/build.yml)
-    - Triggered on `push` and `pull_request` events.
-    - Runs the *Gradle Wrapper Validation Action* to verify the wrapper's checksum.
-    - Runs the `verifyPlugin` and `test` Gradle tasks.
-    - Builds the plugin with the `buildPlugin` Gradle task and provides the artifact for the next jobs in the workflow.
-    - Verifies the plugin using the *IntelliJ Plugin Verifier* tool.
-    - Prepares a draft release of the GitHub Releases page for manual verification.
-- [Release](.github/workflows/release.yml)
-    - Triggered on `released` event.
-    - Publishes the plugin to the Marketplace using the provided `PUBLISH_TOKEN`.
-    - Sets publish channel depending on the plugin version, i.e. `1.0.0-beta` -> `beta` channel.
-    - Patches the Changelog and commits.
-- [Template Cleanup](.github/workflows/template-cleanup.yml)
-    - Triggered once on the `push` event when a new template-based repository has been created.
-    - Overrides the scaffold with files from the `.github/template-cleanup` directory.
-    - Overrides JetBrains-specific sentences or package names with ones specific to the target repository.
-    - Removes redundant files.
-
-All the workflow files have accurate documentation, so it's a good idea to take a look through their sources.
-
-### Dependencies management
-
-This Template project depends on Gradle plugins and external libraries – and during the development, you will add more of them.
-
-Keeping the project in good shape and having all the dependencies up-to-date requires time and effort, but it is possible to automate that process using [dependabot][gh:dependabot].
-
-Dependabot is a bot provided by GitHub for checking the build configuration files and reviewing any outdated or insecure dependencies of yours – in case if any update is available, it creates a new pull request providing [the proper change][gh:dependabot-pr].
-
-> **Note:** Dependabot doesn't yet support checking of the Gradle Wrapper. Check the [Gradle Releases][gradle-releases] page and update it with:
-> ```bash
-> ./gradlew wrapper --gradle-version 6.8
-> ```
-
-### Changelog maintenance
-
-When releasing an update, it is important to let your users know what the new version offers. The best way to do this is to provide release notes.
-
-The changelog is a curated list that contains information about any new features, fixes, and deprecations. When they are provided, these lists are available in a few different places: the [CHANGELOG.md](./CHANGELOG.md) file, the [Releases page][gh:releases], the *What's new* section of the Marketplace Plugin page, and inside of the Plugin Manager's item details.
-
-There are many methods for handling the project's changelog. The one used in the current template project is the [Keep a Changelog][keep-a-changelog] approach.
-
-### Release flow
-
-The release process depends on the workflows already described above. When your main branch receives a new pull request or a regular push, the [Build](.github/workflows/build.yml) workflow runs multiple tests on your plugin and prepares a draft release.
-
-![Release draft][file:draft-release.png]
-
-The draft release is a working copy of a release, which you can review before publishing. It includes a predefined title and git tag, which is the current version of the plugin, for example, `v0.0.1`. The changelog is provided automatically using the [gradle-changelog-plugin][gh:gradle-changelog-plugin]. An artifact file is also built with the plugin attached. Every new Build overrides the previous draft to keep your *Releases* page clean.
-
-When you edit the draft and use the <kbd>Publish release</kbd> button, GitHub will tag your repository with the given version and add a new entry to the Releases tab. Next, it will notify users that are *watching* the repository, and it will trigger the final [Release](.github/workflows/release.yml) workflow.
-
-### Publishing the plugin
-
-Releasing a plugin to the Marketplace is a straightforward operation that uses the `publishPlugin` Gradle task provided by the [gradle-intellij-plugin][gh:gradle-intellij-plugin]. The [Release](.github/workflows/release.yml) workflow automates this process by running the task when a new release appears in the GitHub Releases section.
-
-> **TIP**: Set a suffix to the plugin version to publish it in the custom repository channel, i.e. `v1.0.0-beta` will push your plugin to the `beta` [release channel][docs:release-channel].
-
-The authorization process relies on the `PUBLISH_TOKEN` secret environment variable, which has to be acquired through the Secrets section of the repository Settings.
-
-![Settings > Secrets][file:settings-secrets.png]
-
-You can get that token in the [My Tokens][jb:my-tokens] tab within your Marketplace profile dashboard.
-
-> **Important:**
-> Before using the automated deployment process, it is necessary to manually create a new plugin in the Marketplace to specify options like the license, repository URL, etc.
-> Please follow the [Publishing a Plugin][docs:publishing] instructions.
-
-
-## FAQ
-
-### How to use Java in my project?
-
-Java language is supported by default along with Kotlin.
-Initially, there's `/src/main/kotlin` directory available with some minimal examples.
-You can still replace it or add next to it the `/src/main/java` to start working with Java language instead.
-
-### How to disable tests or build job using the `[skip ci]` commit message?
-
-You can disable specific tests using the [`if`][github-actions-if] condition, like:
-
-```yaml
-jobs:
-  test:
-    name: Test
-    if: "!contains(github.event.head_commit.message, 'skip ci')"
-    steps:
-      ...
-```
-
-
-## Useful links
-
-- [IntelliJ Platform SDK DevGuide][docs]
-- [IntelliJ Platform Explorer][jb:ipe]
-- [Marketplace Quality Guidelines][jb:quality-guidelines]
-- [IntelliJ Platform UI Guidelines][jb:ui-guidelines]
-- [Marketplace Paid Plugins][jb:paid-plugins]
-- [Kotlin UI DSL][docs:kotlin-ui-dsl]
-- [IntelliJ SDK Code Samples][gh:code-samples]
-- [JetBrains Platform Slack][jb:slack]
-- [JetBrains Platform Twitter][jb:twitter]
-- [IntelliJ IDEA Open API and Plugin Development Forum][jb:forum]
-- [Keep a Changelog][keep-a-changelog]
-- [GitHub Actions][gh:actions]
-
-[docs]: https://plugins.jetbrains.com/docs/intellij?from=IJPluginTemplate
-[docs:intro]: https://plugins.jetbrains.com/docs/intellij/intellij-platform.html?from=IJPluginTemplate
-[docs:kotlin-ui-dsl]: https://plugins.jetbrains.com/docs/intellij/kotlin-ui-dsl.html?from=IJPluginTemplate
-[docs:plugin.xml]: https://plugins.jetbrains.com/docs/intellij/plugin-configuration-file.html?from=IJPluginTemplate
-[docs:publishing]: https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html?from=IJPluginTemplate
-[docs:release-channel]: https://plugins.jetbrains.com/docs/intellij/deployment.html?from=IJPluginTemplate#specifying-a-release-channel
-[docs:using-gradle]: https://plugins.jetbrains.com/docs/intellij/gradle-build-system.html?from=IJPluginTemplate
-
-[file:use-this-template.png]: .github/readme/use-this-template.png
-[file:draft-release.png]: .github/readme/draft-release.png
-[file:gradle.properties]: ./gradle.properties
-[file:run-logs.png]: .github/readme/run-logs.png
-[file:plugin.xml]: ./src/main/resources/META-INF/plugin.xml
-[file:run-debug-configurations.png]: .github/readme/run-debug-configurations.png
-[file:settings-secrets.png]: .github/readme/settings-secrets.png
-[file:template_cleanup.yml]: ./.github/workflows/template-cleanup.yml
-
-[gh:actions]: https://help.github.com/en/actions
-[gh:dependabot]: https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/keeping-your-dependencies-updated-automatically
-[gh:code-samples]: https://github.com/JetBrains/intellij-sdk-code-samples
-[gh:gradle-changelog-plugin]: https://github.com/JetBrains/gradle-changelog-plugin
-[gh:gradle-intellij-plugin]: https://github.com/JetBrains/gradle-intellij-plugin
-[gh:gradle-intellij-plugin-running-dsl]: https://github.com/JetBrains/gradle-intellij-plugin#running-dsl
-[gh:gradle-intellij-plugin-verifier-dsl]: https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl
-[gh:releases]: https://github.com/JetBrains/intellij-platform-plugin-template/releases
-[gh:build]: https://github.com/JetBrains/intellij-platform-plugin-template/actions?query=workflow%3ABuild
-[gh:dependabot-pr]: https://github.com/JetBrains/intellij-platform-plugin-template/pull/73
-
-[jb:confluence-on-gh]: https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub
-[jb:download-ij]: https://www.jetbrains.com/idea/download
-[jb:forum]: https://intellij-support.jetbrains.com/hc/en-us/community/topics/200366979-IntelliJ-IDEA-Open-API-and-Plugin-Development
-[jb:ipe]: https://plugins.jetbrains.com/intellij-platform-explorer
-[jb:my-tokens]: https://plugins.jetbrains.com/author/me/tokens
-[jb:paid-plugins]: https://plugins.jetbrains.com/docs/marketplace/paid-plugins-marketplace.html
-[jb:quality-guidelines]: https://plugins.jetbrains.com/docs/marketplace/quality-guidelines.html
-[jb:slack]: https://plugins.jetbrains.com/slack
-[jb:twitter]: https://twitter.com/JBPlatform
-[jb:ui-guidelines]: https://jetbrains.github.io/ui
-
-[keep-a-changelog]: https://keepachangelog.com
-[detekt]: https://detekt.github.io/detekt
-[github-actions-if]: https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#example-expression-in-an-if-conditional
-[gradle]: https://gradle.org
-[gradle-releases]: https://gradle.org/releases
-[gradle-kotlin-dsl]: https://docs.gradle.org/current/userguide/kotlin_dsl.html
-[gradle-lifecycle-tasks]: https://docs.gradle.org/current/userguide/java_plugin.html#lifecycle_tasks
-[kotlin-docs-dependency-on-stdlib]: https://kotlinlang.org/docs/reference/using-gradle.html#dependency-on-the-standard-library
+[template]: https://github.com/JetBrains/intellij-platform-plugin-template
diff --git gradle.properties gradle.properties
index 832e312..4952ba4 100644
--- gradle.properties
+++ gradle.properties
@@ -1,9 +1,9 @@
 # IntelliJ Platform Artifacts Repositories
 # -> https://plugins.jetbrains.com/docs/intellij/intellij-artifacts.html

-pluginGroup = org.jetbrains.plugins.template
-pluginName = IntelliJ Platform Plugin Template
-pluginVersion = 0.8.3
+pluginGroup = com.github.austintraver.voidtheme
+pluginName = void-theme
+pluginVersion = 0.0.1
 pluginSinceBuild = 202
 pluginUntilBuild = 203.*
 # Plugin Verifier integration -> https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl
diff --git settings.gradle.kts settings.gradle.kts
index 8ada61f..fdfa99c 100644
--- settings.gradle.kts
+++ settings.gradle.kts
@@ -1 +1 @@
-rootProject.name = "IntelliJ Platform Plugin Template"
+rootProject.name = "void-theme"
diff --git src/main/kotlin/org/jetbrains/plugins/template/MyBundle.kt src/main/kotlin/com/github/austintraver/voidtheme/MyBundle.kt
similarity index 93%
rename from src/main/kotlin/org/jetbrains/plugins/template/MyBundle.kt
rename to src/main/kotlin/com/github/austintraver/voidtheme/MyBundle.kt
index bf5644e..91da5e5 100644
--- src/main/kotlin/org/jetbrains/plugins/template/MyBundle.kt
+++ src/main/kotlin/com/github/austintraver/voidtheme/MyBundle.kt
@@ -1,4 +1,4 @@
-package org.jetbrains.plugins.template
+package com.github.austintraver.voidtheme

 import com.intellij.AbstractBundle
 import org.jetbrains.annotations.NonNls
diff --git src/main/kotlin/org/jetbrains/plugins/template/listeners/MyProjectManagerListener.kt src/main/kotlin/com/github/austintraver/voidtheme/listeners/MyProjectManagerListener.kt
similarity index 73%
rename from src/main/kotlin/org/jetbrains/plugins/template/listeners/MyProjectManagerListener.kt
rename to src/main/kotlin/com/github/austintraver/voidtheme/listeners/MyProjectManagerListener.kt
index 627a720..e6a9779 100644
--- src/main/kotlin/org/jetbrains/plugins/template/listeners/MyProjectManagerListener.kt
+++ src/main/kotlin/com/github/austintraver/voidtheme/listeners/MyProjectManagerListener.kt
@@ -1,9 +1,9 @@
-package org.jetbrains.plugins.template.listeners
+package com.github.austintraver.voidtheme.listeners

+import com.github.austintraver.voidtheme.services.MyProjectService
 import com.intellij.openapi.components.service
 import com.intellij.openapi.project.Project
 import com.intellij.openapi.project.ProjectManagerListener
-import org.jetbrains.plugins.template.services.MyProjectService

 internal class MyProjectManagerListener : ProjectManagerListener {

diff --git src/main/kotlin/org/jetbrains/plugins/template/services/MyApplicationService.kt src/main/kotlin/com/github/austintraver/voidtheme/services/MyApplicationService.kt
similarity index 51%
rename from src/main/kotlin/org/jetbrains/plugins/template/services/MyApplicationService.kt
rename to src/main/kotlin/com/github/austintraver/voidtheme/services/MyApplicationService.kt
index 2997c27..eb48695 100644
--- src/main/kotlin/org/jetbrains/plugins/template/services/MyApplicationService.kt
+++ src/main/kotlin/com/github/austintraver/voidtheme/services/MyApplicationService.kt
@@ -1,6 +1,6 @@
-package org.jetbrains.plugins.template.services
+package com.github.austintraver.voidtheme.services

-import org.jetbrains.plugins.template.MyBundle
+import com.github.austintraver.voidtheme.MyBundle

 class MyApplicationService {

diff --git src/main/kotlin/org/jetbrains/plugins/template/services/MyProjectService.kt src/main/kotlin/com/github/austintraver/voidtheme/services/MyProjectService.kt
similarity index 63%
rename from src/main/kotlin/org/jetbrains/plugins/template/services/MyProjectService.kt
rename to src/main/kotlin/com/github/austintraver/voidtheme/services/MyProjectService.kt
index df4b01f..4c08c78 100644
--- src/main/kotlin/org/jetbrains/plugins/template/services/MyProjectService.kt
+++ src/main/kotlin/com/github/austintraver/voidtheme/services/MyProjectService.kt
@@ -1,7 +1,7 @@
-package org.jetbrains.plugins.template.services
+package com.github.austintraver.voidtheme.services

+import com.github.austintraver.voidtheme.MyBundle
 import com.intellij.openapi.project.Project
-import org.jetbrains.plugins.template.MyBundle

 class MyProjectService(project: Project) {

diff --git src/main/resources/META-INF/plugin.xml src/main/resources/META-INF/plugin.xml
index 12af2c8..df93e28 100644
--- src/main/resources/META-INF/plugin.xml
+++ src/main/resources/META-INF/plugin.xml
@@ -1,48 +1,19 @@
 <idea-plugin>
-    <id>com.austin.professor.theme</id>
-    <name>Professor Theme</name>
-    <id>jp.austin.professor.theme</id>
-    <version>1.0</version>
-    <vendor email="[email protected]"
-            url="http://github.com">
-        Austin Traver
-    </vendor>
+    <id>com.github.austintraver.voidtheme</id>
+    <name>void-theme</name>
+    <vendor>austintraver</vendor>

-
-    <description><![CDATA[
-      Professor color theme for Jetbrains IDEs
-    ]]>
-    </description>
-
-    <change-notes><![CDATA[
-        Initiate project.
-    ]]>
-    </change-notes>
-
-    <!--
-    please see
-    https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html
-    for description
-    -->
-    <idea-version since-build="191"/>
-
-    <!--
-    please see
-    https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
-    on how to target different products
-    -->
+    <!-- Product and plugin compatibility requirements -->
+    <!-- https://plugins.jetbrains.com/docs/intellij/plugin-compatibility.html -->
     <depends>com.intellij.modules.platform</depends>

     <extensions defaultExtensionNs="com.intellij">
-        <!-- Add your extensions here -->
-        <themeProvider
-                id="b723ca40-aaaa-495c-9de5-dabb777dbe98"
-                path="/Professor.theme.json">
-        </themeProvider>
+        <applicationService serviceImplementation="com.github.austintraver.voidtheme.services.MyApplicationService"/>
+        <projectService serviceImplementation="com.github.austintraver.voidtheme.services.MyProjectService"/>
     </extensions>

-    <actions>
-        <!-- Add your actions here -->
-    </actions>
-
-</idea-plugin>
\ No newline at end of file
+    <applicationListeners>
+        <listener class="com.github.austintraver.voidtheme.listeners.MyProjectManagerListener"
+                  topic="com.intellij.openapi.project.ProjectManagerListener"/>
+    </applicationListeners>
+</idea-plugin>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant