82 lines
2.1 KiB
Nix
82 lines
2.1 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
|
|
{
|
|
options = {
|
|
apps.development = {
|
|
editor = {
|
|
vscodium.enable = lib.mkEnableOption "enable vscodium";
|
|
emacs.enable = lib.mkEnableOption "enable emacs";
|
|
neovim.enable = lib.mkEnableOption "enable neovim";
|
|
zed.enable = lib.mkEnableOption "enable zed";
|
|
default = lib.mkOption {
|
|
default = "neovim";
|
|
description = "default editor";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
config = {
|
|
environment.systemPackages =
|
|
with pkgs;
|
|
[
|
|
nixfmt
|
|
fd
|
|
nil
|
|
nixd
|
|
]
|
|
++ (if config.apps.development.editor.vscodium.enable then [ vscodium ] else [ ])
|
|
++ (if config.apps.development.editor.zed.enable then [ zed-editor ] else [ ]);
|
|
|
|
programs = {
|
|
neovim =
|
|
if
|
|
config.apps.development.editor.neovim.enable
|
|
then
|
|
{
|
|
enable = true;
|
|
defaultEditor = if (config.apps.development.editor.default == "neovim") then true else false;
|
|
viAlias = true;
|
|
vimAlias = true;
|
|
}
|
|
else
|
|
{ };
|
|
vscode =
|
|
if config.apps.development.editor.vscodium.enable then
|
|
{
|
|
enable = true;
|
|
package = pkgs.vscodium;
|
|
defaultEditor = if (config.apps.development.editor.default == "vscodium") then true else false;
|
|
# profiles.default.extensions = with pkgs.vscode-extensions; [
|
|
# catppuccin.catppuccin-vsc
|
|
# catppuccin.catppuccin-vsc-icons
|
|
# jnoortheen.nix-ide
|
|
# alefragnani.project-manager
|
|
# naumovs.color-highlight
|
|
# geequlim.godot-tools
|
|
# stylelint.vscode-stylelint
|
|
# ecmel.vscode-html-css
|
|
# esbenp.prettier-vscode
|
|
# ];
|
|
}
|
|
else
|
|
{ };
|
|
};
|
|
services = {
|
|
emacs =
|
|
if config.apps.development.editor.emacs.enable then
|
|
{
|
|
enable = true;
|
|
install = true;
|
|
defaultEditor = if (config.apps.development.editor.default == "emacs") then true else false;
|
|
}
|
|
else
|
|
{ };
|
|
};
|
|
};
|
|
}
|