dotfiles

My PC Dotfiles & Website

zed.nix (1937B)


## Zed Editor ##
{config, ...}: let
  inherit (config) util;
  inherit (config.flake) files;
in {
  flake.modules.homeManager.zed = {
    config,
    pkgs,
    ...
  }: {
    xdg.mimeApps = let
      mime = util.build.mime {
        code = ["dev.zed.Zed.desktop"];
        markdown = ["dev.zed.Zed.desktop"];
        text = ["dev.zed.Zed.desktop"];
      };
    in {
      defaultApplications = mime;
      associations.added = mime;
    };

    home.persist.directories = [
      ".config/zed"
      ".local/share/zed"
    ];

    programs.zed-editor = {
      enable = true;
      package = pkgs.zed-editor;
      installRemoteServer = true;

      # Settings
      userSettings =
        files.zed.settings
        // (with config.stylix.fonts; {
          "ui_font_family" = sansSerif.name;
          "buffer_font_family" = monospace.name;
        });
      userKeymaps = files.zed.keymap;

      ## Extensions
      extensions = [
        "nix" # Nix
        "dart" # Flutter/Dart
        "java" # Java
        "html" # HTML
        "toml" # TOML
        "dockerfile" # Docker
        "make" # Makefiles
        "sql" # SQL
        "basher" # Bash
        "latex" # LaTeX
        "log" # Log Files
        "git-firefly" # Git
        "material-icon-theme" # File Icons
      ];

      extraPackages = with pkgs; [
        # Nix
        nixd
        alejandra

        clang-tools # C / C++
        rust-analyzer # Rust
        gopls # Go
        texlab # LaTeX
        jdt-language-server # Java
        sqls # SQL

        # Python
        basedpyright
        ruff

        # Shell
        bash-language-server
        shellcheck
        shfmt

        # Web / JSON / Markup
        nodejs
        marksman
        taplo
        vtsls
        dockerfile-language-server
        tailwindcss-language-server
        typescript-language-server
        yaml-language-server
        vscode-langservers-extracted
      ];
    };
  };
}