My dotfiles (written in Nix, btw!) ❄
at main 100 lines 2.8 kB view raw
1{ 2 self, 3 lib, 4 pkgs, 5 systemSettings, 6 userSettings, 7 ... 8}: { 9 programs.nixvim = { 10 enable = true; 11 12 opts = { 13 number = true; 14 relativenumber = true; 15 signcolumn = "yes"; 16 ignorecase = true; 17 smartcase = true; 18 tabstop = 2; 19 undofile = true; 20 }; 21 colorschemes.nord.enable = true; 22 plugins = { 23 lsp = { 24 enable = true; 25 inlayHints = true; 26 servers = { 27 nixd = let 28 flake = ''(builtins.getFlake "${self}")''; 29 in { 30 enable = true; 31 settings = { 32 nixpkgs.expr = "import ${flake}.inputs.nixpkgs { }"; 33 formatting.command = ["${lib.getExe pkgs.alejandra}"]; 34 options = { 35 nixos.expr = "${flake}.nixosConfigurations.${systemSettings.hostname}.options"; 36 home-manager.expr = "${flake}.nixosConfigurations.${userSettings.username}.options"; 37 }; 38 }; 39 }; 40 gopls.enable = true; 41 gleam.enable = true; 42 cssls.enable = true; 43 html = { 44 enable = true; 45 filetypes = ["html" "templ"]; 46 }; 47 emmet_ls = { 48 enable = true; 49 filetypes = ["html" "templ"]; 50 }; 51 htmx = { 52 enable = true; 53 filetypes = ["html" "templ"]; 54 }; 55 tailwindcss = { 56 enable = true; 57 filetypes = ["html" "templ"]; 58 settings.tailwindCSS.includeLanguages = { 59 templ = "html"; 60 }; 61 }; 62 templ.enable = true; 63 zls.enable = true; 64 }; 65 }; 66 67 lsp-format.enable = true; #formatting 68 lsp-lines.enable = true; #multiple lines for errors 69 lsp-signature.enable = true; #show function signature 70 lsp-status.enable = true; #more things at the lualine 71 lspkind.enable = true; #pictograms 72 neocord.enable = true; #discord 73 lualine.enable = true; #bottom status line 74 web-devicons.enable = true; #icons 75 treesitter.enable = true; 76 bufferline.enable = true; 77 telescope.enable = true; 78 cmp = { 79 enable = true; 80 settings = { 81 sources = [ 82 {name = "nvim_lsp";} 83 {name = "path";} 84 {name = "buffer";} 85 ]; 86 mapping = { 87 "<C-b>" = "cmp.mapping.scroll_docs(-4)"; 88 "<C-f>" = "cmp.mapping.scroll_docs(4)"; 89 "<C-Space>" = "cmp.mapping.complete()"; 90 "<C-e>" = "cmp.mapping.abort()"; 91 "<CR>" = "cmp.mapping.confirm({ select = true })"; 92 "<Tab>" = "cmp.select_next_item()"; 93 "<S-Tab>" = "cmp.select_prev_item()"; 94 }; 95 }; 96 }; 97 dressing.enable = true; 98 }; 99 }; 100}