at master 793 B view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7 8let 9 cfg = config.programs.vim; 10in 11{ 12 options.programs.vim = { 13 enable = lib.mkEnableOption "Vi IMproved, an advanced text editor"; 14 15 defaultEditor = lib.mkEnableOption "vim as the default editor"; 16 17 package = lib.mkPackageOption pkgs "vim" { example = [ "vim-full" ]; }; 18 }; 19 20 config = lib.mkIf (cfg.enable || cfg.defaultEditor) { 21 assertions = [ 22 { 23 assertion = cfg.defaultEditor -> cfg.enable; 24 message = "{option}`programs.vim.defaultEditor` requires {option}`programs.vim.enable` to be set to true."; 25 } 26 ]; 27 environment = { 28 systemPackages = [ cfg.package ]; 29 variables.EDITOR = lib.mkIf cfg.defaultEditor (lib.mkOverride 900 "vim"); 30 pathsToLink = [ "/share/vim-plugins" ]; 31 }; 32 }; 33}