/power-mode-intellij-plugin

Power Mode II Intellij plugin

Primary LanguageScalaApache License 2.0Apache-2.0

Power Mode II Intellij plugin

Join the chat at https://gitter.im/baptistemesta/power-mode-intellij-plugin

Demo

Installation

Watch the Video

Install from Jetbrains plugin repositories

How to use

Install the plugin then simply enable the sparkling in Preferences > Appearance > Power mode II

Features

  • Exploding falling sparks
  • Editor shaking
  • Flames
  • Heatup based on typing speed. The more you type the more happens.
  • Keyboard shortcut to toggle power mode [shift ctrl alt O]
  • Choose particle colors and transparency within a color space
  • Adjust particle velocity and gravitation
  • Modify the animation frame rate
  • Multi caret support
  • Animation on caret movement
  • Play music folder: volume based on heatup
  • Play next song action: [shift ctrl alt M]
  • Visualize bigger file editing with "BAM!"
  • See your power level in the indicator box
  • Customizable animation images
  • Everything is configurable

Latest Release Download

Want to Donate a Beer?

Plugin Development Setup

1 install scala 2.11 and create a global scala SDK

3 Add the Community Edition as global IntelliJ Platform Plugin SDK

Add the Community Edition as IntelliJ Platform Plugin SDK

4 Checkout power mode II Repository from github

5 Create a project from existing sources but dont import the default module or libraries.

Then create a plugin module in the project root folder (the Power Mode II repo folder. don't create a subfolder). Add the Scala SDK in Dependencies.

create a plugin project

create a plugin project

6 Add a plugin run configuration

Add a plugin run configuration

7 Press run button

This should start a new IntelliJ CE Instance with PowerMode II plugin installed and independent sandbox configuration.

8 Build the installable plugin zip file

Hit Build -> Prepare Plugin Module for Deployment

"Architecture"

  • PowerMode is the settings instance which is used by PowerModeConfigurable to populate the UI Settings dialog. PowerModeConfigurableUI manages the settings dialog to change the settings in PowerMode.
  • PowerMode is stored/loaded by xml serializer and annotation magic by Intellij.
  • PowerMode starts up the SparkContainerManager. The SparkContainerManager creates a SparkContainer for each editor.
  • The SparkContainer creates the ElementOfPower (PowerSpark, PowerFlame) and manages their animation and lifecycle.

heatup

  • heatup increases the lifetime and amount of Sparks and Flames over time. The most values are multiplied with ElementOfPower.valueFactor to simulate this heatup. ElementOfPower.valueFactor is composed of heatupFactor (how much of all animation doesn't depend on heatup) and timeFactor (how much heatup do we currently have).
  • The heatup itself is calculated by keyStrokesPerMinute and the amount of keystrokes within heatupTime.