summaryrefslogtreecommitdiff
path: root/parts/users/seth/programs/neovim/default.nix
diff options
context:
space:
mode:
authorseth <[email protected]>2023-10-01 10:41:09 -0400
committerseth <[email protected]>2023-10-01 10:49:46 -0400
commita8630322f77dbb7be4810099a42352b9278996a1 (patch)
treeb8df66a7e5b9d8c31b27a4a9b357ff7e4b9d418f /parts/users/seth/programs/neovim/default.nix
parent30f55e656d344e017f66ecbae8eb27cf13ba53bb (diff)
treewide!: flatten to parts/ layout
Diffstat (limited to 'parts/users/seth/programs/neovim/default.nix')
-rw-r--r--parts/users/seth/programs/neovim/default.nix93
1 files changed, 93 insertions, 0 deletions
diff --git a/parts/users/seth/programs/neovim/default.nix b/parts/users/seth/programs/neovim/default.nix
new file mode 100644
index 0000000..2a186ac
--- /dev/null
+++ b/parts/users/seth/programs/neovim/default.nix
@@ -0,0 +1,93 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.getchoo.programs.neovim;
+ inherit (lib) mkEnableOption mkIf;
+in {
+ options.getchoo.programs.neovim.enable = mkEnableOption "neovim" // {default = true;};
+
+ config = mkIf cfg.enable {
+ programs.neovim = {
+ enable = true;
+ defaultEditor = true;
+ extraPackages = with pkgs; [
+ actionlint
+ alejandra
+ beautysh
+ codespell
+ deadnix
+ just
+ nil
+ nodePackages.alex
+ shellcheck
+ statix
+ stylua
+ sumneko-lua-language-server
+ ];
+ plugins = with pkgs.vimPlugins; [
+ # general
+ catppuccin-nvim
+
+ # TODO: don't pin when deprecation notice
+ # is no longer in nixpkgs
+ (fidget-nvim.overrideAttrs (_: {
+ src = pkgs.fetchFromGitHub {
+ owner = "j-hui";
+ repo = "fidget.nvim";
+ rev = "41f327b53c7977d47aee56f05e0bdbb4b994c5eb";
+ hash = "sha256-v9qARsW8Gozit4Z3+igiemjI467QgRhwM+crqwO9r6U=";
+ };
+ }))
+
+ flash-nvim
+ gitsigns-nvim
+ indent-blankline-nvim
+ lualine-nvim
+ neo-tree-nvim
+ nvim-web-devicons
+ mini-nvim
+
+ # completion
+ nvim-cmp
+ cmp-nvim-lsp
+ cmp-buffer
+ cmp_luasnip
+ cmp-async-path
+ luasnip
+
+ # ui
+ dressing-nvim
+ noice-nvim
+ nui-nvim
+ nvim-notify
+
+ # lsp
+ nvim-lspconfig
+ null-ls-nvim
+ pkgs.vim-just
+
+ ## utils
+ bufferline-nvim
+ plenary-nvim
+ telescope-nvim
+ trouble-nvim
+ which-key-nvim
+
+ # treesitter
+ nvim-treesitter.withAllGrammars
+ nvim-ts-context-commentstring
+ ];
+ extraLuaConfig = ''
+ require("getchoo")
+ '';
+ };
+
+ xdg.configFile."nvim/lua/getchoo" = {
+ source = ./config;
+ recursive = true;
+ };
+ };
+}