Not Gay
Yes. That’s the name.
And no, it’s not what you think.
You opened this repo and probably thought:
“WTF is this?”
Fair.
But answer me this —
Don’t you like colors?
We humans tend to be attracted to shiny, colorful things, so why are code editors always stuck with fixed colors?
So I asked myself:
Can I make my editor look unreasonably colorful?
And there you have it.
Just:
Violet → Indigo → Blue → Green → Yellow → Orange → Red
Over and over. Animated. Flowing.
Because why not.
Features
- Rainbow Text Effect: Characters colored in VIBGYOR order (Violet → Indigo → Blue → Green → Yellow → Orange → Red)
- Animated Wave Effect: Smooth sine wave animation that flows across your text
- Smart Character Processing: Whitespace is skipped, only visible characters get colored
- Performance Optimized: Only processes visible text ranges for smooth typing
- Toggle Controls: Easy commands to enable/disable the effect
- Real-time Animation: Updates at 60fps for fluid color transitions
Preview

How It Works
The extension uses VS Code's TextEditorDecorationType API to efficiently color your text:
- 7 Color Decorations: One decoration type for each VIBGYOR color
- Visible Range Processing: Only processes text you can actually see
- Sine Wave Calculation: Uses
Math.sin() with character position and time offset
- Character-by-Character: Each non-whitespace character gets individually colored
- Animation Loop: 100ms interval updates the wave offset for smooth motion
- Smart Cleanup: Decorations are cleared when disabled or editor changes
This approach ensures excellent performance even with large files.
Requirements
- Visual Studio Code 1.109.0 or higher
Commands
The extension provides these commands (accessible via Command Palette):
- Not Gay: Toggle - Toggle the animation effect on/off
- Not Gay: Enable - Turn on the animation text effect
- Not Gay: Disable - Turn off the animation text effect
Access via: Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (Mac), then type "Not Gay"
Installation
From Marketplace
Search for:
Not Gay
Click Install.
Manual Install (VSIX)
code --install-extension not-gay-0.0.1.vsix
Development Install
- Clone this repository
- Open in VS Code
- Run
npm install
- Press
F5 to launch Extension Development Host
Philosophy
Code doesn’t have to be boring.
We stare at our editors for hours.
Why not make them visually expressive?
VIBGYOR Wave adds color and motion without interfering with syntax or performance.
Known Considerations
- Performance: Optimized for visible text only, but very large files may see minor impact
- Distraction: Animated colors may not be suitable for focused work sessions
- Accessibility: May not be ideal for users sensitive to moving colors
- Battery: Continuous animation may increase battery usage on laptops
- Theme Compatibility: Colors are fixed and don't adapt to VS Code themes
Future Ideas
- Cursor-follow rainbow
- Vertical wave mode
- Gradient RGB mode
- Theme-aware brightness
- Per-language enable/disable
- Active-line-only mode
Release Notes
0.0.1
- Initial Release - Core rainbow text functionality
- VIBGYOR Wave Animation - Smooth sine wave effect across text
- Command Palette Integration - Toggle, enable, disable commands
- Performance Optimized - Visible range processing only
- Real-time Updates - Responds to text changes and editor switches
Developer Notes
Technology Stack:
- TypeScript with VS Code Extension API
TextEditorDecorationType for character coloring
setInterval for animation timing
- Sine wave mathematics for color transitions
Architecture:
- Single extension file with clean activation/deactivation
- Event listeners for document and editor changes
- Decoration management with proper cleanup
- Character-level positioning with Range objects
License
MIT License