-
Notifications
You must be signed in to change notification settings - Fork 0
Code Editors
This setup includes a highly specialized and modular configuration for modern IDEs including VS Code, Cursor, and Antigravity IDE.
All editors share a centralized baseline of settings and extensions defined in shared-settings.nix and shared-extensions.nix.
Extensions are declaratively fetched via nix-vscode-extensions and robustly symlinked directly into the respective editor's extension directory (e.g., ~/.vscode/extensions, ~/.cursor/extensions, ~/.antigravity-ide/extensions).
The extension linking script parses package.json dynamically to generate both standard and versioned/architecture-specific symlinks (e.g., -universal). This satisfies strict internal IDE caching mechanisms (state.vscdb) and prevents extension scanner crashes.
Settings are generated declaratively via Nix, but injected into the IDE's user directories dynamically as writable files via Home Manager activation scripts. This hybrid approach ensures you can freely toggle settings directly inside the IDE without read-only warnings, while reapplying the Nix baseline on every system rebuild.
Individual editors seamlessly extend the shared baseline. For example, Antigravity IDE defines its own settings.nix and extensions.nix to enforce specific themes or language servers while inheriting all global tooling.