mirror of
https://github.com/NotAShelf/nvf.git
synced 2026-01-07 03:07:17 +00:00
feat(telescope): add custom setup options
This commit is contained in:
parent
6969124456
commit
82c72fcfbf
2 changed files with 60 additions and 49 deletions
|
|
@ -7,7 +7,7 @@
|
||||||
inherit (lib) addDescriptionsToMappings mkIf mkMerge mkSetBinding nvim pushDownDefault;
|
inherit (lib) addDescriptionsToMappings mkIf mkMerge mkSetBinding nvim pushDownDefault;
|
||||||
|
|
||||||
cfg = config.vim.telescope;
|
cfg = config.vim.telescope;
|
||||||
self = import ./telescope.nix {inherit lib;};
|
self = import ./telescope.nix {inherit pkgs lib;};
|
||||||
mappingDefinitions = self.options.vim.telescope.mappings;
|
mappingDefinitions = self.options.vim.telescope.mappings;
|
||||||
|
|
||||||
mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions;
|
mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions;
|
||||||
|
|
@ -62,52 +62,7 @@ in {
|
||||||
|
|
||||||
vim.luaConfigRC.telescope = nvim.dag.entryAnywhere ''
|
vim.luaConfigRC.telescope = nvim.dag.entryAnywhere ''
|
||||||
local telescope = require('telescope')
|
local telescope = require('telescope')
|
||||||
telescope.setup {
|
telescope.setup(${nvim.lua.toLuaObject cfg.setupOpts})
|
||||||
defaults = {
|
|
||||||
vimgrep_arguments = {
|
|
||||||
"${pkgs.ripgrep}/bin/rg",
|
|
||||||
"--color=never",
|
|
||||||
"--no-heading",
|
|
||||||
"--with-filename",
|
|
||||||
"--line-number",
|
|
||||||
"--column",
|
|
||||||
"--smart-case",
|
|
||||||
"--hidden",
|
|
||||||
"--no-ignore",
|
|
||||||
},
|
|
||||||
pickers = {
|
|
||||||
find_command = {
|
|
||||||
"${pkgs.fd}/bin/fd",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
prompt_prefix = " ",
|
|
||||||
selection_caret = " ",
|
|
||||||
entry_prefix = " ",
|
|
||||||
initial_mode = "insert",
|
|
||||||
selection_strategy = "reset",
|
|
||||||
sorting_strategy = "ascending",
|
|
||||||
layout_strategy = "horizontal",
|
|
||||||
layout_config = {
|
|
||||||
horizontal = {
|
|
||||||
prompt_position = "top",
|
|
||||||
preview_width = 0.55,
|
|
||||||
results_width = 0.8,
|
|
||||||
},
|
|
||||||
vertical = {
|
|
||||||
mirror = false,
|
|
||||||
},
|
|
||||||
width = 0.8,
|
|
||||||
height = 0.8,
|
|
||||||
preview_cutoff = 120,
|
|
||||||
},
|
|
||||||
file_ignore_patterns = { "node_modules", ".git/", "dist/", "build/", "target/", "result/" }, -- TODO: make this configurable
|
|
||||||
color_devicons = true,
|
|
||||||
path_display = { "absolute" },
|
|
||||||
set_env = { ["COLORTERM"] = "truecolor" },
|
|
||||||
winblend = 0,
|
|
||||||
border = {},
|
|
||||||
}
|
|
||||||
|
|
||||||
${
|
${
|
||||||
if config.vim.ui.noice.enable
|
if config.vim.ui.noice.enable
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,59 @@
|
||||||
{lib, ...}: let
|
{
|
||||||
inherit (lib) mkMappingOption mkEnableOption;
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) mkMappingOption mkEnableOption types mkOption nvim;
|
||||||
|
mkOptOfType = type: default:
|
||||||
|
mkOption {
|
||||||
|
# TODO: description
|
||||||
|
description = "See plugin docs for more info";
|
||||||
|
inherit type default;
|
||||||
|
};
|
||||||
|
|
||||||
|
setupOptions = {
|
||||||
|
defaults = {
|
||||||
|
vimgrep_arguments = mkOptOfType (with types; listOf str) [
|
||||||
|
"${pkgs.ripgrep}/bin/rg"
|
||||||
|
"--color=never"
|
||||||
|
"--no-heading"
|
||||||
|
"--with-filename"
|
||||||
|
"--line-number"
|
||||||
|
"--column"
|
||||||
|
"--smart-case"
|
||||||
|
"--hidden"
|
||||||
|
"--no-ignore"
|
||||||
|
];
|
||||||
|
pickers.find_command = mkOptOfType (with types; listOf str) ["${pkgs.fd}/bin/fd"];
|
||||||
|
prompt_prefix = mkOptOfType types.str " ";
|
||||||
|
selection_caret = mkOptOfType types.str " ";
|
||||||
|
entry_prefix = mkOptOfType types.str " ";
|
||||||
|
initial_mode = mkOptOfType types.str "insert";
|
||||||
|
selection_strategy = mkOptOfType types.str "reset";
|
||||||
|
sorting_strategy = mkOptOfType types.str "ascending";
|
||||||
|
layout_strategy = mkOptOfType types.str "horizontal";
|
||||||
|
layout_config = {
|
||||||
|
horizontal = {
|
||||||
|
prompt_position = mkOptOfType types.str "top";
|
||||||
|
preview_width = mkOptOfType types.float 0.55;
|
||||||
|
results_width = mkOptOfType types.float 0.8;
|
||||||
|
};
|
||||||
|
vertical = {
|
||||||
|
mirror = mkOptOfType types.bool false;
|
||||||
|
};
|
||||||
|
width = mkOptOfType types.float 0.8;
|
||||||
|
height = mkOptOfType types.float 0.8;
|
||||||
|
preview_cutoff = mkOptOfType types.int 120;
|
||||||
|
};
|
||||||
|
file_ignore_patterns = mkOptOfType (types.listOf types.str) ["node_modules" ".git/" "dist/" "build/" "target/" "result/"];
|
||||||
|
color_devicons = mkOptOfType types.bool true;
|
||||||
|
path_display = mkOptOfType (types.listOf types.str) ["absolute"];
|
||||||
|
set_env = {
|
||||||
|
COLORTERM = mkOptOfType types.str "truecolor";
|
||||||
|
};
|
||||||
|
winblend = mkOptOfType types.int 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
in {
|
in {
|
||||||
options.vim.telescope = {
|
options.vim.telescope = {
|
||||||
mappings = {
|
mappings = {
|
||||||
|
|
@ -29,5 +83,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
enable = mkEnableOption "telescope.nvim: multi-purpose search and picker utility";
|
enable = mkEnableOption "telescope.nvim: multi-purpose search and picker utility";
|
||||||
|
|
||||||
|
setupOpts = nvim.types.mkPluginSetupOption "Telescope" setupOptions;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue