| ... | ... | @@ -1,9 +1,12 @@ |
| 1 | 1 | { |
| 2 | 2 | config, |
| 3 | pkgs, |
| 3 | 4 | lib, |
| 4 | | host, |
| 5 | 5 | ... |
| 6 | 6 | }: |
| 7 | let |
| 8 | allowExe = config.shared.allowExe; |
| 9 | in |
| 7 | 10 | { |
| 8 | 11 | # based on default options from upstream: |
| 9 | 12 | # https://github.com/NotAShelf/nvf/blob/main/configuration.nix |
| ... | ... | @@ -13,7 +16,7 @@ |
| 13 | 16 | # |
| 14 | 17 | # override level 999 is used to not conflict with mkDefault as used by nvf. |
| 15 | 18 | # which allows user configurations to disable/override anything here. |
| 16 | | vim = lib.mkOverride 999 { |
| 19 | config.vim = lib.mkOverride 999 { |
| 17 | 20 | theme = { |
| 18 | 21 | enable = true; |
| 19 | 22 | }; |
| ... | ... | @@ -34,7 +37,7 @@ |
| 34 | 37 | }; |
| 35 | 38 | lsp = { |
| 36 | 39 | # Must be enabled for language modules to hook into the LSP API. |
| 37 | | enable = true; |
| 40 | enable = allowExe; |
| 38 | 41 | formatOnSave = true; |
| 39 | 42 | # show errors inline |
| 40 | 43 | # https://github.com/folke/trouble.nvim |
| ... | ... | @@ -48,30 +51,43 @@ |
| 48 | 51 | }; |
| 49 | 52 | debugger = { |
| 50 | 53 | nvim-dap = { |
| 51 | | enable = true; |
| 54 | enable = allowExe; |
| 52 | 55 | ui.enable = true; |
| 53 | 56 | }; |
| 54 | 57 | }; |
| 55 | 58 | languages = { |
| 56 | 59 | enableFormat = true; |
| 57 | | enableTreesitter = true; |
| 60 | enableTreesitter = allowExe; |
| 58 | 61 | enableExtraDiagnostics = true; |
| 59 | 62 | |
| 60 | 63 | # sort-lines: on |
| 61 | | assembly.enable = true; |
| 62 | | bash.enable = true; |
| 63 | | clang.enable = true; |
| 64 | | css.enable = true; |
| 65 | | html.enable = true; |
| 66 | | nix.enable = true; |
| 67 | | rust.crates.enable = true; |
| 68 | | rust.enable = true; |
| 69 | | ts.enable = true; |
| 70 | | zig.enable = true; |
| 64 | assembly.enable = allowExe; |
| 65 | bash.enable = allowExe; |
| 66 | clang.enable = allowExe; |
| 67 | css.enable = allowExe; |
| 68 | html.enable = allowExe; |
| 69 | nix.enable = allowExe; |
| 70 | rust.crates.enable = allowExe; |
| 71 | rust.enable = allowExe; |
| 72 | ts.enable = allowExe; |
| 73 | zig.enable = allowExe; |
| 71 | 74 | # sort-lines: off |
| 72 | 75 | |
| 76 | ts.format.enable = false; # deno fmt is enabled elsewhere |
| 73 | 77 | nix.format.type = "nixfmt"; # looks so much nicer |
| 74 | 78 | }; |
| 79 | formatter.conform-nvim = { |
| 80 | enable = true; |
| 81 | setupOpts.formatters_by_ft = { |
| 82 | typescript = [ "deno_fmt" ]; |
| 83 | typescriptreact = [ "deno_fmt" ]; |
| 84 | javascript = [ "deno_fmt" ]; |
| 85 | javascriptreact = [ "deno_fmt" ]; |
| 86 | }; |
| 87 | setupOpts.formatters.deno_fmt = { |
| 88 | command = lib.meta.getExe pkgs.deno; |
| 89 | }; |
| 90 | }; |
| 75 | 91 | filetree = { |
| 76 | 92 | neo-tree = { |
| 77 | 93 | enable = true; |
| ... | ... | @@ -81,7 +97,7 @@ |
| 81 | 97 | nvimBufferline.enable = true; |
| 82 | 98 | }; |
| 83 | 99 | autocomplete = { |
| 84 | | blink-cmp.enable = true; |
| 100 | blink-cmp.enable = allowExe; |
| 85 | 101 | }; |
| 86 | 102 | statusline = { |
| 87 | 103 | lualine = { |
| ... | ... | @@ -132,8 +148,8 @@ |
| 132 | 148 | todo-comments.enable = true; |
| 133 | 149 | }; |
| 134 | 150 | git = { |
| 135 | | enable = true; |
| 136 | | gitsigns.enable = true; |
| 151 | enable = allowExe; |
| 152 | gitsigns.enable = allowExe; |
| 137 | 153 | gitsigns.codeActions.enable = false; # throws an annoying debug message |
| 138 | 154 | }; |
| 139 | 155 | }; |