My dotfiles (written in Nix, btw!) ❄
1{
2 self,
3 lib,
4 userSettings,
5 systemSettings,
6 ...
7}: {
8 programs.nvf = {
9 enable = true;
10 settings.vim = {
11 startPlugins = ["dressing-nvim"];
12 keymaps = [
13 {
14 key = "<a-cr>";
15 mode = ["n"];
16 action = ":lua vim.lsp.buf.code_action()<CR>";
17 silent = true;
18 desc = "Open code action menu";
19 }
20 ];
21 ui.borders.plugins.lsp-signature.enable = true;
22 lsp = {
23 lspSignature.enable = true;
24 lsplines.enable = true;
25 lspkind.enable = true;
26 formatOnSave = true;
27 null-ls.enable = lib.mkForce false;
28 };
29 undoFile.enable = true;
30 searchCase = "smart";
31 options.tabstop = 4;
32
33 languages = {
34 enableLSP = true;
35 enableTreesitter = true;
36 enableFormat = true;
37 nix = {
38 enable = true;
39 lsp = let
40 flake = "(builtins.getFlake \"${self}\")";
41 in {
42 server = "nixd";
43 options = {
44 nixos.expr = "${flake}.nixosConfigurations.\"${systemSettings.hostname}\".options";
45 home_manager.expr = "${flake}.homeConfigurations.\"${userSettings.username}\".options";
46 };
47 };
48 };
49 go.enable = true;
50 css.enable = true;
51 zig.enable = true;
52 bash.enable = true;
53 clang.enable = true;
54 gleam.enable = true;
55 html.enable = true;
56 tailwind.enable = true;
57 };
58 presence.neocord = {
59 enable = true;
60 setupOpts = {
61 enable_line_number = true;
62 debounce_timeout = 2;
63 logo_tooltip = "Neovim";
64 };
65 };
66 statusline.lualine.enable = true;
67 visuals.nvim-web-devicons.enable = true;
68 tabline.nvimBufferline.enable = true;
69 telescope.enable = true;
70 treesitter = {
71 enable = true;
72 indent.enable = false;
73 };
74 autocomplete.nvim-cmp.enable = true;
75 syntaxHighlighting = true;
76 theme = {
77 name = "nord";
78 enable = true;
79 transparent = true;
80 };
81 };
82 };
83}