Skip to content

Conversation

@nateemerson
Copy link
Owner

This commit completes the migration from Packer to Lazy.nvim, bringing improved performance, better lazy-loading capabilities, and a modern plugin management experience.

New Files

  • lua/config/lazy.lua: Bootstrap code with auto-installation
  • lua/plugins/*.lua: Organized plugin specs by category:
    • ui.lua: Colorscheme, statusline, file explorer
    • navigation.lua: Harpoon, Telescope, Neogit
    • lsp.lua: Complete LSP suite (lsp-zero, Mason, nvim-cmp)
    • treesitter.lua: Syntax parsing configuration
    • utils.lua: Shared dependencies and utilities
  • LAZY_MIGRATION_GUIDE.md: Comprehensive migration documentation
  • lazy-lock.json: Plugin version lockfile

Modified Files

  • init.lua: Removed colorscheme config (now in lua/plugins/ui.lua)
  • lua/nateemerson/init.lua: Load Lazy instead of Packer
  • after/plugin/lsp.lua: Updated LSP server names
  • lua/nateemerson/lsp/handlers.lua: Modern diagnostic signs API
  • lua/nateemerson/lsp/mason.lua: Removed redundant server setup

Key Improvements

  • Fixed deprecations for Neovim 0.11:
    • tsserver → ts_ls (TypeScript language server rename)
    • volar → vue_ls (Vue language server rename)
    • Diagnostic signs now use modern vim.diagnostic.config() API
    • Removed deprecated require('lspconfig') direct access
  • Better lazy-loading strategy:
    • Plugins load on-demand (commands, events, filetypes)
    • Colorscheme has priority=1000 for early loading
    • Insert-mode plugins only load when entering insert mode
  • Eliminated conflicts between lsp-zero and manual lspconfig setup
  • Organized plugins by category for easier maintenance
  • Added comprehensive migration guide with troubleshooting

Testing

All LSP servers install and function correctly:

  • ts_ls (TypeScript/JavaScript)
  • eslint, rust_analyzer, lua_ls, gopls
  • tailwindcss, astro, vue_ls, biome

🤖 Generated with Claude Code

nateemerson and others added 3 commits October 26, 2025 19:48
This commit completes the migration from Packer to Lazy.nvim, bringing
improved performance, better lazy-loading capabilities, and a modern
plugin management experience.

## New Files

- lua/config/lazy.lua: Bootstrap code with auto-installation
- lua/plugins/*.lua: Organized plugin specs by category:
  - ui.lua: Colorscheme, statusline, file explorer
  - navigation.lua: Harpoon, Telescope, Neogit
  - lsp.lua: Complete LSP suite (lsp-zero, Mason, nvim-cmp)
  - treesitter.lua: Syntax parsing configuration
  - utils.lua: Shared dependencies and utilities
- LAZY_MIGRATION_GUIDE.md: Comprehensive migration documentation
- lazy-lock.json: Plugin version lockfile

## Modified Files

- init.lua: Removed colorscheme config (now in lua/plugins/ui.lua)
- lua/nateemerson/init.lua: Load Lazy instead of Packer
- after/plugin/lsp.lua: Updated LSP server names
- lua/nateemerson/lsp/handlers.lua: Modern diagnostic signs API
- lua/nateemerson/lsp/mason.lua: Removed redundant server setup

## Key Improvements

- Fixed deprecations for Neovim 0.11:
  - tsserver → ts_ls (TypeScript language server rename)
  - volar → vue_ls (Vue language server rename)
  - Diagnostic signs now use modern vim.diagnostic.config() API
  - Removed deprecated require('lspconfig') direct access
- Better lazy-loading strategy:
  - Plugins load on-demand (commands, events, filetypes)
  - Colorscheme has priority=1000 for early loading
  - Insert-mode plugins only load when entering insert mode
- Eliminated conflicts between lsp-zero and manual lspconfig setup
- Organized plugins by category for easier maintenance
- Added comprehensive migration guide with troubleshooting

## Testing

All LSP servers install and function correctly:
- ts_ls (TypeScript/JavaScript)
- eslint, rust_analyzer, lua_ls, gopls
- tailwindcss, astro, vue_ls, biome

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Cleanup after migration to Lazy.nvim by removing old Packer files
that are no longer needed:

- lua/nateemerson/plugins.lua: Old Packer plugin configuration
- plugin/packer_compiled.lua: Packer compilation cache

These files have been replaced by the new Lazy.nvim setup in
lua/config/lazy.lua and lua/plugins/*.lua.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Created claude.md as a detailed reference guide for working with
Claude Code in this dotfiles repository. The guide provides context,
workflows, and best practices for maintaining and modifying the
configuration.

Contents:
- Repository structure overview with detailed file maps
- Critical knowledge about LSP configuration architecture
- Neovim 0.11+ API patterns and deprecated patterns to avoid
- Common workflows (adding plugins, LSP servers, zsh functions)
- Best practices for commits, testing, and deprecation handling
- Emergency procedures for broken configurations
- Maintenance checklists for regular updates
- Specific guidance for Claude Code interactions

This guide captures lessons learned from the Lazy.nvim migration
and provides a comprehensive reference for future modifications.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants