https://github.com/se2p/intelligame
https://github.com/se2p/intelligame
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/se2p/intelligame
- Owner: se2p
- License: apache-2.0
- Created: 2023-09-06T20:10:16.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-20T15:00:54.000Z (about 2 years ago)
- Last Synced: 2025-04-13T03:56:23.930Z (over 1 year ago)
- Language: Kotlin
- Size: 1.53 MB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# IntelliGame
This is the repository of the IntelliGame Plugin for IntelliJ to integrate Gamification into IntelliJ.
IntelliGame is a plugin for IntelliJ which rewards developers
for positive testing behavior using a multi-level achievement
system: A total of 27 different achievements, each with incremental
levels, provide affirming feedback when developers exhibit commendable
testing behavior, and provide an incentive to further continue and
improve this behavior.
## Development - How to add new Achievements
During development, the [IntelliJ Platform SDK](https://plugins.jetbrains.com/docs/intellij/welcome.html) serves as the primary source for documentation.
- Adding Achievements:
- New Achievements should be stored in the [achievements](src/main/kotlin/de/uni_passau/fim/se2/intelligame/achievements) folder
- The Achievements must implement the [Achievement interface](src/main/kotlin/de/uni_passau/fim/se2/intelligame/achievements/Achievement.kt).
- Furthermore, Achievements usually implement a listener to react to specific user inputs.
These listeners, or in this case Achievements, are then subscribed to the [Message Bus](https://plugins.jetbrains.com/docs/intellij/messaging-infrastructure.html) with the help of the [plugin.xml](src/main/resources/META-INF/plugin.xml) or in the [ProjectService](src/main/kotlin/de/uni_passau/fim/se2/intelligame/services/ProjectService.kt) under the appropriate topic.
All possible listeners and the appropriate topics can be found [here](https://plugins.jetbrains.com/docs/intellij/extension-point-list.html#intellij-platform-listeners).
Information on embedding the listeners can be found [here](https://plugins.jetbrains.com/docs/intellij/plugin-listeners.html).
- In order to display the new Achievements in the Achievement Overview, they must be added to the appropriate Get method in the [Util](src/main/kotlin/de/uni_passau/fim/se2/intelligame/services/Util.kt) class. The Achievements are then automatically listed in the overview.
- If a new Achievement group should be added, it has to be created in the [MoreInformationDialog](src/main/kotlin/de/uni_passau/fim/se2/intelligame/components/MoreInformationDialog.kt) synchronously to the existing groups and a new get method with the associated Achievements has to be defined in the [Util](src/main/kotlin/de/uni_passau/fim/se2/intelligame/services/Util.kt) class.
- To test the implementations, IntelliJ can be started using the intelliJ/runIde Gradle task in a sandbox that has the plugin installed.
## Installation
- Using IDE built-in plugin system (in the future):
Settings/Preferences > Plugins > Marketplace > Search for "IntelliGame" >
Install Plugin
- Manually:
Download the repository and run the gradle intelliJ/buildPlugin task.
By simply dragging and dropping the resulting zip file over an IntelliJ window, the plugin can be installed.
---
Plugin based on the [IntelliJ Platform Plugin Template][template].
[template]: https://github.com/JetBrains/intellij-platform-plugin-template