summaryrefslogtreecommitdiff
path: root/modules/development/default.nix
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-06-23 22:33:44 -0400
committerFreya Murphy <freya@freyacat.org>2025-06-23 22:33:44 -0400
commit328c741b1aac74020412e99e0dca7c728dbc92fa (patch)
tree461f4ebcd3252d542749a34668defd62de356c73 /modules/development/default.nix
parentremoved unused packages (diff)
downloaddotfiles-nix-328c741b1aac74020412e99e0dca7c728dbc92fa.tar.gz
dotfiles-nix-328c741b1aac74020412e99e0dca7c728dbc92fa.tar.bz2
dotfiles-nix-328c741b1aac74020412e99e0dca7c728dbc92fa.zip
refactor
Diffstat (limited to 'modules/development/default.nix')
-rw-r--r--modules/development/default.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/modules/development/default.nix b/modules/development/default.nix
new file mode 100644
index 0000000..486a220
--- /dev/null
+++ b/modules/development/default.nix
@@ -0,0 +1,49 @@
+{
+ lib,
+ config,
+ pkgs,
+ ...
+}: let
+ inherit (lib) mkEnableOption optionals;
+ cfg = config.development;
+in {
+ options.development = {
+ c = mkEnableOption "Enable c/c++ development tools.";
+ java = mkEnableOption "Enable java/kotlin development tools.";
+ rust = mkEnableOption "Enable rust development tools.";
+ zig = mkEnableOption "Enable zig development tools.";
+ };
+
+ config = {
+ home-manager.users.${config.user} = {
+ home.packages = with pkgs;
+ (optionals cfg.c [
+ clang-tools
+ gcc
+ gdb
+ gnumake
+ nasm
+ pkg-config
+ ])
+ ++ (optionals cfg.rust [
+ rustc
+ rustfmt
+ rust-analyzer
+ cargo
+ clippy
+ ])
+ ++ (optionals cfg.java [
+ gradle
+ jdk
+ jdt-language-server
+ kotlin
+ kotlin-language-server
+ maven
+ ])
+ ++ (optionals cfg.zig [
+ zig
+ zls
+ ]);
+ };
+ };
+}