omnixient/modules/packs/development.nix
2026-06-28 09:59:04 +02:00

109 lines
2.2 KiB
Nix

# Development pack — editors, language servers, compilers, build tools,
# container CLIs, DB clients, cloud tooling, plus git/npm programs and dev
# manpages.
#
# Migrated from packages.nix `development` category + the coding-gated
# bits of core.nix (programs.git/npm, documentation.dev, gcc/gnumake).
# The richer dev module (modules/development.nix: shells, services,
# helper scripts) is re-gated onto omni.packs.development.enable.
{ config, lib, pkgs, ... }:
let
cfg = config.omni.packs.development;
in
{
options.omni.packs.development.enable =
lib.mkEnableOption "Development pack (editors, LSPs, compilers, build tools, container CLIs)";
config = lib.mkIf cfg.enable {
documentation.dev.enable = true;
programs.git = {
enable = true;
lfs.enable = true;
};
programs.npm.enable = true;
environment.systemPackages = config.omni.lib.filterPackages (
with pkgs;
[
# Editors and IDEs
# neovim (configured via home-manager programs.neovim)
emacs
vscode
jetbrains.idea-oss
# Language servers
typescript-language-server
vscode-langservers-extracted
rust-analyzer
gopls
pyright
lua-language-server
clang-tools
# Debuggers
gdb
lldb
delve
# Build tools
gnumake
cmake
meson
ninja
autoconf
automake
libtool
pkg-config
# Compilers and interpreters
gcc
clang
rustc
cargo
go
python3
nodejs
deno
bun
# Container tools
docker
docker-compose
podman
buildah
skopeo
kind
kubectl
kubernetes-helm
k9s
# Database clients
postgresql
mariadb
sqlite
redis
mongodb-tools
dbeaver-bin
# API testing
httpie
curl
postman
insomnia
# Cloud tools
awscli2
google-cloud-sdk
azure-cli
terraform
ansible
# Documentation
mdbook
hugo
zola
]
);
};
}