{ config, pkgs, lib, ... }: let nixfiles = config.home.homeDirectory + "/projects/alin.ovh/nixfiles"; direct_symlink = path: config.lib.file.mkOutOfStoreSymlink "${nixfiles}/${lib.removePrefix "/" path}"; in { imports = [ ../../modules/caddy.nix ]; home.packages = with pkgs; [ vscode-langservers-extracted stylelint emmet-language-server flyctl ]; home.shellAliases = { # 0.2.25 current completion command only affects `flyctl`, although `fly` is a link to `flyctl` fly = "flyctl"; }; programs.emacs.extraPackages = epkgs: (with epkgs; [ caddyfile-mode emmet-mode nginx-mode web-mode (treesit-grammars.with-grammars ( grammars: with grammars; [ tree-sitter-css tree-sitter-html ] )) ]); programs.nixvim.plugins = { lsp.servers = { emmet_language_server.enable = true; cssls.enable = true; html.enable = true; jsonls.enable = true; }; }; programs.zed-editor = { extensions = [ "caddyfile" ]; userSettings = { languages = { Caddyfile = { format_on_save = "on"; tab_size = 2; formatter = { external = { command = "caddy"; arguments = [ "fmt" "-c" "-"]; }; }; }; }; }; }; services.caddy = { enable = true; configFile = direct_symlink "user/settings/development/web/Caddyfile"; watch = true; }; }