diff --git a/homes/modules/programs/neovim/lua/plugins/comment.lua b/homes/modules/programs/neovim/lua/plugins/comment.lua new file mode 100644 index 0000000..cf45027 --- /dev/null +++ b/homes/modules/programs/neovim/lua/plugins/comment.lua @@ -0,0 +1,23 @@ +return { + { + "comment.nvim", + event = { "BufReadPost", "BufNewFile" }, + after = function(plugin) + require("Comment").setup({ + toggler = { + line = "cc", + block = "bc", + }, + opLeader = { + line = "c", + block = "b", + }, + extra = { + above = "c0", + below = "bo", + eol = "cA", + }, + }) + end, + }, +} diff --git a/homes/modules/programs/neovim/lua/plugins/init.lua b/homes/modules/programs/neovim/lua/plugins/init.lua index 7fa3ecd..62de146 100644 --- a/homes/modules/programs/neovim/lua/plugins/init.lua +++ b/homes/modules/programs/neovim/lua/plugins/init.lua @@ -5,4 +5,5 @@ require("lze").load({ { import = "plugins.fyler" }, { import = "plugins.mini-hipatterns" }, { import = "plugins.format" }, + { import = "plugins.comment" }, }) diff --git a/homes/modules/programs/neovim/nixcats.nix b/homes/modules/programs/neovim/nixcats.nix index d0bb93f..a90113f 100644 --- a/homes/modules/programs/neovim/nixcats.nix +++ b/homes/modules/programs/neovim/nixcats.nix @@ -5,12 +5,13 @@ spkgs, mpkgs, ... -}: let - inherit - (inputs.nixcats) +}: +let + inherit (inputs.nixcats) utils ; -in { +in +{ imports = [ inputs.nixcats.homeModule ]; @@ -25,234 +26,250 @@ in { # add any plugins in inputs named "plugins-pluginName" to pkgs.neovimPlugins # It will not apply to overall system, just nixCats. addOverlays = - /* - (import ./overlays inputs) ++ - */ + # (import ./overlays inputs) ++ [ (utils.standardPluginOverlay inputs) ]; # see the packageDefinitions below. # This says which of those to install. - packageNames = ["auroranvim"]; + packageNames = [ "auroranvim" ]; luaPath = "${./.}"; # the .replace vs .merge options are for modules based on existing configurations, # they refer to how multiple categoryDefinitions get merged together by the module. # for useage of this section, refer to :h nixCats.flake.outputs.categories - categoryDefinitions.replace = { - pkgs, - settings, - categories, - extra, - name, - mkNvimPlugin, - ... - } @ packageDef: { - lspsAndRuntimeDeps = { - general = with pkgs; [ - ripgrep - fd - ]; - treesitter = with pkgs; [ - tree-sitter - ]; - lang = with pkgs; { - lua = { - lsp = [ lua-language-server ]; - format = [ stylua ]; - }; - nix = { - lsp = [ - nil - nix-doc # TODO: i forgot what this is for + categoryDefinitions.replace = + { + pkgs, + settings, + categories, + extra, + name, + mkNvimPlugin, + ... + }@packageDef: + { + lspsAndRuntimeDeps = with pkgs; { + general = [ + ripgrep + fd + ]; + treesitter = [ + tree-sitter + ]; + lang = { + lua = { + lsp = [ lua-language-server ]; + format = [ stylua ]; + }; + nix = { + lsp = [ + nil + nix-doc # TODO: i forgot what this is for + ]; + format = [ nixfmt ]; + }; + rust = { + lsp = [ + cargo + mpkgs.rust-analyzer + ]; + format = [ rustfmt ]; + }; + zig = [ + spkgs.zls # FIX: using spkgs version as zls is broken rn ;-; ]; - format = [ nixfmt ]; - }; - rust = { - lsp = [ - cargo - mpkgs.rust-analyzer + elixir = [ + elixir-ls + ]; + gleam = [ + gleam + ]; + haskell = { + lsp = [ haskell-language-server ]; + format = [ ormolu ]; + }; + java = [ + jdt-language-server + javaPackages.compiler.openjdk17 + javaPackages.compiler.openjdk21 ]; - format = [ rustfmt ]; - }; - zig = [ - spkgs.zls # FIX: using spkgs version as zls is broken rn ;-; - ]; - elixir = [ - elixir-ls - ]; - gleam = [ - gleam - ]; - haskell = { - lsp = [ haskell-language-server ]; - format = [ ormolu ]; - }; - java = [ - jdt-language-server - javaPackages.compiler.openjdk17 - javaPackages.compiler.openjdk21 - ]; - }; - }; - - startupPlugins = { - general = with pkgs.vimPlugins; [ - lze - plenary-nvim - nvim-notify - nvim-web-devicons - base16-nvim - mini-nvim - ]; - treesitter = with pkgs.vimPlugins; [ - nvim-treesitter-textobjects - nvim-treesitter.withAllGrammars - ]; - }; - optionalPlugins = { - general = with pkgs.vimPlugins; [ - ]; - ui = with pkgs.vimPlugins; [ - dressing-nvim - ]; - qol = with pkgs.vimPlugins; [ - undotree - mini-hipatterns - ]; - telescope = with pkgs.vimPlugins; [ - telescope-nvim - telescope-fzf-native-nvim - telescope-ui-select-nvim - ]; - fyler = with pkgs.vimPlugins; [ - fyler-nvim - ]; - lsp = with pkgs.vimPlugins; [ - nvim-lspconfig - ]; - completion = with pkgs.vimPlugins; [ - blink-cmp - nvim-cmp - luasnip - friendly-snippets - cmp_luasnip - cmp-buffer - cmp-path - cmp-nvim-lua - cmp-nvim-lsp - cmp-cmdline - cmp-nvim-lsp-signature-help - cmp-cmdline-history - lspkind-nvim - ]; - format = with pkgs.vimPlugins; [ - conform-nvim - ]; - lang = with pkgs.vimPlugins; { - java = [ - nvim-jdtls - ]; - }; - }; - - # shared libraries to be added to LD_LIBRARY_PATH - # variable available to nvim runtime - sharedLibraries = { - general = with pkgs; [ - # libgit2 - ]; - }; - environmentVariables = { - lang = { - rust.lsp = { - # it literally won't see the rust-analyzer provided to it - # if you don't use an envrionment variable to tell it - RUST_ANALYZER_CMD = "${mpkgs.rust-analyzer}/bin/rust-analyzer"; - }; - elixir.lsp = { - ELIXIR_LS_CMD = "${pkgs.elixir-ls}/scripts/language_server.sh"; - }; - java.lsp = { - JAVA_HOME = "${pkgs.javaPackages.compiler.openjdk17}"; - OPENJDK_17 = "${pkgs.javaPackages.compiler.openjdk17}"; - OPENJDK_21 = "${pkgs.javaPackages.compiler.openjdk21}"; }; }; - }; - extraWrapperArgs = { - test = [ - ''--set CATTESTVAR2 "It worked again!"'' - ]; - }; - # lists of the functions you would have passed to - # python.withPackages or lua.withPackages - # get the path to this python environment - # in your lua config via - # vim.g.python3_host_prog - # or run from nvim terminal via :!-python3 - extraPython3Packages = { - test = _: []; + startupPlugins = with pkgs.vimPlugins; { + general = [ + lze + plenary-nvim + nvim-notify + nvim-web-devicons + base16-nvim + mini-nvim + ]; + treesitter = [ + nvim-treesitter-textobjects + nvim-treesitter.withAllGrammars + ]; + }; + + optionalPlugins = with pkgs.vimPlugins; { + general = [ + ]; + ui = [ + dressing-nvim + ]; + qol = [ + undotree + mini-hipatterns + ]; + telescope = [ + telescope-nvim + telescope-fzf-native-nvim + telescope-ui-select-nvim + ]; + fyler = [ + fyler-nvim + ]; + lsp = [ + nvim-lspconfig + ]; + completion = [ + blink-cmp + nvim-cmp + luasnip + friendly-snippets + cmp_luasnip + cmp-buffer + cmp-path + cmp-nvim-lua + cmp-nvim-lsp + cmp-cmdline + cmp-nvim-lsp-signature-help + cmp-cmdline-history + lspkind-nvim + ]; + format = [ + conform-nvim + ]; + comment = [ + comment-nvim + ]; + lang = { + java = [ + nvim-jdtls + ]; + }; + }; + + # shared libraries to be added to LD_LIBRARY_PATH + # variable available to nvim runtime + sharedLibraries = { + general = with pkgs; [ + # libgit2 + ]; + }; + + environmentVariables = { + lang = { + rust.lsp = { + # it literally won't see the rust-analyzer provided to it + # if you don't use an envrionment variable to tell it + RUST_ANALYZER_CMD = "${mpkgs.rust-analyzer}/bin/rust-analyzer"; + }; + elixir.lsp = { + ELIXIR_LS_CMD = "${pkgs.elixir-ls}/scripts/language_server.sh"; + }; + java.lsp = { + JAVA_HOME = "${pkgs.javaPackages.compiler.openjdk17}"; + OPENJDK_17 = "${pkgs.javaPackages.compiler.openjdk17}"; + OPENJDK_21 = "${pkgs.javaPackages.compiler.openjdk21}"; + }; + }; + }; + + extraWrapperArgs = { + test = [ + ''--set CATTESTVAR2 "It worked again!"'' + ]; + }; + # lists of the functions you would have passed to + # python.withPackages or lua.withPackages + + # get the path to this python environment + # in your lua config via + # vim.g.python3_host_prog + # or run from nvim terminal via :!-python3 + extraPython3Packages = { + test = _: [ ]; + }; + # populates $LUA_PATH and $LUA_CPATH + extraLuaPackages = { + test = [ (_: [ ]) ]; + }; }; - # populates $LUA_PATH and $LUA_CPATH - extraLuaPackages = { - test = [(_: [])]; - }; - }; # see :help nixCats.flake.outputs.packageDefinitions packageDefinitions.replace = { # these are the names of your packages # you can include as many as you wish. - auroranvim = {pkgs, ...}: { - # they contain a settings set defined above - # see :help nixCats.flake.outputs.settings - settings = { - wrapRc = true; - # IMPORTANT: - # your alias may not conflict with your other packages. - aliases = ["auroravim" "auravim" "foxyvim" "avix" "fvix" "auim"]; - }; - # and a set of categories that you want - # (and other information to pass to lua) - categories = { - general = true; + auroranvim = + { pkgs, ... }: + { + # they contain a settings set defined above + # see :help nixCats.flake.outputs.settings + settings = { + wrapRc = true; + # IMPORTANT: + # your alias may not conflict with your other packages. + aliases = [ + "auroravim" + "auravim" + "foxyvim" + "avix" + "fvix" + "auim" + ]; + }; + # and a set of categories that you want + # (and other information to pass to lua) + categories = { + general = true; - ui = true; - qol = true; - telescope = true; - fyler = true; - lsp = true; - completion = true; - format = true; - treesitter = true; + ui = true; + qol = true; + telescope = true; + fyler = true; + lsp = true; + completion = true; + treesitter = true; + format = true; + comment = true; - lang = { - lua = { - lsp = true; - format = true; + lang = { + lua = { + lsp = true; + format = true; + }; + nix = { + lsp = true; + format = true; + }; + rust = { + lsp = true; + format = true; + }; + zig = true; + elixir = true; + gleam = true; + haskell = { + lsp = true; + format = true; + }; + java = true; }; - nix = { - lsp = true; - format = true; - }; - rust = { - lsp = true; - format = true; - }; - zig = true; - elixir = true; - gleam = true; - haskell = { - lsp = true; - format = true; - }; - java = true; }; }; - }; }; }; };