Skip to content

fuad-daoud/nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

348 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My Neovim Config

A personal Neovim configuration built on a kickstart.nvim foundation, with lazy.nvim for plugin management, no Mason, and a rose-pine moon colorscheme.


Prerequisites

Install system packages before first launch:

# Base tools
sudo pacman -S git neovim npm unzip go zig

# Run the packages script for LSPs and formatters
bash pacakges.sh

pacakges.sh installs:

  • LSPs (pacman): lua-language-server, gopls, clang, yaml-language-server, bash-language-server
  • LSPs (AUR): zls, tailwindcss-language-server, jdtls, kotlin-language-server
  • Formatters: prettier, stylua, shfmt, shellcheck, yamllint, prettierd, actionlint, jq, google-java-format, ktlint
  • Go tools: goimports, golines, gomodifytags, dlv, templ
  • Markdown/mermaid: imagemagick, luarocks (pacman), magick LuaRock (luarocks, Lua 5.1), mmdc (npm)

On first launch, lazy.nvim bootstraps itself and installs all plugins automatically.


Structure

init.lua                  ← entry point
lua/
  scripts/
    setup.lua             ← globals (mapleader, nerd font)
    lazy.lua              ← lazy.nvim bootstrap + inline plugins
    autocmd.lua           ← autocommands
    keymaps.lua           ← global keymaps
    opt.lua               ← vim options
  plugins/
    *.lua                 ← one plugin spec per file
  utils.lua               ← shared helpers (OSC 7, etc.)
pacakges.sh               ← system package installer
.stylua.toml              ← Lua formatter config

Load Order

init.lua loads scripts in this sequence:

  1. setup.lua — sets mapleader/maplocalleader to <Space> and enables Nerd Font icons
  2. lazy.lua — bootstraps lazy.nvim, registers inline plugins, imports lua/plugins/
  3. autocmd.lua — registers all autocommands
  4. keymaps.lua — registers global keymaps
  5. opt.lua — sets vim options

Setup must run before lazy so that mapleader is set before any plugin keymaps are registered.


Colorscheme

rose-pine moon variant with transparency, bold/italic styles, and a custom palette override (rose = '#000000'). All DAP, gitsigns, and diagnostic highlights are mapped to rose-pine palette tokens for visual consistency.


Formatting

Lua files are formatted with stylua. CI checks formatting on PRs.

stylua --check .   # verify
stylua .           # fix

Config (.stylua.toml): 160-column, 2-space indent, single quotes, no call parentheses.


Further Documentation

About

A launch point for your personal nvim configuration

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors