authorgravatar for nmarks413@gmail.comNatalie Marks <nmarks413@gmail.com> 2025-08-05 09:32:00-07:00
committergravatar for nmarks413@gmail.comNatalie Marks <nmarks413@gmail.com> 2025-08-05 09:32:00-07:00
loge5fab6cb1870a3a913983dd5e2c9b8abc675d8c1
tree67682227423ae868d6b34420aeca5d93a0383a4a
parent918c1dcba5f0e57a3d93e26eaa62d016ebc8e63f
parentb0b81115da638eea16b4747229706cde7840b3de
signature Commit is signed but in an unrecognized format.

Merge branch 'main' of paperclover.dev:nix/config


2 files changed, 151 insertions(+), 3 deletions(-)

; created+147
......@@ -0,0 +1,147 @@
1{
2 flake,
3 user,
4 host,
5 pkgs,
6 ...
7}:
8{
9 vim = {
10 extraPackages = with pkgs; [
11 python312Packages.pylatexenc
12
13 ];
14
15 languages = {
16 python.format.type = "ruff";
17 markdown = {
18 enable = true;
19 extensions.render-markdown-nvim = {
20 enable = true;
21 };
22 };
23 };
24
25 formatter.conform-nvim = {
26 enable = true;
27 setupOpts = {
28 formatters_by_ft = {
29 fish = [ "fish_indent" ];
30 tex = [ "latexindent" ];
31 };
32 };
33 };
34 diagnostics = {
35 enable = true;
36 config = {
37 virtual_text = {
38 format = pkgs.lib.generators.mkLuaInline ''
39 function(diagnostic)
40 return string.format("%s (%s)", diagnostic.message, diagnostic.source)
41 end
42 '';
43 };
44 };
45 nvim-lint = {
46 enable = true;
47 linters_by_ft = {
48 nix = [ "statix" ];
49 tex = [ "chktex" ];
50 haskell = [ "hlint" ];
51 };
52
53 linters = {
54 chktex = {
55 ignore_exitcode = true;
56 };
57 };
58 };
59 };
60 treesitter = {
61 enable = true;
62 fold = true;
63 addDefaultGrammars = true;
64 highlight = {
65 additionalVimRegexHighlighting = true;
66 };
67
68 grammars = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
69 markdown_inline
70 markdown
71 ];
72
73 highlight.enable = true;
74 indent.enable = false;
75 };
76
77 visuals = {
78 fidget-nvim = {
79 setupOpts = {
80 logger.level = "trace";
81 };
82 };
83 };
84
85 ui = {
86 nvim-ufo = {
87 enable = true;
88 };
89 };
90 autocomplete.blink-cmp = {
91 enable = true;
92 mappings = {
93 close = null;
94 complete = null;
95 confirm = null;
96 next = null;
97 previous = null;
98 scrollDocsDown = null;
99 scrollDocsUp = null;
100 };
101
102 setupOpts = {
103 keymap = {
104 preset = "super-tab";
105 };
106 completion = {
107 ghost_text.enabled = false;
108 list.selection.preselect = true;
109 trigger = {
110 show_in_snippet = true;
111 };
112 accept.auto_brackets.enabled = true;
113 };
114 signature = {
115 enabled = true;
116 };
117 };
118 };
119
120 lazy.plugins."blink.pairs" = {
121 enabled = true;
122 package = pkgs.vimPlugins.blink-pairs;
123 setupModule = "blink.pairs";
124 setupOpts = {
125 mappings = {
126 # -- you can call require("blink.pairs.mappings").enable() and require("blink.pairs.mappings").disable() to enable/disable mappings at runtime
127 enabled = true;
128 # -- see the defaults: https://github.com/Saghen/blink.pairs/blob/main/lua/blink/pairs/config/mappings.lua#L10
129 pairs = [ ];
130 };
131 highlights = {
132 enabled = true;
133 groups = [
134 "BlinkPairsOrange"
135 "BlinkPairsPurple"
136 "BlinkPairsBlue"
137 ];
138 matchparen = {
139 enabled = true;
140 group = "MatchParen";
141 };
142 };
143 debug = false;
144 };
145 };
146 };
147}
modules/neovim/default.nix+4-3
......@@ -102,7 +102,6 @@
102102 lua.enable = true;
103103 # sort-lines: off
104104
105 ts.format.enable = true; # deno fmt is enabled elsewhere
106105 nix = {
107106 enable = true;
108107 format.type = "nixfmt"; # looks so much nicer
......@@ -110,15 +109,17 @@
110109 };
111110 formatter.conform-nvim = {
112111 enable = true;
113 setupOpts.formatters_by_ft = {
112 setupOpts = {
113 formatters_by_ft = {
114114 typescript = [ "deno_fmt" ];
115115 typescriptreact = [ "deno_fmt" ];
116116 javascript = [ "deno_fmt" ];
117117 javascriptreact = [ "deno_fmt" ];
118118 };
119 setupOpts.formatters.deno_fmt = {
119 formatters.deno_fmt = {
120120 command = lib.meta.getExe pkgs.deno;
121121 };
122 };
122123 };
123124 filetree = {
124125 neo-tree = {