File tree Expand file tree Collapse file tree
tests/test-sources/modules Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2929 '' ;
3030 } ;
3131
32+ vimdiffAlias = mkOption {
33+ type = types . bool ;
34+ default = false ;
35+ description = ''
36+ Create a `vimdiff` alias that runs `nvim -d`.
37+ '' ;
38+ } ;
39+
3240 waylandSupport = mkOption {
3341 type = types . bool ;
3442 default = lib . meta . availableOn pkgs . stdenv . hostPlatform pkgs . wayland ;
175183 visible = false ;
176184 } ;
177185
186+ vimdiffPackage = mkOption {
187+ type = types . package ;
188+ description = ''
189+ A wrapper script that runs `nvim -d` as `vimdiff`.
190+ '' ;
191+ readOnly = true ;
192+ visible = false ;
193+ } ;
194+
178195 manDocsPackage = mkOption {
179196 type = types . package ;
180197 defaultText = lib . literalMD "`packages.<system>.man-docs` from Nixvim's flake" ;
318335 ]
319336 ++ lib . optionals config . enablePrintInit [
320337 printInitPackage
338+ ]
339+ ++ lib . optionals config . vimdiffAlias [
340+ vimdiffPackage
321341 ] ;
322342 meta . mainProgram = "nvim" ;
323343 passthru = {
336356 '' ;
337357 } ;
338358
359+ vimdiffPackage = pkgs . writeShellScriptBin "vimdiff" ''
360+ exec "${ config . build . nvimPackage } /bin/nvim" -d "$@"
361+ '' ;
362+
339363 manDocsPackage = config . flake . packages . ${ system } . man-docs ;
340364 } ;
341365
Original file line number Diff line number Diff line change 161161 end
162162 '' ;
163163 } ;
164+
165+ vimdiffAlias-enabled =
166+ { config , pkgs , ... } :
167+ {
168+ vimdiffAlias = true ;
169+
170+ extraPlugins = [
171+ {
172+ plugin = pkgs . runCommandLocal "vimdiff-enabled-test" { } ''
173+ # Test that vimdiff binary exists
174+ if [ ! -x "${ config . build . package } /bin/vimdiff" ]; then
175+ echo "vimdiff binary should exist when vimdiffAlias is enabled" >&2
176+ exit 1
177+ fi
178+
179+ # Test that vimdiff script contains nvim -d
180+ if ! grep -q 'nvim.*-d' "${ config . build . package } /bin/vimdiff"; then
181+ echo "vimdiff script should invoke nvim with -d flag" >&2
182+ exit 1
183+ fi
184+
185+ touch $out
186+ '' ;
187+ }
188+ ] ;
189+ } ;
190+
191+ vimdiffAlias-disabled =
192+ { config , pkgs , ... } :
193+ {
194+ vimdiffAlias = false ;
195+
196+ extraPlugins = [
197+ {
198+ plugin = pkgs . runCommandLocal "vimdiff-disabled-test" { } ''
199+ # Test that vimdiff binary does NOT exist
200+ if [ -e "${ config . build . package } /bin/vimdiff" ]; then
201+ echo "vimdiff binary should NOT exist when vimdiffAlias is disabled" >&2
202+ exit 1
203+ fi
204+
205+ touch $out
206+ '' ;
207+ }
208+ ] ;
209+ } ;
164210}
Original file line number Diff line number Diff line change 4242 EDITOR = "nvim" ;
4343 VISUAL = "nvim" ;
4444 } ;
45-
46- programs = mkIf cfg . vimdiffAlias {
47- bash . shellAliases . vimdiff = "nvim -d" ;
48- fish . shellAliases . vimdiff = "nvim -d" ;
49- zsh . shellAliases . vimdiff = "nvim -d" ;
50- } ;
5145 } ;
5246}
Original file line number Diff line number Diff line change 22{
33 options = {
44 defaultEditor = lib . mkEnableOption "nixvim as the default editor" ;
5-
6- vimdiffAlias = lib . mkOption {
7- type = lib . types . bool ;
8- default = false ;
9- description = ''
10- Alias `vimdiff` to `nvim -d`.
11- '' ;
12- } ;
135 } ;
146
157 imports = [ ./shared.nix ] ;
You can’t perform that action at this time.
0 commit comments