An open API service indexing awesome lists of open source software.

https://github.com/ugolinolle/whoaide

⌨️ · My custom configuration for Neovim.
https://github.com/ugolinolle/whoaide

config lazy lua neovim nvim

Last synced: about 2 months ago
JSON representation

⌨️ · My custom configuration for Neovim.

Awesome Lists containing this project

README

          


Whoa IDE Banner

🚀 Whoa IDE


A modern, feature-rich Neovim configuration built for productivity and performance


Neovim
Lua
License

---

## ✨ Features

### 🎨 **Modern UI & Themes**
- **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

### 🧠 **Intelligent Code Assistance**
- **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

### 🔍 **Advanced Search & Navigation**
- **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

### 🛠️ **Developer Tools**
- **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

### ⚡ **Performance & Productivity**
- **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

### 🎮 **Gaming & Fun**
- **Discord Integration**: Rich presence with Neocord
- **Hack The Box**: CTF and security challenges integration
- **WakaTime**: Coding time tracking
- **Zen Mode**: Distraction-free coding

## 🚀 Installation

### Prerequisites
- **Neovim 0.9.1+**
- **Git**
- **Node.js** (for LSP servers)
- **Ripgrep** (for telescope live grep)
- **A Nerd Font** (for icons)

### Quick Install
```bash
# 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
```

## 🔧 Configuration

### Core Structure
```
~/.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
```

### Customization

#### User Configuration
Create or modify `user/main.lua` to customize your setup:

```lua
-- user/main.lua
return {
-- Your custom configurations
theme = "github_dark",
features = {
autosave = true,
spell_check = true,
},
-- Custom keymaps
keymaps = {},
}
```

#### Features Toggle
Modify `lua/whoa/configs/features.lua`:

```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
}
```

## 📦 Plugin Management

Whoa IDE uses [lazy.nvim](https://github.com/folke/lazy.nvim) for plugin management.

### Common Commands
- `:Lazy` - Open plugin manager
- `:Lazy update` - Update all plugins
- `:Lazy clean` - Remove unused plugins
- `:Lazy profile` - Show startup profiling

## ⌨️ Key Mappings

### General
- `` - Space (main leader key)
- `e` - Toggle file explorer
- `ff` - Find files
- `fg` - Live grep
- `fb` - Find buffers

### Code
- `ca` - Code actions
- `cf` - Format code
- `cr` - Rename symbol
- `gd` - Go to definition
- `gr` - Go to references

### Git
- `gg` - Open Git interface
- `gb` - Git blame
- `gd` - Git diff

*For complete keybinding reference, press `` in Neovim to see Which-Key popup.*

## 🏗️ Development

### Adding New Plugins
1. Create a new file in the appropriate `lua/plugins/` subdirectory
2. Follow the lazy.nvim plugin specification
3. Restart Neovim to load the new plugin

### Custom Commands
Add custom commands in `lua/whoa/commands.lua`.

### Themes
Themes are configured in `lua/plugins/ui/themes.lua`. To add a new theme:
1. Add the theme plugin
2. Configure it in the themes file
3. Update the theme selection logic

## 🐛 Troubleshooting

### Common Issues
1. **Slow startup**: Run `:Lazy profile` to identify slow plugins
2. **LSP not working**: Check `:LspInfo` and ensure language servers are installed
3. **Icons not showing**: Install a Nerd Font and set it in your terminal
4. **Telescope errors**: Ensure ripgrep is installed

### Health Checks
Run `:checkhealth` to diagnose common issues.

### Logs
Check logs in `user/logs/actions.log` for debugging information.

## 🤝 Contributing

Contributions are welcome! Please:

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Submit a pull request

### Development Setup
```bash
# 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 PR
```

## 📄 License

This project is licensed under the [MIT License](./LICENSE).

## 📧 Contact

- **Email**: [hello@ugolin-olle.com](mailto:hello@ugolin-olle.com)
- **LinkedIn**: [ugolin-olle](https://linkedin.com/in/ugolin-olle)
- **GitHub**: [Report Issues](https://github.com/your-username/whoa-ide/issues)

---


Built with ❤️ and Neovim