Skip to content

axaluss/power-mode-intellij-plugin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 intellij plugin
  2. import the sbt project (build.sbt)
  3. follow the docs here
  4. create the plugin artifact sbt packageArtifactZip
  5. install in intellij

"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.