Skip to content

jaded423/nvimConfig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

42 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐍 Jaded's Neovim Configuration

Strike fast. Code faster!

A modern, feature-rich Neovim configuration built with Lua, optimized for web development, Python, and database work. This config was modernized and enhanced with AI assistance to follow 2024-2025 best practices.

Neovim Lua


✨ Features

  • 🎨 Modern UI: Beautiful dashboard with snacks.nvim, lualine statusline, and tokyonight theme
  • 🌳 Tree-sitter: Superior syntax highlighting and code understanding
  • πŸ” Fuzzy Finding: Telescope for files, text, and buffers
  • πŸ—‚οΈ Dual File Explorers: oil.nvim (buffer-based) and mini.files (column view)
  • πŸ“ LSP Integration: Full language server support via mason.nvim
  • πŸ€– Auto-completion: blink.cmp - Modern, blazingly fast completion engine
  • 🎯 Code Navigation: Trouble for diagnostics, Aerial for symbols
  • πŸ”§ Formatting & Linting: conform.nvim + nvim-lint with auto-format on save
  • 🌿 Git Integration: Gitsigns, diffview, lazygit for TUI, gitbrowse for GitHub/GitLab
  • πŸ› Debugging: Full DAP support with nvim-dap, dap-ui, and virtual text
  • πŸ§ͺ Testing: Integrated test runner with neotest (Jest, Vitest, Python, Go)
  • πŸ€– AI Assistance: GitHub Copilot with chat interface for code generation and explanations
  • πŸ’Ύ Session Management: Automatic project session persistence and restoration
  • πŸ”¨ Advanced Refactoring: Extract functions, inline variables, and more with refactoring.nvim
  • πŸ“‹ TODO Tracking: Highlighted TODO/FIXME/HACK comments with Telescope integration
  • πŸ“ Markdown Preview: Live preview with peek.nvim and GitHub-style rendering
  • 🌐 REST Client: Test APIs with .http files using kulala.nvim
  • πŸͺŸ Smart Splits: Seamless navigation between Neovim and tmux splits
  • ⚑ Performance: Bigfile handling, optimized lazy loading
  • 🎭 Focus Mode: Zen mode with dimming for distraction-free coding
  • πŸ—„οΈ Database UI: Built-in database explorer
  • 🎹 Keybinding Helper: which-key for discoverability

πŸ“¦ Plugin List

Core

LSP & Completion

Syntax & Highlighting

File Navigation

Git

Debugging πŸ†•

Testing πŸ†•

AI Assistance πŸ†•

Code Quality

Code Navigation & Diagnostics

Editing

UI & UX

Session Management πŸ†•

Utilities

Tools πŸ†•

  • kulala.nvim - REST client for .http files
  • peek.nvim - Live Markdown preview with GitHub-style rendering

Database


πŸš€ Installation

Prerequisites

  • Neovim >= 0.9.4 (0.10+ recommended)
  • Git
  • A Nerd Font (optional but recommended)
  • ripgrep (for Telescope grep)
  • Node.js (for some LSP servers)
  • Deno (for peek.nvim markdown preview): brew install deno
  • GitHub Copilot subscription (optional, for AI features)

Install

# Backup existing config
mv ~/.config/nvim ~/.config/nvim.backup

# Clone this config
git clone https://github.com/jaded423/nvim-config.git ~/.config/nvim

# Start Neovim - plugins will auto-install
nvim

Post-Install

  1. Install Language Servers

    :Mason

    Install servers for your languages (ts_ls, eslint, pyright, etc.)

  2. Install Formatters/Linters Via Mason or your package manager:

    • prettier - JS/TS/JSON/CSS/Markdown
    • stylua - Lua
    • black + isort - Python
    • eslint_d - JS/TS linting
    • pylint - Python linting
  3. Install Debuggers (optional, for nvim-dap)

    :Mason

    Install debuggers: python, node2, js, chrome, firefox

  4. Setup GitHub Copilot (optional)

    :Copilot setup

    Follow the authentication flow to connect your GitHub account.

  5. Install External Tools (optional but recommended)

    brew install lazygit deno  # macOS
    # or see respective project pages

⌨️ Keybindings

Leader key: <Space>

General

Key Action
<leader>? Show all keybindings (which-key)
<leader>w Save file
<leader>q Quit

File Navigation

