mirror of
https://github.com/nix-community/nixvim.git
synced 2025-07-06 07:14:31 +02:00
plugins/telescope: migrate helpers -> lib.nixvim
This commit is contained in:
parent
d7b506efdd
commit
83c2844bec
9 changed files with 390 additions and 441 deletions
|
@ -1,148 +1,142 @@
|
|||
{
|
||||
lib,
|
||||
helpers,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
(import ./_helpers.nix {
|
||||
inherit
|
||||
lib
|
||||
helpers
|
||||
config
|
||||
pkgs
|
||||
;
|
||||
}).mkExtension
|
||||
{
|
||||
name = "media-files";
|
||||
extensionName = "media_files";
|
||||
defaultPackage = pkgs.vimPlugins.telescope-media-files-nvim;
|
||||
let
|
||||
inherit (lib.nixvim) defaultNullOpts;
|
||||
in
|
||||
(import ./_helpers.nix { inherit lib config pkgs; }).mkExtension {
|
||||
name = "media-files";
|
||||
extensionName = "media_files";
|
||||
defaultPackage = pkgs.vimPlugins.telescope-media-files-nvim;
|
||||
|
||||
# TODO: introduced 2024-03-24, remove on 2024-05-24
|
||||
imports =
|
||||
let
|
||||
telescopeExtensionsPath = [
|
||||
"plugins"
|
||||
"telescope"
|
||||
"extensions"
|
||||
];
|
||||
in
|
||||
mapAttrsToList
|
||||
(
|
||||
oldOptionName: newOptionPath:
|
||||
mkRenamedOptionModule (
|
||||
telescopeExtensionsPath
|
||||
++ [
|
||||
"media_files"
|
||||
oldOptionName
|
||||
]
|
||||
) (telescopeExtensionsPath ++ [ "media-files" ] ++ newOptionPath)
|
||||
)
|
||||
{
|
||||
enable = [ "enable" ];
|
||||
package = [ "package" ];
|
||||
filetypes = [
|
||||
"settings"
|
||||
"filetypes"
|
||||
];
|
||||
find_cmd = [
|
||||
"settings"
|
||||
"find_cmd"
|
||||
];
|
||||
};
|
||||
|
||||
extraOptions = {
|
||||
dependencies =
|
||||
let
|
||||
mkDepOption =
|
||||
{
|
||||
name,
|
||||
desc,
|
||||
package ? pkgs.${name},
|
||||
enabledByDefault ? false,
|
||||
}:
|
||||
{
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = enabledByDefault;
|
||||
description = ''
|
||||
Whether to install the ${name} dependency.
|
||||
${desc}
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = package;
|
||||
description = "The package to use for the ${name} dependency.";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
chafa = mkDepOption {
|
||||
name = "chafa";
|
||||
enabledByDefault = true;
|
||||
desc = "Required for image support.";
|
||||
};
|
||||
|
||||
imageMagick = mkDepOption {
|
||||
name = "ImageMagick";
|
||||
package = pkgs.imagemagick;
|
||||
desc = "Required for svg previews.";
|
||||
};
|
||||
|
||||
ffmpegthumbnailer = mkDepOption {
|
||||
name = "ffmpegthumbnailer";
|
||||
desc = "Required for video preview support.";
|
||||
};
|
||||
|
||||
pdftoppm = mkDepOption {
|
||||
name = "pdmtoppm";
|
||||
package = pkgs.poppler_utils;
|
||||
desc = "Required for pdf preview support.";
|
||||
};
|
||||
|
||||
epub-thumbnailer = mkDepOption {
|
||||
name = "epub-thumbnailer";
|
||||
desc = "Required for epub preview support";
|
||||
};
|
||||
|
||||
fontpreview = mkDepOption {
|
||||
name = "fontpreview";
|
||||
desc = "Required for font preview support.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
extraConfig = cfg: {
|
||||
extraPackages = flatten (
|
||||
mapAttrsToList (name: { enable, package }: optional enable package) cfg.dependencies
|
||||
);
|
||||
};
|
||||
|
||||
settingsOptions = {
|
||||
filetypes = helpers.defaultNullOpts.mkListOf types.str [
|
||||
"png"
|
||||
"jpg"
|
||||
"gif"
|
||||
"mp4"
|
||||
"webm"
|
||||
"pdf"
|
||||
] "Filetypes whitelist.";
|
||||
|
||||
find_cmd = helpers.defaultNullOpts.mkStr "fd" ''
|
||||
Which find command to use.
|
||||
'';
|
||||
};
|
||||
|
||||
settingsExample = {
|
||||
filetypes = [
|
||||
"png"
|
||||
"webp"
|
||||
"jpg"
|
||||
"jpeg"
|
||||
# TODO: introduced 2024-03-24, remove on 2024-05-24
|
||||
imports =
|
||||
let
|
||||
telescopeExtensionsPath = [
|
||||
"plugins"
|
||||
"telescope"
|
||||
"extensions"
|
||||
];
|
||||
find_cmd = "rg";
|
||||
};
|
||||
}
|
||||
in
|
||||
mapAttrsToList
|
||||
(
|
||||
oldOptionName: newOptionPath:
|
||||
mkRenamedOptionModule (
|
||||
telescopeExtensionsPath
|
||||
++ [
|
||||
"media_files"
|
||||
oldOptionName
|
||||
]
|
||||
) (telescopeExtensionsPath ++ [ "media-files" ] ++ newOptionPath)
|
||||
)
|
||||
{
|
||||
enable = [ "enable" ];
|
||||
package = [ "package" ];
|
||||
filetypes = [
|
||||
"settings"
|
||||
"filetypes"
|
||||
];
|
||||
find_cmd = [
|
||||
"settings"
|
||||
"find_cmd"
|
||||
];
|
||||
};
|
||||
|
||||
extraOptions = {
|
||||
dependencies =
|
||||
let
|
||||
mkDepOption =
|
||||
{
|
||||
name,
|
||||
desc,
|
||||
package ? pkgs.${name},
|
||||
enabledByDefault ? false,
|
||||
}:
|
||||
{
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = enabledByDefault;
|
||||
description = ''
|
||||
Whether to install the ${name} dependency.
|
||||
${desc}
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = package;
|
||||
description = "The package to use for the ${name} dependency.";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
chafa = mkDepOption {
|
||||
name = "chafa";
|
||||
enabledByDefault = true;
|
||||
desc = "Required for image support.";
|
||||
};
|
||||
|
||||
imageMagick = mkDepOption {
|
||||
name = "ImageMagick";
|
||||
package = pkgs.imagemagick;
|
||||
desc = "Required for svg previews.";
|
||||
};
|
||||
|
||||
ffmpegthumbnailer = mkDepOption {
|
||||
name = "ffmpegthumbnailer";
|
||||
desc = "Required for video preview support.";
|
||||
};
|
||||
|
||||
pdftoppm = mkDepOption {
|
||||
name = "pdmtoppm";
|
||||
package = pkgs.poppler_utils;
|
||||
desc = "Required for pdf preview support.";
|
||||
};
|
||||
|
||||
epub-thumbnailer = mkDepOption {
|
||||
name = "epub-thumbnailer";
|
||||
desc = "Required for epub preview support";
|
||||
};
|
||||
|
||||
fontpreview = mkDepOption {
|
||||
name = "fontpreview";
|
||||
desc = "Required for font preview support.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
extraConfig = cfg: {
|
||||
extraPackages = flatten (
|
||||
mapAttrsToList (name: { enable, package }: optional enable package) cfg.dependencies
|
||||
);
|
||||
};
|
||||
|
||||
settingsOptions = {
|
||||
filetypes = defaultNullOpts.mkListOf types.str [
|
||||
"png"
|
||||
"jpg"
|
||||
"gif"
|
||||
"mp4"
|
||||
"webm"
|
||||
"pdf"
|
||||
] "Filetypes whitelist.";
|
||||
|
||||
find_cmd = defaultNullOpts.mkStr "fd" ''
|
||||
Which find command to use.
|
||||
'';
|
||||
};
|
||||
|
||||
settingsExample = {
|
||||
filetypes = [
|
||||
"png"
|
||||
"webp"
|
||||
"jpg"
|
||||
"jpeg"
|
||||
];
|
||||
find_cmd = "rg";
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue