Skip to content

Commit 89c94d9

Browse files
committed
plugins/telescope/media-files: use the top-level dependencies option
1 parent 0a301a4 commit 89c94d9

File tree

3 files changed

+65
-77
lines changed

3 files changed

+65
-77
lines changed

plugins/by-name/telescope/extensions/media-files.nix

Lines changed: 46 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,67 @@
11
{
22
lib,
3-
pkgs,
43
...
54
}:
65
with lib;
76
let
8-
inherit (lib.nixvim) defaultNullOpts;
7+
inherit (lib.nixvim) defaultNullOpts mkSettingsRenamedOptionModules;
98
mkExtension = import ./_mk-extension.nix;
109
in
1110
mkExtension {
1211
name = "media-files";
1312
extensionName = "media_files";
1413
package = "telescope-media-files-nvim";
1514

16-
extraOptions = {
17-
dependencies =
18-
let
19-
mkDepOption =
20-
{
21-
name,
22-
desc,
23-
package ? name,
24-
enabledByDefault ? false,
25-
}:
26-
{
27-
enable = mkOption {
28-
type = types.bool;
29-
default = enabledByDefault;
30-
description = ''
31-
Whether to install the ${name} dependency.
32-
${desc}
33-
'';
34-
};
15+
imports =
16+
let
17+
dependencies = {
18+
chafa = "chafa";
19+
imageMagick = "imagemagick";
20+
ffmpegthumbnailer = "ffmpegthumbnailer";
21+
pdftoppm = "poppler-utils";
22+
epub-thumbnailer = "epub-thumbnailer";
23+
fontpreview = "fontpreview";
24+
};
3525

36-
package = mkPackageOption pkgs name { default = package; };
37-
};
38-
in
26+
# TODO: Added 2025-04-27. Remove after 25.11
27+
deprecations = lib.concatLists (
28+
lib.mapAttrsToList (
29+
oldName: newName:
30+
mkSettingsRenamedOptionModules
31+
[
32+
"plugins"
33+
"telescope"
34+
"extensions"
35+
"media-files"
36+
"dependencies"
37+
oldName
38+
]
39+
[
40+
"dependencies"
41+
newName
42+
]
43+
[ "enable" "package" ]
44+
) dependencies
45+
);
46+
in
47+
deprecations
48+
++ [
3949
{
40-
chafa = mkDepOption {
41-
name = "chafa";
42-
enabledByDefault = true;
43-
desc = "Required for image support.";
44-
};
45-
46-
imageMagick = mkDepOption {
47-
name = "ImageMagick";
48-
package = "imagemagick";
49-
desc = "Required for svg previews.";
50-
};
51-
52-
ffmpegthumbnailer = mkDepOption {
53-
name = "ffmpegthumbnailer";
54-
desc = "Required for video preview support.";
55-
};
56-
57-
pdftoppm = mkDepOption {
58-
name = "pdmtoppm";
59-
package = "poppler_utils";
60-
desc = "Required for pdf preview support.";
50+
__depPackages = {
51+
chafa.default = "chafa";
52+
epub-thumbnailer.default = "epub-thumbnailer";
53+
ffmpegthumbnailer.default = "ffmpegthumbnailer";
54+
fontpreview.default = "fontpreview";
55+
imagemagick.default = "imagemagick";
56+
poppler-utils.default = "poppler_utils";
6157
};
62-
63-
epub-thumbnailer = mkDepOption {
64-
name = "epub-thumbnailer";
65-
desc = "Required for epub preview support";
66-
};
67-
68-
fontpreview = mkDepOption {
69-
name = "fontpreview";
70-
desc = "Required for font preview support.";
71-
};
72-
};
73-
};
58+
}
59+
];
7460

7561
extraConfig = cfg: {
76-
extraPackages = flatten (
77-
mapAttrsToList (name: { enable, package }: optional enable package) cfg.dependencies
78-
);
62+
dependencies = {
63+
chafa.enable = lib.mkDefault true;
64+
};
7965
};
8066

8167
settingsOptions = {

tests/test-sources/modules/dependencies.nix

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44
...
55
}:
66
let
7-
disabledDeps = [
8-
];
9-
107
inherit (pkgs.stdenv) hostPlatform;
118

9+
disabledDeps = lib.optionals hostPlatform.isDarwin [
10+
# One of its dependencies is not available on darwin
11+
"fontpreview"
12+
];
13+
1214
isDepEnabled =
1315
name: package:
1416
# Filter disabled dependencies

tests/test-sources/plugins/by-name/telescope/media-files.nix

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,23 @@
3232
plugins.web-devicons.enable = true;
3333
};
3434

35-
dependencies = {
36-
plugins.telescope = {
37-
enable = true;
38-
39-
extensions.media-files = {
35+
withAllDependencies = {
36+
plugins = {
37+
telescope = {
4038
enable = true;
4139

42-
dependencies = {
43-
chafa.enable = true;
44-
imageMagick.enable = true;
45-
ffmpegthumbnailer.enable = true;
46-
pdftoppm.enable = true;
47-
epub-thumbnailer.enable = pkgs.stdenv.isLinux;
48-
fontpreview.enable = pkgs.stdenv.isLinux;
49-
};
40+
extensions.media-files.enable = true;
5041
};
42+
web-devicons.enable = true;
43+
};
44+
45+
dependencies = {
46+
chafa.enable = true;
47+
epub-thumbnailer.enable = true;
48+
ffmpegthumbnailer.enable = true;
49+
fontpreview.enable = !pkgs.stdenv.hostPlatform.isDarwin;
50+
imagemagick.enable = true;
51+
poppler-utils.enable = true;
5152
};
52-
plugins.web-devicons.enable = true;
5353
};
5454
}

0 commit comments

Comments
 (0)