diff options
| author | seth <[email protected]> | 2023-12-18 01:28:42 -0500 |
|---|---|---|
| committer | seth <[email protected]> | 2023-12-18 02:18:35 -0500 |
| commit | 8faa242f21648e52a6bbdfa803fd4ea1b0e347e0 (patch) | |
| tree | eff6694cefb2f821bf19b0d8cb3d97bf48cb15b9 /config/plugins | |
| parent | 9fe8afd0c5f2b439176728d8863570bf22614dbd (diff) | |
port to nixvim
Diffstat (limited to 'config/plugins')
| -rw-r--r-- | config/plugins/bufferline.nix | 19 | ||||
| -rw-r--r-- | config/plugins/cmp.nix | 31 | ||||
| -rw-r--r-- | config/plugins/default.nix | 12 | ||||
| -rw-r--r-- | config/plugins/efmls.nix | 100 | ||||
| -rw-r--r-- | config/plugins/fidget.nix | 5 | ||||
| -rw-r--r-- | config/plugins/flash.nix | 5 | ||||
| -rw-r--r-- | config/plugins/gitsigns.nix | 5 | ||||
| -rw-r--r-- | config/plugins/ibl.nix | 22 | ||||
| -rw-r--r-- | config/plugins/lsp-format.nix | 5 | ||||
| -rw-r--r-- | config/plugins/lsp.nix | 54 | ||||
| -rw-r--r-- | config/plugins/lualine.nix | 8 | ||||
| -rw-r--r-- | config/plugins/mini.nix | 36 | ||||
| -rw-r--r-- | config/plugins/neo-tree.nix | 11 | ||||
| -rw-r--r-- | config/plugins/treesitter.nix | 25 | ||||
| -rw-r--r-- | config/plugins/trouble.nix | 5 | ||||
| -rw-r--r-- | config/plugins/which-key.nix | 9 |
16 files changed, 352 insertions, 0 deletions
diff --git a/config/plugins/bufferline.nix b/config/plugins/bufferline.nix new file mode 100644 index 0000000..fe1cd17 --- /dev/null +++ b/config/plugins/bufferline.nix @@ -0,0 +1,19 @@ +{ + plugins.bufferline = { + enable = true; + + alwaysShowBufferline = false; + diagnostics = "nvim_lsp"; + mode = "buffers"; + numbers = "ordinal"; + separatorStyle = "slant"; + offsets = [ + { + filetype = "neo-tree"; + text = "neo-tree"; + highlight = "Directory"; + text_align = "left"; + } + ]; + }; +} diff --git a/config/plugins/cmp.nix b/config/plugins/cmp.nix new file mode 100644 index 0000000..85c9513 --- /dev/null +++ b/config/plugins/cmp.nix @@ -0,0 +1,31 @@ +{ + plugins = { + nvim-cmp = { + enable = true; + + completion = { + completeopt = "menu,menuone,noinsert"; + }; + + mapping = { + "<C-n>" = "cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert })"; + "<C-p>" = "cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert })"; + "<C-b>" = "cmp.mapping.scroll_docs(-4)"; + "<C-f>" = "cmp.mapping.scroll_docs(4)"; + "<C-Space>" = "cmp.mapping.complete()"; + "<C-e>" = "cmp.mapping.abort()"; + "<CR>" = "cmp.mapping.confirm({ select = true })"; + "<S-CR>" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true})"; + }; + + snippet.expand = "luasnip"; + + sources = map (name: {inherit name;}) [ + "nvim_lsp" + "luasnip" + "async_path" + "buffer" + ]; + }; + }; +} diff --git a/config/plugins/default.nix b/config/plugins/default.nix new file mode 100644 index 0000000..229942e --- /dev/null +++ b/config/plugins/default.nix @@ -0,0 +1,12 @@ +{ + # import all files besides those prefixed with `_` + imports = builtins.map (file: ./${file}) ( + builtins.filter ( + name: name != "default.nix" && (builtins.substring 0 1 name) != "_" + ) ( + builtins.attrNames ( + builtins.readDir ./. + ) + ) + ); +} diff --git a/config/plugins/efmls.nix b/config/plugins/efmls.nix new file mode 100644 index 0000000..b4740ac --- /dev/null +++ b/config/plugins/efmls.nix @@ -0,0 +1,100 @@ +{ + plugins = { + lsp.servers.efm.extraOptions = { + init_options.documentFormatting = true; + }; + + efmls-configs = { + enable = true; + + externallyManagedPackages = ["prettier_eslint"]; + + setup = { + all = { + linter = [ + "alex" + "codespell" + ]; + }; + + bash = { + formatter = "beautysh"; + linter = "shellcheck"; + }; + + css = { + formatter = "prettier_d"; + }; + + fish = { + formatter = "fish_indent"; + }; + + html = { + formatter = "prettier_d"; + }; + + javascript = { + formatter = "prettier_eslint"; + linter = "eslint_d"; + }; + + json = { + formatter = "prettier_d"; + }; + + lua = { + formatter = "stylua"; + }; + + nix = { + formatter = "alejandra"; + linter = "statix"; + }; + + python = { + formatter = [ + "ruff" + "isort" + ]; + + linter = [ + "mypy" + "pylint" + ]; + }; + + rust = { + formatter = "rustfmt"; + }; + + sass = { + formatter = "prettier_d"; + }; + + scss = { + formatter = "prettier_d"; + }; + + sh = { + formatter = ["beautysh" "shellharden"]; + linter = "shellcheck"; + }; + + typescript = { + formatter = "prettier_eslint"; + linter = "eslint_d"; + }; + + yaml = { + formatter = "prettier"; + linter = "actionlint"; + }; + + zsh = { + formatter = "beautysh"; + }; + }; + }; + }; +} diff --git a/config/plugins/fidget.nix b/config/plugins/fidget.nix new file mode 100644 index 0000000..5d0a033 --- /dev/null +++ b/config/plugins/fidget.nix @@ -0,0 +1,5 @@ +{ + plugins.fidget = { + enable = true; + }; +} diff --git a/config/plugins/flash.nix b/config/plugins/flash.nix new file mode 100644 index 0000000..87446e9 --- /dev/null +++ b/config/plugins/flash.nix @@ -0,0 +1,5 @@ +{ + plugins.flash = { + enable = true; + }; +} diff --git a/config/plugins/gitsigns.nix b/config/plugins/gitsigns.nix new file mode 100644 index 0000000..8ba3e72 --- /dev/null +++ b/config/plugins/gitsigns.nix @@ -0,0 +1,5 @@ +{ + plugins.gitsigns = { + enable = true; + }; +} diff --git a/config/plugins/ibl.nix b/config/plugins/ibl.nix new file mode 100644 index 0000000..d794a6a --- /dev/null +++ b/config/plugins/ibl.nix @@ -0,0 +1,22 @@ +{ + plugins.indent-blankline = { + enable = true; + + exclude.filetypes = [ + "help" + "neo-tree" + "Trouble" + "lazy" + "mason" + "notify" + "toggleterm" + ]; + + indent = { + char = "│"; + tabChar = "│"; + }; + + scope.enabled = false; + }; +} diff --git a/config/plugins/lsp-format.nix b/config/plugins/lsp-format.nix new file mode 100644 index 0000000..af2ab05 --- /dev/null +++ b/config/plugins/lsp-format.nix @@ -0,0 +1,5 @@ +{ + plugins.lsp-format = { + enable = true; + }; +} diff --git a/config/plugins/lsp.nix b/config/plugins/lsp.nix new file mode 100644 index 0000000..c2648db --- /dev/null +++ b/config/plugins/lsp.nix @@ -0,0 +1,54 @@ +{lib, ...}: { + plugins.lsp = { + enable = true; + + capabilities = '' + capabilities = vim.tbl_deep_extend( + "force", + require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()), + { workspace = { didChangeWatchedFiles = { dynamicRegistration = true } } } + ) + ''; + + keymaps = { + diagnostic = { + "<leader>e" = "open_float"; + "[d" = "goto_prev"; + "]d" = "goto_next"; + "<leader>u" = "setloclist"; + }; + }; + + servers = let + withDefaultOpts = lib.genAttrs [ + "bashls" + "lua-ls" + "nil_ls" + ] (_: {enable = true;}); + + optionalOpts = { + enable = true; + installLanguageServer = false; + autostart = false; + }; + + optional = lib.genAttrs [ + "clangd" + "eslint" + "pyright" + "rust-analyzer" + "tsserver" + ] (_: optionalOpts); + in + withDefaultOpts + // optional + // { + rust-analyzer = + optionalOpts + // { + installRustc = false; + installCargo = false; + }; + }; + }; +} diff --git a/config/plugins/lualine.nix b/config/plugins/lualine.nix new file mode 100644 index 0000000..43e2128 --- /dev/null +++ b/config/plugins/lualine.nix @@ -0,0 +1,8 @@ +{ + plugins.lualine = { + enable = true; + + theme = "catppuccin"; + extensions = ["neo-tree" "trouble"]; + }; +} diff --git a/config/plugins/mini.nix b/config/plugins/mini.nix new file mode 100644 index 0000000..48bb0ed --- /dev/null +++ b/config/plugins/mini.nix @@ -0,0 +1,36 @@ +{ + plugins.mini = { + enable = true; + + modules = { + comment = {}; + pairs = {}; + indentscope = { + options.try_as_border = true; + }; + }; + }; + + autoCmd = [ + { + event = ["FileType"]; + pattern = [ + "help" + "neo-tree" + "Trouble" + "lazy" + "mason" + "notify" + "toggleterm" + ]; + + callback = { + __raw = '' + function() + vim.b.miniindentscope_disable = true + end + ''; + }; + } + ]; +} diff --git a/config/plugins/neo-tree.nix b/config/plugins/neo-tree.nix new file mode 100644 index 0000000..f99df9e --- /dev/null +++ b/config/plugins/neo-tree.nix @@ -0,0 +1,11 @@ +{ + plugins.neo-tree = { + enable = true; + + extraOptions = { + filetype_exclude = ["help" "neo-tree" "Trouble" "lazy" "mason" "notify" "toggleterm"]; + show_current_context = false; + show_trailing_blankline_indent = false; + }; + }; +} diff --git a/config/plugins/treesitter.nix b/config/plugins/treesitter.nix new file mode 100644 index 0000000..047bd17 --- /dev/null +++ b/config/plugins/treesitter.nix @@ -0,0 +1,25 @@ +{ + pkgs, + self, + ... +}: { + extraPlugins = [pkgs.vimPlugins.vim-just]; + + plugins = { + treesitter = { + enable = true; + + grammarPackages = pkgs.vimPlugins.nvim-treesitter.allGrammars ++ [self.tree-sitter-just]; + + indent = true; + nixvimInjections = true; + }; + + ts-context-commentstring = { + enable = true; + disableAutoInitialization = true; + }; + + ts-autotag.enable = true; + }; +} diff --git a/config/plugins/trouble.nix b/config/plugins/trouble.nix new file mode 100644 index 0000000..343c92f --- /dev/null +++ b/config/plugins/trouble.nix @@ -0,0 +1,5 @@ +{ + plugins.trouble = { + enable = true; + }; +} diff --git a/config/plugins/which-key.nix b/config/plugins/which-key.nix new file mode 100644 index 0000000..ef43fc4 --- /dev/null +++ b/config/plugins/which-key.nix @@ -0,0 +1,9 @@ +{ + plugins.which-key = { + enable = true; + + plugins = { + spelling.enabled = true; + }; + }; +} |
