forked from aylac.top/nixcfg
this repo has no description
1_: { 2 perSystem = { 3 lib, 4 pkgs, 5 ... 6 }: let 7 prettier = { 8 external = { 9 command = pkgs.writeScript "prettier-bun" '' 10 #! ${pkgs.bash}/bin/bash -e 11 exec ${lib.getExe pkgs.bun} ${pkgs.prettier}/bin/prettier.cjs "$@" 12 ''; 13 arguments = ["--stdin-filepath" "{buffer_path}"]; 14 }; 15 }; 16 biome = { 17 format_on_save = "on"; 18 19 formatter = {language_server = {name = "biome";};}; 20 code_actions_on_format = { 21 "source.fixAll.biome" = true; 22 "source.organizeImports.biome" = true; 23 }; 24 }; 25 in { 26 files.files = [ 27 { 28 checkFile = false; 29 path_ = ".zed/settings.json"; 30 31 drv = (pkgs.formats.json {}).generate "zed-setting.json" { 32 auto_install_extensions = { 33 basher = true; 34 nix = true; 35 marksman = true; 36 }; 37 38 languages = { 39 JSON = biome // {language_servers = ["json-language-server" "biome"];}; 40 41 JSONC = biome // {language_servers = ["json-language-server" "biome"];}; 42 43 Markdown = { 44 format_on_save = "on"; 45 formatter = prettier; 46 language_servers = ["marksman"]; 47 }; 48 49 Nix = { 50 format_on_save = "on"; 51 formatter = "language_server"; 52 language_servers = [ 53 "nixd" 54 "nil" 55 ]; 56 }; 57 58 "Shell Script" = { 59 format_on_save = "on"; 60 61 formatter = { 62 external = { 63 command = lib.getExe pkgs.shfmt; 64 arguments = ["--filename" "{buffer_path}" "-i" "2"]; 65 }; 66 }; 67 68 tab_size = 2; 69 hard_tabs = false; 70 }; 71 72 YAML = { 73 format_on_save = "on"; 74 formatter = prettier; 75 }; 76 }; 77 78 lsp = { 79 nixd = { 80 binary.path = lib.getExe pkgs.nixd; 81 settings.formatting.command = [(lib.getExe pkgs.alejandra) "--quiet" "--"]; 82 }; 83 nil = { 84 binary = { 85 path = lib.getExe pkgs.nil; 86 arguments = ["--stdio"]; 87 }; 88 }; 89 json-language-server = { 90 binary = { 91 path = pkgs.writeScript "vscode-json-languageserver-bun" '' 92 #! ${pkgs.bash}/bin/bash -e 93 exec ${lib.getExe pkgs.bun} ${pkgs.vscode-json-languageserver}/lib/node_modules/vscode-json-languageserver/./bin/vscode-json-languageserver "$@" 94 ''; 95 arguments = ["--stdio"]; 96 }; 97 }; 98 marksman = { 99 binary = { 100 path = lib.getExe pkgs.marksman; 101 arguments = ["server"]; 102 }; 103 }; 104 }; 105 }; 106 } 107 ]; 108 }; 109}