My dotfiles (written in Nix, btw!) ❄
at main 83 lines 2.1 kB view raw
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}