https://github.com/ahmad9059/nvim
Nvim Config for Web Development (specially for MERN/Next.js)
https://github.com/ahmad9059/nvim
config dotfiles lazyvim nvchad nvim nvim-configs web
Last synced: 5 months ago
JSON representation
Nvim Config for Web Development (specially for MERN/Next.js)
- Host: GitHub
- URL: https://github.com/ahmad9059/nvim
- Owner: ahmad9059
- License: unlicense
- Created: 2025-07-31T08:11:59.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-08-11T05:45:45.000Z (5 months ago)
- Last Synced: 2025-08-11T07:24:22.838Z (5 months ago)
- Topics: config, dotfiles, lazyvim, nvchad, nvim, nvim-configs, web
- Language: Lua
- Homepage:
- Size: 3.11 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ฅ๏ธ Neovim Config (NvChad-Based)
Welcome to my personal Neovim configuration, built on top of [NvChad](https://github.com/NvChad/NvChad) for a modern, fast, and minimal Neovim setup tailored for **MERN Stack development**, **web technologies**, and general-purpose programming.
> โก Designed for speed, productivity, and ease of maintenance with VSCode compatibility.
## ๐ท Screenshots


---
## โจ Key Features
- ๐ **Lazy-loaded plugin architecture** via NvChad v2.5
- ๐จ **Tokyo Night theme** with transparency and custom dashboard
- ๐ง **Intelligent code formatting**e with Prettier, Stylua, and format-on-save
- ๐ง **Comprehensive LSP support** for modern web development
- ๐งต**Template string auto-conversion** (VS Code-like behavior)
- ๐ท๏ธ **Auto HTML/JSX tag closing and renaming**
- ๐ **Enhanced Telescope UI** with dropdown selections
- ๐งโ๐ง**LalzyGit integration** for seamless Git workflow
- ๐ฅ๏ธ **Tmux navigation** support for terminal multiplexing
- ๐ **Markdown rendering** with live preview
- ๐ฏ **Smart text surrounding** with mini.surround
- ๐ฌ **Enhanced command line UI** with Noice.nvim
- ๐จโ๐ป**VSCode-Neovim compatibility** with dedicated config
- โจ๏ธ **Custom key mappings** for productivity
---
## ๐ ๏ธ Plugin Ecosystem
| Plugin | Purpose | Status |
| ------------------------------------------- | ----------------------------------------- | ---------------- |
| **Core & UI** |
| `NvChad/NvChad` | Base configuration framework | โ
Active |
| `folke/noice.nvim` | Enhanced command line and notification UI | โ
Active |
| `rcarriga/nvim-notify` | Beautiful notification system | โ
Active |
| **LSP & Completion** |
| `neovim/nvim-lspconfig` | Language Server Protocol configuration | โ
Active |
| `nvchad.blink.lazyspec` | Fast completion engine | โ
Active |
| **Formatting & Linting** |
| `stevearc/conform.nvim` | Code formatting with Prettier, Stylua | โ
Active |
| **Git Integration** |
| `kdheepak/lazygit.nvim` | LazyGit terminal UI integration | โ
Active |
| **Navigation & Movement** |
| `christoomey/vim-tmux-navigator` | Seamless Tmux pane navigation | โ
Active |
| `nvim-telescope/telescope-ui-select.nvim` | Telescope dropdown for vim.ui.select | โ
Active |
| **Language-Specific** |
| `axelvc/template-string.nvim` | Auto-convert quotes to template strings | โ
Active |
| `windwp/nvim-ts-autotag` | Auto-close and rename HTML/JSX tags | โ
Active |
| `MeanderingProgrammer/render-markdown.nvim` | Live markdown rendering | โ
Active |
| **Text Editing** |
| `echasnovski/mini.surround` | Smart text surrounding operations | โ
Active |
| **Syntax & Parsing** |
| `nvim-treesitter/nvim-treesitter` | Advanced syntax highlighting | โ
Active |
| **Optional** |
| `github/copilot.vim` | AI code suggestions | ๐ Commented out |
---
## ๐ Language Support
### Full LSP Support
- **JavaScript/TypeScript** - Complete IntelliSense, auto-imports, refactoring
- **React (JSX/TSX)** - Component intelligence, prop validation
- **HTML/CSS** - Tag completion, CSS properties, validation
- **JSON** - Schema validation, formatting
- **Lua** - Neovim API awareness, diagnostics
- **Markdown** - Live rendering, formatting
### Enhanced Features
- **TailwindCSS** - Class completion and validation
- **Emmet** - Fast HTML/CSS abbreviation expansion
- **Template Strings** - Auto-conversion for JS/TS/React
- **Auto-tagging** - Smart HTML/JSX tag management
### Formatting Support
- **Prettier** - JS, TS, HTML, CSS, JSON, Markdown, YAML
- **Stylua** - Lua code formatting
- **Format on Save** - Automatic formatting with 500ms timeout
---
## โ๏ธ Custom Configuration Highlights
### Theme & UI
- **Tokyo Night** theme with transparency enabled
- **Custom dashboard** with ASCII art header
- **Minimal statusline** with rounded separators
- **Relative line numbers** for better navigation
### Key Mappings
- `;` โ `:` (Quick command mode access)
- `jk` โ `` (Fast insert mode exit)
- `` โ Save file (works in all modes)
- `` โ Select all text
- `` โ Navigate in insert mode
- `lg` โ Open LazyGit
- `` โ Toggle floating terminal
- `` โ Tmux navigation
- `` โ Switch between buffers
### Advanced Features
- **VSCode compatibility** - Dedicated config for VSCode-Neovim extension
- **Floating terminal** - Customized with rounded borders
- **Smart diagnostics** - Virtual text enabled with proper configuration
- **Auto-formatting** - Format on save with LSP fallback
- **Template strings** - Auto-convert quotes to backticks in JS/TS
---
## ๐งฐ Prerequisites
### Required
- [Neovim v0.9+](https://neovim.io/) (v0.10+ recommended)
- [Git](https://git-scm.com/)
- [Node.js](https://nodejs.org/) and `npm` (for LSP servers and formatters)
### Optional but Recommended
- [LazyGit](https://github.com/jesseduffield/lazygit) - Git UI integration
- [Tmux](https://github.com/tmux/tmux) - Terminal multiplexer for navigation
- [Nerd Font](https://www.nerdfonts.com/) - For proper icon display
### Language Servers & Formatters
The following will be automatically installed when you open relevant files:
```bash
# LSP Servers (installed via Mason or manually)
npm install -g typescript-language-server
npm install -g vscode-langservers-extracted # HTML, CSS, JSON
npm install -g @tailwindcss/language-server
npm install -g emmet-ls
# Formatters
npm install -g prettier
npm install -g @fsouza/prettierd # Faster Prettier daemon
```
---
## ๐ Installation
### Method 1: Fresh NvChad Installation
```bash
# Backup existing config (if any)
mv ~/.config/nvim ~/.config/nvim.backup
# Replace with this config
rm -rf ~/.config/nvim
git clone https://github.com/ahmad9059/nvim ~/.config/nvim
# Start Neovim (plugins will auto-install)
nvim
# run
:MasonInstallAll
:Lazy sync
```
### Method 2: VSCode-Neovim Users
This config includes dedicated VSCode compatibility. Simply install the [VSCode-Neovim extension](https://marketplace.visualstudio.com/items?itemName=asvetliakov.vscode-neovim) and point it to this config.
---
## ๐ฏ Usage Guide
### First Launch
1. Open Neovim - plugins will automatically install
2. Wait for Lazy.nvim to finish downloading plugins
3. Restart Neovim for full functionality
4. Run `:checkhealth` to verify everything is working
### Key Workflows
#### Git Integration
- `lg` - Open LazyGit for visual Git operations
- Use LazyGit's intuitive interface for staging, committing, and pushing
#### Code Formatting
- **Automatic** - Format on save (500ms timeout)
- **Manual** - Use LSP formatting commands
- **Supported** - JS, TS, HTML, CSS, JSON, Markdown, Lua
#### Terminal Usage
- `` - Toggle floating terminal with custom styling
- Terminal opens with 80% width/height and rounded borders
#### Tmux Integration
- `` - Navigate between Neovim and Tmux panes seamlessly
- `` - Go to previous Tmux pane
---
## ๐ง Troubleshooting
### Common Issues
**LSP not working?**
```bash
# Check if language servers are installed
:LspInfo
# Install missing servers via Mason
:Mason
```
**Formatting not working?**
```bash
# Check formatter availability
:ConformInfo
# Install formatters manually
npm install -g prettier @fsouza/prettierd
```
**Plugins not loading?**
```bash
# Check plugin status
:Lazy
# Force plugin sync
:Lazy sync
```
**Tmux navigation not working?**
- Ensure Tmux is installed and running
- Check if `christoomey/vim-tmux-navigator` plugin is loaded
---
## ๐ Project Structure
```
~/.config/nvim/
โโโ init.lua # Main entry point with VSCode compatibility
โโโ lazy-lock.json # Plugin version lock file
โโโ lua/
โ โโโ autocmds.lua # Auto commands
โ โโโ chadrc.lua # NvChad theme and UI configuration
โ โโโ mappings.lua # Custom key mappings
โ โโโ options.lua # Neovim options (relative numbers, etc.)
โ โโโ configs/
โ โ โโโ conform.lua # Formatter configuration
โ โ โโโ lazy.lua # Lazy.nvim setup
โ โ โโโ lspconfig.lua # LSP server configurations
โ โโโ plugins/
โ โโโ init.lua # Plugin specifications
โโโ preview/
โโโ preview.png # Screenshot
```
---
## ๐จ Customization
### Changing Theme
Edit `lua/chadrc.lua`:
```lua
M.base46 = {
theme = "onedark", -- Change to your preferred theme
transparency = false, -- Disable transparency
}
```
### Adding New LSP
Edit `lua/configs/lspconfig.lua`:
```lua
-- Example: Python LSP
lspconfig.pyright.setup {
on_attach = on_attach,
capabilities = capabilities,
}
```
### Custom Key Mappings
Edit `lua/mappings.lua`:
```lua
-- Add your custom mappings
map("n", "custom", "YourCommand", { desc = "Your description" })
```
---
## ๐ค Contributing
Feel free to:
- Report bugs or issues
- Suggest new features or improvements
- Submit pull requests
- Share your customizations
### Development Setup
1. Fork the repository
2. Create a feature branch
3. Test your changes thoroughly
4. Submit a pull request with clear description
---
## ๐ Credits & Acknowledgments
### Core Dependencies
- [NvChad](https://github.com/NvChad/NvChad) - Amazing Neovim configuration framework
- [Lazy.nvim](https://github.com/folke/lazy.nvim) - Modern plugin manager
- [Telescope](https://github.com/nvim-telescope/telescope.nvim) - Fuzzy finder and UI
### Key Plugins
- [conform.nvim](https://github.com/stevearc/conform.nvim) - Formatter integration
- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - LSP configuration
- [LazyGit](https://github.com/jesseduffield/lazygit) - Git terminal UI
- [template-string.nvim](https://github.com/axelvc/template-string.nvim) - Smart template strings
- [noice.nvim](https://github.com/folke/noice.nvim) - Enhanced UI components
### Community
- All the amazing open-source contributors
- NvChad community for the solid foundation
- Neovim core team for the incredible editor
---
## ๐จโ๐ป Author
**Ahmad Hassan**
Full Stack Developer & Neovim Enthusiast
[](https://www.linkedin.com/in/ahmad9059/)
[](https://github.com/ahmad9059)
---
## ๐ License
This project is open source and available under the [MIT License](LICENSE).
```
MIT License - Feel free to use, modify, and distribute
```
---
## โญ Show Your Support
If this configuration helped you, please consider:
- โญ Starring the repository
- ๐ด Forking for your own customizations
- ๐ข Sharing with fellow developers
- ๐ Reporting issues or suggesting improvements
**Happy coding with Neovim! ๐**