Key Action
<leader>ff Find files
<leader>fg Live grep (search text)
<leader>fb Find buffers
<leader>fo Recent files
- Open oil.nvim (parent directory)
<leader>- Open oil.nvim (floating)
<leader>fm Open mini.files (current file dir)
<leader>fM Open mini.files (cwd)
<leader>fj / <leader>jf Built-in file explorer

Buffer Management

Key Action
<leader>bn Next buffer
<leader>bp Previous buffer
<leader>bd Delete buffer

Window Navigation

Key Action
<C-h> Move to left window
<C-l> Move to right window
<C-j> Move to bottom window
<C-k> Move to top window

Git

Key Action
]c / [c Next/previous hunk
<leader>hs Stage hunk
<leader>hr Reset hunk
<leader>hp Preview hunk
<leader>hb Blame line
<leader>tb Toggle line blame
<leader>gg Open lazygit
<leader>gb Git browse (open in GitHub)
<leader>gB Git blame line (inline)

LSP

Key Action
gd Go to definition
gr Go to references
K Hover documentation
<leader>rn Rename
<leader>ca Code action
<leader>cf Format buffer
<leader>cl Trigger linting

Diagnostics & Navigation

Key Action
<leader>xx Toggle diagnostics (Trouble)
<leader>xX Buffer diagnostics (Trouble)
<leader>a Toggle aerial (symbols)
[a / ]a Previous/next symbol
[d / ]d Previous/next diagnostic (mini.bracketed)
[b / ]b Previous/next buffer (mini.bracketed)

Editing

Key Action
gcc Toggle comment (line)
gc (visual) Toggle comment (selection)
sa{motion} Add surrounding
sd{char} Delete surrounding
sr{old}{new} Replace surrounding
< / > (visual) Indent left/right (keeps selection)

Utilities

Key Action
<C-\> Toggle terminal (toggleterm)
<C-/> Toggle terminal (snacks)
<leader>z Toggle zen mode
<leader>Z Toggle zoom
<leader>. Toggle scratch buffer
<leader>N Notification history
<CR> Start jump2d navigation

Database

Key Action
<leader>db Open Database UI
<leader>dt Toggle Database UI
<leader>df Find Database Buffer

Debugging πŸ†•

Key Action
<leader>db Toggle breakpoint
<leader>dc Continue
<leader>di Step into
<leader>do Step over
<leader>dO Step out
<leader>dr Toggle REPL
<leader>dl Run last
<leader>du Toggle DAP UI
<leader>dx Terminate debugger

Testing πŸ†•

Key Action
<leader>tt Run nearest test
<leader>tf Run current test file
<leader>ta Run all tests
<leader>ts Toggle test summary
<leader>to Show test output
<leader>tO Toggle output panel
<leader>tS Stop test
<leader>tw Toggle watch mode

AI Assistance πŸ†•

Key Action
<M-l> Accept suggestion
<M-]> Next suggestion
<M-[> Previous suggestion
<leader>ai Toggle Copilot Chat
<leader>aq Quick chat
<leader>ap Copilot actions (popup)
<leader>ax Clear chat

Session Management πŸ†•

Key Action
<leader>qs Restore session
<leader>qS Select session
<leader>ql Restore last session
<leader>qd Don't save current

Refactoring πŸ†•

Key Action
<leader>re Extract function (visual)
<leader>rf Extract to file (visual)
<leader>rv Extract variable (visual)
<leader>ri Inline variable
<leader>rI Inline function
<leader>rb Extract block
<leader>rbf Extract block to file
<leader>rr Refactor menu (Telescope)

TODO Comments πŸ†•

Key Action
]t / [t Next/previous todo
<leader>xt Todo list (Trouble)
<leader>xT Todo/Fix/Fixme (Trouble)
<leader>st Todo search (Telescope)
<leader>sT Todo/Fix/Fixme (Telescope)

Markdown & REST πŸ†•

Key Action
<leader>mp Toggle markdown preview
<leader>kr Run HTTP request
<leader>ka Run all HTTP requests
<leader>kt Toggle response view
<leader>kc Copy as cURL
]k / [k Next/previous request

Split Navigation πŸ†•

Key Action
<C-Arrow> Resize splits
<A-h/j/k/l> Move between splits
<leader><leader>h/j/k/l Swap buffers

πŸ“ Structure

~/.config/nvim/
β”œβ”€β”€ init.lua                       # Entry point
β”œβ”€β”€ lazy-lock.json                # Plugin versions (auto-generated)
└── lua/
    β”œβ”€β”€ config/
    β”‚   β”œβ”€β”€ options.lua           # Vim options
    β”‚   β”œβ”€β”€ keymaps.lua           # Keybindings
    β”‚   β”œβ”€β”€ autocmds.lua          # Autocommands
    β”‚   └── lazy.lua              # Plugin manager setup
    └── plugins/
        β”œβ”€β”€ ai/ πŸ†•                # AI assistance plugins
        β”‚   └── copilot.lua       # Copilot + CopilotChat
        β”œβ”€β”€ coding/               # Code enhancement plugins
        β”‚   β”œβ”€β”€ render-markdown.lua
        β”‚   β”œβ”€β”€ syntax.lua        # Tree-sitter
        β”‚   β”œβ”€β”€ todo-comments.lua πŸ†•
        β”‚   β”œβ”€β”€ refactoring.lua   πŸ†•
        β”‚   └── peek.lua          πŸ†•
        β”œβ”€β”€ debug/ πŸ†•             # Debugging tools
        β”‚   └── nvim-dap.lua      # DAP + UI + virtual text
        β”œβ”€β”€ editor/               # Editor enhancements
        β”‚   β”œβ”€β”€ editor.lua        # Autopairs, comments, oil
        β”‚   β”œβ”€β”€ mini.lua          # mini.nvim modules
        β”‚   └── smart-splits.lua  πŸ†•
        β”œβ”€β”€ git/                  # Git integration
        β”‚   β”œβ”€β”€ git.lua           # Gitsigns
        β”‚   └── diffview.lua      πŸ†•
        β”œβ”€β”€ lsp/                  # Language servers
        β”‚   β”œβ”€β”€ lsp.lua           # LSP configuration
        β”‚   β”œβ”€β”€ completion.lua    # blink.cmp
        β”‚   β”œβ”€β”€ formatting.lua    # conform + nvim-lint
        β”‚   └── typescript-tools.lua πŸ†•
        β”œβ”€β”€ navigation/           # File & code navigation
        β”‚   β”œβ”€β”€ telescope.lua
        β”‚   └── navigation.lua    # Trouble + Aerial
        β”œβ”€β”€ session/ πŸ†•           # Session management
        β”‚   └── persistence.lua
        β”œβ”€β”€ testing/ πŸ†•           # Test framework
        β”‚   └── neotest.lua       # Neotest + adapters
        β”œβ”€β”€ tools/ πŸ†•             # Utility tools
        β”‚   └── kulala.lua        # REST client
        β”œβ”€β”€ ui/                   # User interface
        β”‚   β”œβ”€β”€ colorscheme.lua
        β”‚   β”œβ”€β”€ lualine.lua
        β”‚   β”œβ”€β”€ noice.lua
        β”‚   └── snacks.lua
        └── keybindings.lua       # which-key

🎨 Customization

Change Colorscheme

Edit lua/plugins/colorscheme.lua:

return {
  "folke/tokyonight.nvim",
  config = function()
    require("tokyonight").setup({
      style = "night", -- or "storm", "moon", "day"
    })
    vim.cmd.colorscheme("tokyonight-night")
  end,
}

Disable Format on Save

:FormatDisable        " Disable for current buffer
:FormatDisable!       " Disable globally
:FormatEnable         " Re-enable

Add More LSP Servers

Edit lua/plugins/lsp.lua and add to ensure_installed:

ensure_installed = {
  "ts_ls",
  "rust_analyzer",  -- Add your server
},

Toggle Features

Many features can be toggled via snacks.nvim's toggle system or which-key.


πŸ€– AI-Assisted Modernization

This configuration was comprehensively upgraded by Claude (Anthropic's AI assistant) on October 1, 2024. The modernization process included:

Phase 1: Critical Updates

  • βœ… Replaced vim-polyglot with modern nvim-treesitter
  • βœ… Fixed duplicate keybindings and lazy loading conflicts
  • βœ… Added gitsigns.nvim for essential git integration
  • βœ… Integrated oil.nvim for vim-native file exploration

Phase 2: Enhanced Development Tools

  • βœ… Added conform.nvim for code formatting (replacing null-ls)
  • βœ… Added nvim-lint for asynchronous linting
  • βœ… Integrated trouble.nvim for beautiful diagnostics
  • βœ… Added aerial.nvim for code outline/symbols
  • βœ… Implemented which-key.nvim for keybinding discoverability

Phase 3: Snacks.nvim Feature Expansion

Expanded from 5 to 15+ snacks.nvim features:

  • βœ… Performance: bigfile, bufdelete, quickfile
  • βœ… Visual: indent, scroll, animate, statuscolumn, dim, zen
  • βœ… Git: lazygit, gitbrowse
  • βœ… Utilities: terminal, toggle, scope, scratch

Phase 4: Mini.nvim Ecosystem

  • βœ… Added mini.surround for surrounding operations
  • βœ… Added mini.ai for powerful textobjects
  • βœ… Added mini.files as alternative file manager
  • βœ… Added mini.jump2d for quick navigation
  • βœ… Added mini.bracketed for bracket-based navigation
  • βœ… Added mini.hipatterns for color highlighting
  • βœ… Added mini.trailspace for whitespace management

Phase 5: Professional Development Tools (October 2025) πŸ†•

Based on comprehensive research of the 2024-2025 Neovim ecosystem, added enterprise-grade development capabilities:

Debugging & Testing:

  • βœ… Integrated nvim-dap ecosystem - Full DAP debugging with UI, virtual text, and Mason integration
  • βœ… Added neotest framework - Unified testing for Jest, Vitest, Python, and Go

AI & Productivity:

  • βœ… Implemented copilot.lua + CopilotChat.nvim - GitHub Copilot with chat interface
  • βœ… Added persistence.nvim - Automatic session management per project

Code Quality & Refactoring:

  • βœ… Integrated refactoring.nvim - Extract functions, inline variables, advanced refactoring
  • βœ… Added todo-comments.nvim - Highlighted TODO/FIXME/HACK tracking with Telescope integration

Enhanced Git Workflow:

  • βœ… Added diffview.nvim - Superior diff viewer with 3-way merge conflict resolution

TypeScript/JavaScript:

  • βœ… Upgraded to typescript-tools.nvim - Enhanced TS/JS LSP with inlay hints and fast performance

Developer Tools:

  • βœ… Added kulala.nvim - REST client for .http files (API testing)
  • βœ… Added peek.nvim - Live Markdown preview with GitHub-style rendering
  • βœ… Added smart-splits.nvim - Seamless Neovim ↔ tmux navigation

Architectural Improvements:

  • βœ… Reorganized plugins into 12 logical categories (added: ai/, debug/, testing/, session/, tools/)
  • βœ… Upgraded completion engine from nvim-cmp to blink.cmp for better performance
  • βœ… Comprehensive keybinding documentation for all new features

Why These Plugins?

Selection Criteria:

  1. Active Maintenance: All plugins actively maintained in 2024-2025
  2. Community Validation: 1000+ stars or significant community buzz
  3. Best-in-Class: Industry-leading solutions in their categories
  4. Non-Redundant: Fill gaps without duplicating existing functionality
  5. Modern APIs: Use latest Neovim 0.10+ features and APIs

Impact:

  • Professional Debugging: Set breakpoints, inspect variables, step through code like VS Code
  • Integrated Testing: Run tests inline with real-time feedback
  • AI-Assisted Coding: Leverage GitHub Copilot for code generation and explanations
  • Advanced Refactoring: Professional-grade code restructuring tools
  • Complete Git Workflow: From hunks to diffs to merge conflicts
  • API Development: Test REST APIs without leaving Neovim

Methodology

The AI assistant:

  1. Analyzed the existing configuration structure
  2. Researched current Neovim best practices (2024-2025)
  3. Identified gaps and deprecated patterns
  4. Implemented changes in 5 tested phases
  5. Verified functionality after each phase
  6. Maintained the original config structure and organization

All changes follow modern Neovim conventions and are fully tested.


πŸ› Troubleshooting

Plugins not installing?

:Lazy sync

LSP not working?

  1. Check server is installed: :Mason
  2. Check LSP status: :LspInfo
  3. Restart LSP: :LspRestart

Tree-sitter errors?

:TSUpdate

Format not working?

Ensure formatters are installed:

:ConformInfo

πŸ“ License

MIT License - See LICENSE file for details


πŸ™ Credits

  • Configuration maintained by @jaded423
  • Modernized with assistance from Claude (Anthropic)
  • Built on the excellent Neovim plugin ecosystem

πŸ”— Resources


Enjoy your modern Neovim setup! πŸš€

About

Modern Neovim configuration with LSP, Tree-sitter, and AI-assisted modernization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages