refactor: implement component-based architecture for enhanced maintainability
- Reorganize directory structure into core/, features/, and themes/ - Colocate application Nix logic, configs, scripts, and theme overrides - Implement 'Inversion of Control' for theming: apps now pull theme-specific layouts - Update flake.nix and shared library paths to match the new structure - Document the new Feature-Centric architecture in README.md
This commit is contained in:
53
features/apps/vscode.nix
Normal file
53
features/apps/vscode.nix
Normal file
@@ -0,0 +1,53 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
themeConfig = builtins.fromJSON (builtins.readFile (../../assets/themes + "/${config.nomarchy.theme}/vscode.json"));
|
||||
|
||||
# Development extensions that match the system theme
|
||||
devExtensions = with pkgs.vscode-extensions; [
|
||||
# Language support
|
||||
ms-python.python
|
||||
rust-lang.rust-analyzer
|
||||
golang.go
|
||||
jnoortheen.nix-ide
|
||||
|
||||
# Git integration
|
||||
eamodio.gitlens
|
||||
|
||||
# Editor enhancements
|
||||
esbenp.prettier-vscode
|
||||
dbaeumer.vscode-eslint
|
||||
bradlc.vscode-tailwindcss
|
||||
|
||||
# Theme extensions (provide color themes matching nomarchy palettes)
|
||||
catppuccin.catppuccin-vsc
|
||||
enkia.tokyo-night
|
||||
arcticicestudio.nord-visual-studio-code
|
||||
sainnhe.everforest
|
||||
mvllow.rose-pine
|
||||
];
|
||||
in
|
||||
{
|
||||
options.nomarchy.vscode = {
|
||||
devExtensions = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Whether to install development extensions for VSCode.";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
programs.vscode = {
|
||||
enable = lib.mkDefault true;
|
||||
package = lib.mkDefault pkgs.vscode;
|
||||
userSettings = lib.mkDefault {
|
||||
"update.mode" = "none";
|
||||
"workbench.colorTheme" = themeConfig.name;
|
||||
"window.titleBarStyle" = "custom";
|
||||
"editor.fontFamily" = "'${config.nomarchy.fonts.monospace}', 'Droid Sans Mono', monospace";
|
||||
"terminal.integrated.fontFamily" = config.nomarchy.fonts.monospace;
|
||||
};
|
||||
extensions = lib.mkIf config.nomarchy.vscode.devExtensions (lib.mkDefault devExtensions);
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user