Skip to content

SystematicError/frosty-vim

Repository files navigation

Frosty Vim

Editor showcase Search showcase Git showcase

What is it?

Frosty is a modern and fully configured development environment for Neovim, with a focus on functionality and looks. Its designed to be best used as a Nix package, whilst still being compatible on systems without it.

Installation

Nix

Make sure that the flake and nix-command experimental features have been enabled.

To try frosty without installing:

nix run github:SystematicError/frosty-vim

Non-nix

git clone https://github.com/SystematicError/frosty-vim ~/.config/nvim --depth 1

Language support

These are the defaults, the config can be tweaked to add further support as needed.

Syntax highlighting and Treesitter based functionality for 300+ languages are provided via parsers from nixpkgs. Additionally, further support is provided for the following languages:

Language Language Server Formatter
Lua luals stylua
Nix nil alejandra
Python basedpyright ruff
Rust rust-analyzer rustfmt
Shell bashls shfmt

+ Languages supported by the Biome toolchain

Customising the Nix package

The flake.nix file defines how the Frosty package gets built. Stuff like runtime dependencies and Treesitter parsers are defined there.

Frosty can also load a custom userconfig file through the FROSTY_USERCONFIG environment variable, without needing to modify the flake itself! Here's an example:

-- File path: `~/frosty.lua`

-- Send a notification after starting up
vim.schedule(function()
    vim.notify "Hello from the userconfig!"
end)

-- The userconfig file should return a `LazySpec` (https://lazy.folke.io/spec)
return {
    "alec-gibson/nvim-tetris",
    lazy = false,
    config = false,
}

-- The :Tetris command should now be available if the userconfig loads correctly

Now, running the command given below will load the userconfig:

FROSTY_USERCONFIG="$HOME/frosty.lua" nvim

Note

Fetching extra plugins via the userconfig file will require you to have git installed. After fetching a new plugin, Lazy might throw an error, but you can safely ignore this and restart Neovim.

About

❄️ Neovim configuration with a side of flakes

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published