1{ config, lib, pkgs, ... }:
2
3with lib;
4
5let
6 cfg = config.programs.vim;
7in {
8 options.programs.vim = {
9 defaultEditor = mkOption {
10 type = types.bool;
11 default = false;
12 description = lib.mdDoc ''
13 When enabled, installs vim and configures vim to be the default editor
14 using the EDITOR environment variable.
15 '';
16 };
17
18 package = mkOption {
19 type = types.package;
20 default = pkgs.vim;
21 defaultText = literalExpression "pkgs.vim";
22 example = literalExpression "pkgs.vim-full";
23 description = lib.mdDoc ''
24 vim package to use.
25 '';
26 };
27 };
28
29 config = mkIf cfg.defaultEditor {
30 environment.systemPackages = [ cfg.package ];
31 environment.variables = { EDITOR = mkOverride 900 "vim"; };
32 };
33}