A modern, feature-rich Neovim configuration built for productivity and performance
- Multiple Theme Options: GitHub, Solarized Osaka, VSCode, Vercel themes
- Smart Status Line: Lualine with custom configurations
- File Tree: Neo-tree with advanced file management
- Tabline: Tabby for elegant tab management
- Notification System: Noice for enhanced UI notifications
- Icon Support: Web devicons and Nerdfont integration
- LSP Integration: Full Language Server Protocol support via nvim-lspconfig
- Auto-completion: Comprehensive completion with nvim-cmp
- Buffer completion
- Path completion
- LSP completion
- LuaSnip integration
- Emoji and Nerdfont support
- Treesitter completion
- AI-Powered Coding: GitHub Copilot and Avante.nvim integration
- Code Formatting: Conform.nvim for consistent code style
- Linting: nvim-lint for real-time code analysis
- Telescope: Fuzzy finder with multiple extensions
- File finder with exclusions
- Live grep with ripgrep
- Node modules search
- Symbol search
- Software licenses
- Harpoon: Quick file navigation
- Outline: Symbol outline for code structure
- GrugFar: Advanced find and replace
- Dropbar: Breadcrumb navigation
- Git Integration:
- Fugit2 for Git operations
- GitSigns for inline git info
- Git blame and diff view
- TinyGit for streamlined workflows
- Terminal: Integrated terminal with ToggleTerm
- Debugging: Built-in debugging capabilities
- Documentation: DevDocs integration
- Todo Management: Todo-comments for project todos
- Markdown Support: Enhanced markdown editing and preview
- Lazy Loading: Lazy.nvim plugin manager for fast startup
- Treesitter: Advanced syntax highlighting and code understanding
- Autopairs: Intelligent bracket pairing
- Surround: Easy text surrounding operations
- Comment: Smart commenting system
- Which-Key: Interactive keybinding helper
- Garbage Collection: Optimized memory management
- Custom Features:
- Autosave functionality
- LSP diagnostics
- Highlight on yank
- Spell check for Markdown
- Discord Integration: Rich presence with Neocord
- Hack The Box: CTF and security challenges integration
- WakaTime: Coding time tracking
- Zen Mode: Distraction-free coding
- Neovim 0.9.1+
- Git
- Node.js (for LSP servers)
- Ripgrep (for telescope live grep)
- A Nerd Font (for icons)
# Backup existing configuration
mv ~/.config/nvim ~/.config/nvim.backup
# Clone Whoa IDE
git clone https://github.com/your-username/whoa-ide ~/.config/nvim
# Start Neovim - plugins will install automatically
nvim~/.config/nvim/
├── init.lua # Entry point
├── lazy-lock.json # Plugin versions lock file
├── lua/
│ ├── plugins/ # Plugin configurations
│ │ ├── code/ # Coding-related plugins
│ │ ├── editor/ # Editor enhancements
│ │ ├── lsp/ # Language server configs
│ │ └── ui/ # UI and theme plugins
│ ├── snippets/ # Custom snippets
│ └── whoa/ # Core Whoa IDE modules
│ ├── commands.lua # Custom commands
│ ├── configs/ # Feature configurations
│ ├── core/ # Core functionality
│ ├── lazy.lua # Plugin manager setup
│ ├── mappings.lua # Key mappings
│ └── options.lua # Neovim options
└── user/ # User-specific configs
└── main.lua # User customizations
Create or modify user/main.lua to customize your setup:
-- user/main.lua
return {
-- Your custom configurations
theme = "github_dark",
features = {
autosave = true,
spell_check = true,
},
-- Custom keymaps
keymaps = {},
}Modify lua/whoa/configs/features.lua:
return {
Autosave = true, -- Auto-save files
LSP_Diagnostics = true, -- Show LSP diagnostics
Highlight_on_Yank = true, -- Highlight yanked text
Spell_Check_for_Markdown = true, -- Spell check in markdown
}Whoa IDE uses lazy.nvim for plugin management.
:Lazy- Open plugin manager:Lazy update- Update all plugins:Lazy clean- Remove unused plugins:Lazy profile- Show startup profiling
<leader>- Space (main leader key)<leader>e- Toggle file explorer<leader>ff- Find files<leader>fg- Live grep<leader>fb- Find buffers
<leader>ca- Code actions<leader>cf- Format code<leader>cr- Rename symbolgd- Go to definitiongr- Go to references
<leader>gg- Open Git interface<leader>gb- Git blame<leader>gd- Git diff
For complete keybinding reference, press <leader> in Neovim to see Which-Key popup.
- Create a new file in the appropriate
lua/plugins/subdirectory - Follow the lazy.nvim plugin specification
- Restart Neovim to load the new plugin
Add custom commands in lua/whoa/commands.lua.
Themes are configured in lua/plugins/ui/themes.lua. To add a new theme:
- Add the theme plugin
- Configure it in the themes file
- Update the theme selection logic
- Slow startup: Run
:Lazy profileto identify slow plugins - LSP not working: Check
:LspInfoand ensure language servers are installed - Icons not showing: Install a Nerd Font and set it in your terminal
- Telescope errors: Ensure ripgrep is installed
Run :checkhealth to diagnose common issues.
Check logs in user/logs/actions.log for debugging information.
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
# Clone your fork
git clone https://github.com/your-username/whoa-ide
cd whoa-ide
# Create a feature branch
git checkout -b feature/your-feature-name
# Make changes and test
# Submit PRThis project is licensed under the MIT License.
- Email: hello@ugolin-olle.com
- LinkedIn: ugolin-olle
- GitHub: Report Issues
Built with ❤️ and Neovim
