Personal neovim config, modern features and configuration near IDE level. Build with Lazy and mason. Fork from https://github.com/NoamFav/Nvim-config
  • Lua 84.4%
  • Shell 11.9%
  • Vim Script 3.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-27 07:17:57 -04:00
.github/ISSUE_TEMPLATE Update issue templates 2025-02-19 09:26:24 +01:00
colors feat(config): add machine-specific colorscheme regeneration on wallpaper change 2026-08-15 18:55:59 +02:00
docs feat(ui): redesign snacks dashboard and lualine statusline, fix overseer command names, add lazygit and session support 2026-08-10 17:57:56 +02:00
lua remove solargraph 2026-10-27 07:17:57 -04:00
scripts fix: clear RETURN trap after firing to avoid unbound tmp var later returns 2026-09-08 20:37:15 -04:00
.gitignore feat(config): add machine-specific colorscheme regeneration on wallpaper change 2026-08-15 18:55:59 +02:00
.luarc.json feat(lint): disable undefined field diagnostics for all files 2026-08-07 23:23:27 +02:00
_config.yml 2026-08-26 15:18:12 +02:00
CODE_OF_CONDUCT.md consecutive spaces removal 2026-08-18 05:33:57 +02:00
init.lua add norminettetoggle on c/h files in 42 tree 2026-08-27 15:14:26 +02:00
init.lua.bak feat(colors): add wallpaper colorscheme for dark backgrounds 2026-08-15 18:34:04 +02:00
lazy-lock.json 2026-10-26 11:52:46 +01:00
LICENSE Create LICENSE 2024-09-19 14:00:50 +02:00
README.md feat(ui): redesign snacks dashboard and lualine statusline, fix overseer command names, add lazygit and session support 2026-08-10 17:57:56 +02:00
vimrc refactor(scripts, update_output_helpers_section_name) 2026-08-20 17:29:29 +02:00

Nvim-config Banner Typing SVG

Neovim Lua lazy.nvim License

What is this

A single Neovim config that stays fast across 28 language servers without turning into config soup. One central file — lua/lsp/servers.lua — declares every server and its settings; Mason installs the binaries; native vim.lsp.config/vim.lsp.enable wires them up, with no nvim-lspconfig server tables duplicating that work. Formatting, Treesitter parsers, and colorschemes follow the same one-file-per-concern pattern. Full breakdown in docs/ARCHITECTURE.md.

Tech Stack

Core


Plugin & LSP Layer


UI & Navigation


Languages

Features

🔍 Finding Things

  • Smart picker — Snacks.picker for files, grep, buffers, git, LSP symbols, diagnostics, and more
  • Harpoon — pin & jump between 4 files instantly
  • Dashboard — recent files, projects, live git status

🧠 LSP & Completion

  • 28 language servers, native vim.lsp.config, zero nvim-lspconfig boilerplate
  • blink.cmp — LSP + path + snippets + buffer + emoji + dictionary sources
  • Trouble — pinned diagnostics/symbols panes, follow-cursor
  • Lspsaga — hover docs, rename, code action menu

=======

🌐 Git & Tools

  • LazyGit, Diffview, Gitsigns, git-blame, git-conflict — all wired through Snacks/native keymaps
  • Toggleterm — floating terminal, one keystroke away
  • 42 School — header stamping + Norm linting + c_formatter_42

📚 Language Extras

  • Jupyter notebooks — Molten + image.nvim (Kitty graphics protocol)
  • LaTeX — VimTeX + latexmk, live compile
  • Go — go.nvim: run/test/coverage/struct-tags/iferr, all layered over gopls
  • C/C++ — clangd inlay hints + AST view + parameter highlighting

Full write-up, with the reasoning behind each pick, in docs/FEATURES.md.

Quickstart

Option A — scripted (macOS/Linux). Backs up any existing config, installs core deps + a Nerd Font, optionally installs language runtimes (prompted interactively, or pass -l go,rust,python, or -l all), fetches OmniSharp if you picked dotnet, clones, and launches:

curl -fsSL https://raw.githubusercontent.com/NoamFav/Nvim-config/main/scripts/install.sh | bash -s -- -l go,rust,python
# or just `... | bash` to be prompted for languages, or add -y to skip every prompt

See scripts/install.sh --help (or the top of the file) for every flag.

Option B — manual:

# Core requirements (macOS/Homebrew shown — see docs/INSTALL.md for Linux/Windows)
brew install neovim git ripgrep fd lazygit tree-sitter universal-ctags

# Backup existing config
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak

---

## Installation

# Create the backup/swap/undo dirs lua/core/options.lua expects
mkdir -p ~/.logs/nvim/backup ~/.logs/nvim/swap ~/.logs/nvim/undo

# Launch — lazy.nvim bootstraps itself, installs plugins,
# then Mason auto-installs LSP servers + formatters
nvim

Tip

Run :Mason after first launch to confirm every server installed cleanly, and :checkhealth to catch any missing system dependency.

Note

Only need a couple of languages? Don't install every runtime in docs/REQUIREMENTS.md — Mason only installs servers/formatters, not compilers/SDKs, so add those as you actually need them.

[!WARNING] > scripts/install.sh covers macOS (Homebrew), Ubuntu/Debian (apt), Fedora (dnf), and Arch (pacman) — no Windows/WSL path. Language runtimes it can't install cleanly (e.g. Dart/Terraform on apt, most AUR-only packages on Arch) print a warning with a link instead of silently skipping. Piping any script into bash runs arbitrary code with your permissions — read it first if that matters to you: scripts/install.sh.

Colorschemes

Switch with <leader>uC — all configured transparent by default.

Footer typing

MIT — see LICENSE

Made with ♥ by NoamFav