BrandonKirbyson / VSCode-Animations

A VSCode extension that adds animations to the editor
https://marketplace.visualstudio.com/items?itemName=BrandonKirbyson.vscode-animations
MIT License
200 stars 6 forks source link

Feature Request: add optional onType code shaking animations, aka Power Mode from Atom #69

Open mbalc opened 1 month ago

mbalc commented 1 month ago

There is one extension dedicated currently for VSCode that tries to recreate Power Mode from Atom, but the result is slightly disappointing, in my opinion.

Meanwhile, this extension seems to have a great codebase foundation to implement features from that extension in a much better way.

As the most core feature of Power Mode, I suggest code shakes to be implemented first.

Here's a preview of how the whole experience looks like in Atom (the shaking+particles effect kicks in after Combo: 50+) https://www.youtube.com/watch?v=Jg5aZxWmsnw

(also haha funey issu numbah)

BrandonKirbyson commented 1 month ago

Ok thanks for mentioning this, actually thought about doing something like that since the extension could somewhat easily incorporate this like you said. Could you maybe list any settings you would ideally want to see, or any other possible features besides the code shaking. Also, what is the current extension lacking (so I don't make the same mistake)? Thanks

mbalc commented 1 month ago

Features

The Power Mode extension for Atom is a popular package that enhances the coding experience by adding visual and interactive effects. Here are the main features:

  1. Particle Effects: Generates particle effects around the cursor when typing, simulating a "powerful" typing experience.
  2. Screen Shake: Adds a screen shake effect when typing, giving a dynamic feel to the coding process.
  3. Customizable Effects: Allows users to customize the particle effects, including color, size, and type of particles.
  4. Combo Counter: Displays a combo counter that increases with continuous typing and shows flavor text for multiples of 10, adding a gamified element to coding.
  5. Sound Effects: Optionally adds sound effects to keystrokes, enhancing the immersive experience.
  6. Themes and Presets: Offers various themes and presets for different visual styles and effects.
  7. Performance Settings: Provides settings to adjust the intensity and performance impact of the effects, ensuring smooth operation on different hardware.

Settings

  1. Enable/Disable Effects: Toggle the particle effects and screen shake on or off.
  2. Particle Settings: Particle Color: Customize the color of the particles. Particle Size: Adjust the size of the particles. Particle Velocity: Change the speed at which particles move. Particle Life Span: Set how long particles remain visible before disappearing. Particle Count: Control the number of particles generated per keystroke.
  3. Screen Shake Settings: Enable/Disable Screen Shake: Toggle the screen shake effect. Shake Intensity: Adjust the strength of the screen shake. Shake Duration: Set how long the screen shake lasts.
  4. Combo Counter Settings: Enable/Disable Combo Counter: Toggle the combo counter display. Combo Threshold: Set the number of keystrokes for the screen shakes and particles to start happening. Combo Reset Time: Adjust the time it takes for the combo counter to reset after stopping typing.
  5. Sound Effects: Enable/Disable Sound Effects: Toggle sound effects for keystrokes. Sound Volume: Adjust the volume of the sound effects.
  6. Themes and Presets: Select Theme: Choose from various pre-configured themes and presets for different visual styles.
  7. Performance Settings: Performance Mode: Adjust settings to optimize performance on different hardware, such as reducing particle count or disabling certain effects.

Issues of the current solution

For me personally, the biggest deal breaker there is how the shakes are implemented, they seem laggy in practice:

BrandonKirbyson commented 1 month ago

Ok, thanks so much. Very detailed! I'll get to this soon and maybe have it released next week.