{ config, pkgs, stdenv, lib, ... }:
let
my-telescope-nvim = {
plugin = pkgs.vimPlugins.telescope-nvim;
config = ''
" search relative to file
"" https://github.com/nvim-telescope/telescope.nvim/pull/902
nnoremap ff <cmd>lua require('telescope.builtin').find_files({cwd=require'telescope.utils'.buffer_dir()})<cr>
nnoremap fF <cmd>lua require('telescope.builtin').find_files()<cr>
nnoremap fb <cmd>lua require('telescope.builtin').buffers()<cr>
nnoremap fh <cmd>lua require('telescope.builtin').help_tags()<cr>
nnoremap ft <cmd>lua require('telescope.builtin').treesitter()<cr>
nnoremap fc <cmd>lua require('telescope.builtin').command_history()<cr>
nnoremap fC <cmd>lua require('telescope.builtin').commands()<cr>
'';
};
# Problem: unable to fuzzy search parenthesis '('
# https://github.com/nvim-telescope/telescope-fzf-native.nvim/issues/141
my-telescope-fzf-native-nvim = {
plugin = pkgs.vimPlugins.telescope-fzf-native-nvim;
type = "lua";
config = ''
require('telescope').setup {
extensions = {fzf = {}},
defaults = {
layout_strategy = 'vertical'
}
}
require('telescope').load_extension('fzf')
'';
};
my-telescope-live-grep-args-nvim = {
plugin = pkgs.vimPlugins.telescope-live-grep-args-nvim;
type = "lua";
config = ''
require('telescope').load_extension("live_grep_args")
-- nnoremap fg <cmd>lua require('telescope.builtin').live_grep({cwd=require'telescope.utils'.buffer_dir()})<cr>
vim.keymap.set('n', 'fg', '<cmd>lua require("telescope").extensions.live_grep_args.live_grep_args({search_dirs={require"telescope.utils".buffer_dir()}})<cr>')
-- nnoremap fG <cmd>lua require('telescope.builtin').live_grep()<cr>
vim.keymap.set('n', 'fG', '<cmd>lua require("telescope").extensions.live_grep_args.live_grep_args()<cr>')
'';
};
in {
programs.neovim = {
plugins = [
my-telescope-nvim
my-telescope-fzf-native-nvim
pkgs.vimPlugins.plenary-nvim
my-telescope-live-grep-args-nvim
];
extraPackages = with pkgs; [
ripgrep
];
};
}