Skip to content

Don-Burns/kickstart.nvim

 
 

Repository files navigation

kickstart.nvim

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

Installation

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}"/nvim

Clone 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\ 

Trouble Shooting

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

Configuring

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.

Plugin Config

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,
}

Testing

This config includes automated tests using plenary.nvim's test harness. Tests run with the full Neovim configuration loaded.

Running Tests

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 Categories

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

Updating Snapshots

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.

About

A launch point for your personal nvim configuration

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Lua 97.0%
  • Python 1.7%
  • Just 1.3%