This config was originally based on kickstart.nvim and has since be heavily customized to my use. The old README is still in this repo for later referencing as there is still good info there that I don't want to have in the main README
If you have an existing nvim config, you may want to back it up first.
mv "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim "${XDG_CONFIG_HOME:-$HOME/.config}"/nvimClone kickstart.nvim:
- on Linux and Mac
git clone https://github.com/Don-Burns/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim- on Windows (cmd)
git clone https://github.com/Don-Burns/kickstart.nvim.git %userprofile%\AppData\Local\nvim\ - on Windows (powershell)
git clone https://github.com/Don-Burns/kickstart.nvim.git $env:USERPROFILE\AppData\Local\nvim\ Most requirements are automatically installed by the config. However, there are a few things that may need to be installed manually. These are:
- Make sure to review the readmes of the plugins if you are experiencing errors. In particular:
- See Windows Installation if you have trouble with
telescope-fzf-native
Top level configuration is handled in init.lua. In general changes won't needed here much unless there is some ordering needed to imports. There are still config configs I have not migrated out of there yet too, e.g. mason, telescope.
All new config should be added to the custom dir. Non-plugin related config can go at that level. Plugin configs should go to plugins dir.
In general the installation using Lazy (The plugin manager in use) will be on the repos for the plugin. Occasionally a plugin will need config/setup to be called. This can be done in a "config" function. e.g.
return {
'{Author/PackageName.nvim}',
config = function()
-- custom logic goes here
end,
}This config includes automated tests using plenary.nvim's test harness. Tests run with the full Neovim configuration loaded.
Requires just command runner.
# Run all tests
just test
# Run a specific test file
just test-file testing/specs/startup_spec.lua
# Update snapshots (when diagnostics legitimately change)
just update-snapshots
# Regenerate the diagnostics snapshot only
just generate-snapshot| Test | Purpose |
|---|---|
startup_spec.lua |
Verifies Neovim starts without errors/warnings and core plugins load |
diagnostics_spec.lua |
Snapshot tests for Python diagnostics (ruff, mypy, cspell) |
format_spec.lua |
Verifies format-on-save works and can be toggled |
telescope_spec.lua |
Verifies Telescope pickers and Treesitter integration |
When LSP/linter versions change and diagnostics legitimately differ:
just update-snapshots
git diff testing/snapshots/ # Review changes
git add testing/snapshots/Tests also run in CI via GitHub Actions on push and pull requests.