1_: {
2 perSystem = {
3 lib,
4 pkgs,
5 ...
6 }: {
7 files.files = [
8 {
9 checkFile = false;
10 path_ = ".zed/settings.json";
11
12 drv = (pkgs.formats.json {}).generate "zed-setting.json" {
13 auto_install_extensions = {
14 basher = true;
15 nix = true;
16 };
17
18 languages = {
19 JSON = {
20 format_on_save = "on";
21
22 formatter = {
23 external = {
24 command = lib.getExe pkgs.prettier;
25 arguments = ["--stdin-filepath" "{buffer_path}"];
26 };
27 };
28 };
29
30 Markdown = {
31 format_on_save = "on";
32
33 formatter.external = {
34 command = lib.getExe pkgs.prettier;
35 arguments = ["--stdin-filepath" "{buffer_path}"];
36 };
37 };
38
39 Nix = {
40 format_on_save = "on";
41 formatter = "language_server";
42 language_servers = ["nixd"];
43 };
44
45 "Shell Script" = {
46 format_on_save = "on";
47
48 formatter = {
49 external = {
50 command = lib.getExe pkgs.shfmt;
51 arguments = ["--filename" "{buffer_path}" "-i" "2"];
52 };
53 };
54
55 tab_size = 2;
56 hard_tabs = false;
57 };
58
59 YAML = {
60 format_on_save = "on";
61 formatter.external = {
62 command = lib.getExe pkgs.prettier;
63 arguments = ["--stdin-filepath" "{buffer_path}"];
64 };
65 };
66 };
67
68 lsp.nixd = {
69 binary.path = lib.getExe pkgs.nixd;
70 settings.formatting.command = [(lib.getExe pkgs.alejandra) "--quiet" "--"];
71 };
72 };
73 }
74 ];
75 };
76}