Skip to content

gastonmorixe/nvim-12-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Neovim 0.12 Pure Native Configuration

A zero-framework, minimalist, and hyper-fast Neovim 0.12 configuration. This setup is the result of a complete migration from Neovim 0.11 and LazyVim, moving away from third-party abstraction layers in favor of pure native APIs.

✨ Highlights

  • vim.pack Package Management: Leveraging the new built-in Neovim 0.12 plugin manager. No more lazy.nvim or packer.nvim overhead.
  • Native LSP Configuration: Using the state-of-the-box declarative vim.lsp.config and vim.lsp.enable() patterns.
  • Native Autocomplete: Powered by the new 0.12 'autocomplete' option for a "batteries-included" feel.
  • Native Undo Tree: Persistent, visual undo history accessible via :Undotree.
  • Decoupled Architecture: Every plugin has its own isolated configuration file in lua/plugins/. Clean, readable, and modular.
  • Optimized for Swift/iOS: Full development support for Apple's ecosystem including sourcekit-lsp, Treesitter, and custom Swift-specific indentation.

🛠️ Tech Stack

📂 File Structure

~/.config/nvim/
├── init.lua                  # Core entry point
├── lua/
│   ├── config/
│   │   ├── options.lua       # Native 0.12 options (autocomplete, etc.)
│   │   ├── keymaps.lua       # Decoupled keybindings
│   │   ├── autocmds.lua      # Standard autocommands
│   │   └── providers.lua     # Early language provider setup
│   └── plugins/
│       ├── init.lua          # Central vim.pack plugin hub
│       ├── lspconfig.lua     # Native 0.12 LSP configuration
│       └── [plugin].lua      # Exactly one plugin configuration per file
└── docs/
    └── LSP-REFERENCE.md      # Consolidated research for all languages

⚙️ Installation & Management

  1. Clone: git clone https://github.com/your-username/nvim-config ~/.config/nvim
  2. Bootstrap: Launch Neovim. The vim.pack manager will automatically detect and install all plugins on the first run.
  3. Update Plugins: Run :lua vim.pack.update(). This will open a confirmation buffer; review the changes and run :w to apply the updates.
  4. Restart: Use the new 0.12 :restart command to apply structural changes without quitting Neovim.

🧰 Troubleshooting

Treesitter parsers require the tree-sitter CLI

nvim-treesitter tracks its main branch (the rewrite). Two things differ from the old master branch:

  • setup() no longer reads ensure_installed / auto_install / highlight / indent. Parsers are installed with require("nvim-treesitter").install{...} and highlighting is turned on per-buffer with vim.treesitter.start() (both handled in lua/plugins/treesitter.lua).

  • Parsers are compiled from source, so the tree-sitter CLI must be on PATH. On macOS the CLI is a separate Homebrew formula from the library:

    brew install tree-sitter-cli   # NOT `tree-sitter`, which is library-only

If you see nvim-treesitter parser missing <lang> or files open with no syntax highlighting, install the CLI, then run :lua require("nvim-treesitter").install{ "typescript", ... } (or just reopen Neovim; missing parsers install on startup).

Trouble <leader>cS says "No results for lsp"

Two independent causes, both handled in the current config:

  • Server not attached yet. The LSP keymaps wait for LspAttach before opening Trouble, so firing on a freshly-opened buffer no longer fails silently.
  • Cursor sitting on a symbol whose only location is the current line (e.g. an interface property whose definition equals its single reference). Trouble hides current-line results by default; this config sets include_current = true on the lsp mode so those symbols still show. Cursor-follow speed is controlled by updatetime (set to 250 in lua/config/options.lua).

📜 License

Distributed under the MIT License. See LICENSE for more information. Copyright (c) 2026 Gaston Morixe.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages