{ pkgs, ... }: {
    programs.vscode = {
        enable = true;
        package = pkgs.vscodium;
        enableUpdateCheck = false;
        enableExtensionUpdateCheck = false;
        extensions = with pkgs.vscode-extensions; [
            catppuccin.catppuccin-vsc
            catppuccin.catppuccin-vsc-icons
            editorconfig.editorconfig
            esbenp.prettier-vscode
            jnoortheen.nix-ide
            llvm-vs-code-extensions.vscode-clangd
            mesonbuild.mesonbuild
            ms-vscode.live-server
            rust-lang.rust-analyzer
            skellock.just
            vadimcn.vscode-lldb
            wakatime.vscode-wakatime
        ];
        userSettings = 
            let
                df = lang: formatter: {
                    name = "[" + lang + "]";
                    value = {
                        "editor.defaultFormatter" = formatter;
                    };
                };
            in {
                "editor.fontFamily" = "'Fira Code Light', monospace";
              # "editor.fontLigatures" = true;
                "editor.formatOnSave" = false;
                "editor.indentSize" = 4;
                "editor.tabSize" = 4;
                "explorer.confirmDelete" = false;
                "explorer.confirmDragAndDrop" = false;
                "mesonbuild.buildFolder" = "build";
                "prettier.tabWidth" = 4;
                "prettier.trailingComma" = "none";
                "prettier.singleAttributePerLine" = false;
                "prettier.useEditorConfig" = true;
                "svelte.enable-ts-plugin" = true;
                "telemetry.telemetryLevel" = "off";
                "workbench.activityBar.iconClickBehavior" = "toggle";
                "workbench.activityBar.location" = "bottom";
                "workbench.colorTheme" = "Catppuccin Frappé";
                "workbench.iconTheme" = "catppuccin-frappe";
            } // builtins.listToAttrs [
                (df "css"        "esbenp.prettier-vscode")
                (df "html"       "esbenp.prettier-vscode")
                (df "typescript" "esbenp.prettier-vscode")
                (df "javascript" "esbenp.prettier-vscode")
            ];
    };
}