My Nix configuration. Enter at your own risk.
0

Configure Feed

Select the types of activity you want to include in your feed.

dotnix / modules / home / webdev-common.nix
2.2 kB 72 lines
1{ 2 config, 3 lib, 4 pkgs, 5 utils, 6 ... 7}: { 8 options.modules.home.webdev-common = { 9 enable = lib.mkEnableOption "webdev-common"; 10 11 javascript = utils.mkToggle "javascript" true; 12 typescript = utils.mkToggle "typescript" true; 13 svelte = utils.mkToggle "svelte" true; 14 astro = utils.mkToggle "astro" true; 15 pnpm = utils.mkToggle "pnpm" true; 16 yarn = utils.mkToggle "yarn" true; 17 fnm = utils.mkToggle "fnm" true; 18 bun = utils.mkToggle "bun" true; 19 20 vue = utils.mkToggle "vue" false; 21 }; 22 23 config = let 24 webdev-common = config.modules.home.webdev-common; 25 pnpmHome = "${config.home.homeDirectory}/.local/share/pnpm"; 26 in 27 lib.mkIf webdev-common.enable (lib.mkMerge [ 28 { 29 home.packages = utils.mkIfOptions webdev-common { 30 javascript = pkgs.vscode-langservers-extracted; 31 svelte = pkgs.svelte-language-server; 32 astro = pkgs.astro-language-server; 33 vue = pkgs.vue-language-server; 34 pnpm = pkgs.pnpm; 35 yarn = pkgs.yarn; 36 fnm = pkgs.fnm; 37 bun = pkgs.bun; 38 typescript = [ 39 pkgs.typescript-language-server 40 pkgs.typescript 41 ]; 42 }; 43 } 44 (lib.mkIf webdev-common.pnpm.enable { 45 home.sessionVariables.PNPM_HOME = pnpmHome; 46 home.sessionPath = [pnpmHome]; 47 }) 48 (lib.mkIf (config.modules.home.helix.enable && webdev-common.astro.enable) { 49 programs.helix.languages.language = [ 50 { 51 roots = ["package.json" "astro.config.mjs"]; 52 language-servers = ["astro-ls"]; 53 injection-regex = "astro"; 54 file-types = ["astro"]; 55 scope = "source.astro"; 56 name = "astro"; 57 } 58 ]; 59 60 programs.helix.languages.language-server.astro-ls = { 61 initOptions.typescript.tsdk = "${pkgs.typescript}/lib/node_modules/typescript/lib"; 62 command = "astro-ls"; 63 args = ["--stdio"]; 64 }; 65 }) 66 (lib.mkIf (config.modules.home.fish.enable && webdev-common.fnm.enable) { 67 programs.fish.interactiveShellInit = '' 68 ${pkgs.fnm}/bin/fnm env --use-on-cd --shell fish | source 69 ''; 70 }) 71 ]); 72}