From 7b9674969a2aa1d95d6170224cb7449d0a4c6108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Mon, 10 Apr 2023 01:05:25 +0200 Subject: [PATCH] feat(nvim): add null ls --- modules/programs/nvim/default.nix | 3 + .../programs/nvim/plugins/null-ls-nvim.lua | 58 +++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 modules/programs/nvim/plugins/null-ls-nvim.lua diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index 74e0c28..8c66316 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -49,14 +49,17 @@ in extraPackages = with pkgs; [ alejandra black + deadnix isort jq nil nixpkgs-fmt nodePackages.bash-language-server + nodePackages.cspell rustfmt shellcheck shfmt + statix stylua sumneko-lua-language-server taplo diff --git a/modules/programs/nvim/plugins/null-ls-nvim.lua b/modules/programs/nvim/plugins/null-ls-nvim.lua new file mode 100644 index 0000000..e8d0931 --- /dev/null +++ b/modules/programs/nvim/plugins/null-ls-nvim.lua @@ -0,0 +1,58 @@ +local null_ls = require("null-ls") + +null_ls.setup({ + sources = { + -- Code actions + null_ls.builtins.code_actions.cspell, + null_ls.builtins.code_actions.gitsigns, + null_ls.builtins.code_actions.shellcheck, + null_ls.builtins.code_actions.statix, + -- Completion + null_ls.builtins.completion.spell, + -- Diagnostics + null_ls.builtins.diagnostics.cspell, + null_ls.builtins.diagnostics.deadnix, + null_ls.builtins.diagnostics.shellcheck, + null_ls.builtins.diagnostics.statix, + }, +}) + +-- disable cspell initially +null_ls.disable("cspell") + +-- make sources toggle able +require("which-key").register({ + n = { + name = "null-ls", + c = { + function() + null_ls.toggle("cspell") + end, + "cspell", + }, + g = { + function() + null_ls.toggle("gitsigns") + end, + "gitsigns", + }, + s = { + function() + null_ls.toggle("shellcheck") + end, + "shellcheck", + }, + S = { + function() + null_ls.toggle("statix") + end, + "statix", + }, + d = { + function() + null_ls.toggle("deadnix") + end, + "deadnix", + }, + }, +}, { prefix = "t" })