- Lua 80.9%
- Nix 19%
| .github | chore(deps): bump actions/checkout from 4 to 5 ( #24 ) | |
| config | nix: use weave | |
| modules | flake: vendor neovim-nightly-overlay | |
| npins | nix: use weave | |
| pkgs | nix: use weave | |
| .editorconfig | options: restructure | |
| .emmyrc.json | meta: add lua lsp env | |
| .envrc | feat: init | |
| .gitattributes | feat: init | |
| .gitignore | feat: init | |
| .luarc.json | meta: add lua lsp env | |
| default.nix | nix: use weave | |
| flake.lock | nix: use weave | |
| flake.nix | nix: use weave | |
| LICENSE | meta: license | |
| LICENSE-APACHE-2.0 | plugin: vendor treesitter indent | |
| README.md | nix: use weave | |
| selene.toml | chore: use treefmt | |
| stylua.toml | options: restructure | |
| treefmt.nix | nix: use weave | |
| vim.toml | feat: init | |
ivy is my custom nix configuration for neovim. it uses npins for plugin management and lynn.nvim for plugin configuration.
run via nix:
nix run git+https://codeberg.org/comfysage/ivy
components
pkgs/
this directory contains the nix packages within the setup. the most important
is ivy/.
pkgs/ivy/ is a neovim wrapper for the setup. it uses weave, which is a
special nix wrapper for neovim that makes including your own lua configuration
really easy and simple.
the ivy package merges the npins sources and treesitter grammars. these are
also merged with some vimPlugin's from nixpkgs for plugins that require build
steps - like blink.pairs.
the advantage of managing the plugins with npins is that they can be manually updated:
npins update lynn
# or all of them
npins update
config/
this is the actual lua configuration. this directory will get copied to the nix store and used as the config for the wrapper.
this directory contains some special subdirectories: lua/ivy/init.lua is the
entry point for the configuration. lua/ivy/plugins/ is a special directory
that specifies the plugin specs for lynn.nvim. lua/ivy/config contains
custom neovim options and settings. config/ contains the setup options for
all the plugins and will get sourced automatically by lynn.nvim. plugin/
contains some small plugin scripts that i've written.
lsp/ contains the lsp options for some lsp's that aren't supported by
nvim-lspconfig or need some special settings. snippets/ contains custom
snippets; these will get merged with snippets from friendly-snippets