From 5f56edf0b98a7f5d4566e435d360f0bde98965ef Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Wed, 10 Jul 2024 20:59:22 +0200 Subject: [PATCH] nixos/vim: add enable option and link `/share/vim-plugins` only when vim is enabled --- .../manual/release-notes/rl-2411.section.md | 4 ++ nixos/modules/config/system-path.nix | 1 - nixos/modules/programs/vim.nix | 38 +++++++++++-------- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md index 14f371d1c145..48f6cc3b6a4f 100644 --- a/nixos/doc/manual/release-notes/rl-2411.section.md +++ b/nixos/doc/manual/release-notes/rl-2411.section.md @@ -178,6 +178,10 @@ - `keycloak` was updated to version 25, which introduces new hostname related options. See [Upgrading Guide](https://www.keycloak.org/docs/25.0.1/upgrading/#migrating-to-25-0-0) for instructions. +- `programs.vim.defaultEditor` now only works if `programs.vim.enable` is enabled. + +- `/share/vim-plugins` now only gets linked if `programs.vim.enable` is enabled + - The `tracy` package no longer works on X11, since it's moved to Wayland support, which is the intended default behavior by Tracy maintainers. X11 users have to switch to the new package `tracy-x11`. diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix index 562100ad6201..4e2b00ea7610 100644 --- a/nixos/modules/config/system-path.nix +++ b/nixos/modules/config/system-path.nix @@ -156,7 +156,6 @@ in "/share/nano" "/share/org" "/share/themes" - "/share/vim-plugins" "/share/vulkan" "/share/kservices5" "/share/kservicetypes5" diff --git a/nixos/modules/programs/vim.nix b/nixos/modules/programs/vim.nix index 8232340ddebb..7fb50e0f4147 100644 --- a/nixos/modules/programs/vim.nix +++ b/nixos/modules/programs/vim.nix @@ -1,25 +1,31 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.programs.vim; -in { +in +{ options.programs.vim = { - defaultEditor = lib.mkOption { - type = lib.types.bool; - default = false; - description = '' - When enabled, installs vim and configures vim to be the default editor - using the EDITOR environment variable. - ''; - }; + enable = lib.mkEnableOption "Vi IMproved, an advanced text"; - package = lib.mkPackageOption pkgs "vim" { - example = "vim-full"; - }; + defaultEditor = lib.mkEnableOption "vim as the default editor"; + + package = lib.mkPackageOption pkgs "vim" { example = "vim-full"; }; }; - config = lib.mkIf cfg.defaultEditor { - environment.systemPackages = [ cfg.package ]; - environment.variables = { EDITOR = lib.mkOverride 900 "vim"; }; + # TODO: convert it into assert after 24.11 release + config = lib.mkIf (cfg.enable || cfg.defaultEditor) { + warnings = lib.mkIf (cfg.defaultEditor && !cfg.enable) [ + "programs.vim.defaultEditor will only work if programs.vim.enable is enabled, will be encfored after the 24.11 release" + ]; + environment = { + systemPackages = [ cfg.package ]; + variables.EDITOR = lib.mkIf cfg.defaultEditor (lib.mkOverride 900 "vim"); + pathsToLink = [ "/share/vim-plugins" ]; + }; }; }