brew install --cask font-jetbrains-mono-nerd-font
# or
brew install --cask font-fira-code-nerd-font
Then set your terminal to use the installed font.
3. Language Toolchains (Install what you need)
# Go
brew install go
# After install, run :GoInstallBinaries in nvim# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# After install, run :CargoInstallTools in nvim# Zig
brew install zig
# Python
brew install python
pip install pynvim # Optional: for some plugins# PHP
brew install php composer
# Laravel LSP (optional, for Laravel projects — see "Language Servers" below)
composer global require laravel/lsp
# Swift / iOS (macOS only)# Xcode + Command Line Tools provide sourcekit-lsp and xcodebuild# Lua (for luarocks, optional)
brew install lua luarocks
# Backup existing config
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
mv ~/.local/state/nvim ~/.local/state/nvim.bak
mv ~/.cache/nvim ~/.cache/nvim.bak
# Clone this config
git clone <your-repo>~/.config/nvim
# Start Neovim - plugins will auto-install on first launch
nvim
6. Post-Install Steps
Run these commands in Neovim after first launch:
" Wait for lazy.nvim to finish installing plugins, then:" Generate help tags
:helptagsALL" Install treesitter parsers (auto-installs, but can force)
:TSUpdate
" Check health
:checkhealth
" For Go development
:GoInstallBinaries
" For Rust development
:CargoInstallTools
" Build markdown-preview (if not auto-built)
:Lazy build markdown-preview.nvim
Powered by xcodebuild.nvim. Requires Xcode + Command Line Tools.
Key / Command
Action
<leader>xs
Setup project
<leader>xb / xr
Build / Build & Run
<leader>xt
Run tests
<leader>xT / xf
Test current class / function
<leader>xS / xd
Select scheme / device
<leader>xo
Boot simulator
<leader>xl
Toggle build logs
:XcodebuildPicker
All commands menu
Language Servers
Server configs live under lsp/ and are activated via vim.lsp.enable() in lua/plugins/lsp.lua.
Auto-installed via Mason:
Go: gopls
Rust: rust-analyzer
Zig: zls
Lua: lua_ls
TypeScript: ts_ls
Python: pyright
PHP: intelephense
Bash: bashls
CSS/HTML/JSON/YAML: vscode servers
Not managed by Mason:
Swift / Objective-C: sourcekit-lsp (ships with Xcode)
Laravel: laravel-lsp (installed via Composer, see below)
Laravel LSP
laravel/lsp is Laravel's official language server. It is
not available through Mason — install it globally with Composer:
composer global require laravel/lsp
Make sure Composer's global bin directory is on your PATH, otherwise Neovim cannot find
the laravel-lsp binary:
# Add to ~/.zshrc (macOS default location)export PATH="$HOME/.config/composer/vendor/bin:$PATH"# Verify
which laravel-lsp
Config lives in lsp/laravel_lsp.lua. The filename must match the name passed to
vim.lsp.enable() in lua/plugins/lsp.lua — laravel_lsp resolves to
lsp/laravel_lsp.lua, so a hyphenated filename silently fails to load.
It runs alongside intelephense rather than replacing it. intelephense handles general PHP
intelligence (classes, methods, properties); laravel-lsp adds Laravel-aware completion for
strings such as config('…'), route('…'), view('…') and env('…'), plus Blade
directives. It boots the Laravel application, so it only works in a real Laravel project
(one containing artisan).
To verify: open a PHP file in a Laravel project, type config(' in insert mode, and the
config keys should appear. :checkhealth vim.lsp lists it as attached.