feat:32;2uadd telescope keybindings

This commit is contained in:
n3oney 2023-04-22 15:48:21 +02:00
parent 1b1743dc5a
commit eb8c841b4a
No known key found for this signature in database
GPG Key ID: C786693DE727850E
2 changed files with 55 additions and 37 deletions

View File

@ -7,47 +7,45 @@
with lib;
with builtins; let
cfg = config.vim.telescope;
self = import ./telescope.nix {inherit lib;};
mappingDefinitions = self.options.vim.telescope.mappings;
mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions;
in {
config = mkIf (cfg.enable) {
vim.startPlugins = [
"telescope"
];
vim.maps.normal =
{
"<leader>ff" = {action = "<cmd> Telescope find_files<CR>";};
"<leader>fg" = {action = "<cmd> Telescope live_grep<CR>";};
"<leader>fb" = {action = "<cmd> Telescope buffers<CR>";};
"<leader>fh" = {action = "<cmd> Telescope help_tags<CR>";};
"<leader>ft" = {action = "<cmd> Telescope<CR>";};
vim.maps.normal = mkMerge [
(mkSetBinding mappings.findFiles "<cmd> Telescope find_files<CR>")
(mkSetBinding mappings.liveGrep "<cmd> Telescope live_grep<CR>")
(mkSetBinding mappings.buffers "<cmd> Telescope buffers<CR>")
(mkSetBinding mappings.helpTags "<cmd> Telescope help_tags<CR>")
(mkSetBinding mappings.open "<cmd> Telescope<CR>")
"<leader>fvcw" = {action = "<cmd> Telescope git_commits<CR>";};
"<leader>fvcb" = {action = "<cmd> Telescope git_bcommits<CR>";};
"<leader>fvb" = {action = "<cmd> Telescope git_branches<CR>";};
"<leader>fvs" = {action = "<cmd> Telescope git_status<CR>";};
"<leader>fvx" = {action = "<cmd> Telescope git_stash<CR>";};
}
// (
if config.vim.lsp.enable
then {
"<leader>flsb" = {action = "<cmd> Telescope lsp_document_symbols<CR>";};
"<leader>flsw" = {action = "<cmd> Telescope lsp_workspace_symbols<CR>";};
(mkSetBinding mappings.gitCommits "<cmd> Telescope git_commits<CR>")
(mkSetBinding mappings.gitBufferCommits "<cmd> Telescope git_bcommits<CR>")
(mkSetBinding mappings.gitBranches "<cmd> Telescope git_branches<CR>")
(mkSetBinding mappings.gitStatus "<cmd> Telescope git_status<CR>")
(mkSetBinding mappings.gitStash "<cmd> Telescope git_stash<CR>")
"<leader>flr" = {action = "<cmd> Telescope lsp_references<CR>";};
"<leader>fli" = {action = "<cmd> Telescope lsp_implementations<CR>";};
"<leader>flD" = {action = "<cmd> Telescope lsp_definitions<CR>";};
"<leader>flt" = {action = "<cmd> Telescope lsp_type_definitions<CR>";};
"<leader>fld" = {action = "<cmd> Telescope diagnostics<CR>";};
}
else {}
(mkIf config.vim.lsp.enable (mkMerge [
(mkSetBinding mappings.lspDocumentSymbols "<cmd> Telescope lsp_document_symbols<CR>")
(mkSetBinding mappings.lspWorkspaceSymbols "<cmd> Telescope lsp_workspace_symbols<CR>")
(mkSetBinding mappings.lspReferences "<cmd> Telescope lsp_references<CR>")
(mkSetBinding mappings.lspImplementations "<cmd> Telescope lsp_implementations<CR>")
(mkSetBinding mappings.lspDefinitions "<cmd> Telescope lsp_definitions<CR>")
(mkSetBinding mappings.lspTypeDefinitions "<cmd> Telescope lsp_type_definitions<CR>")
(mkSetBinding mappings.diagnostics "<cmd> Telescope diagnostics<CR>")
]))
(
mkIf config.vim.treesitter.enable
(mkSetBinding mappings.treesitter "<cmd> Telescope treesitter<CR>")
)
// (
if config.vim.treesitter.enable
then {
"<leader>fs" = {action = "<cmd> Telescope treesitter<CR>";};
}
else {}
);
];
vim.luaConfigRC.telescope = nvim.dag.entryAnywhere ''
local telescope = require('telescope')

View File

@ -1,11 +1,31 @@
{
config,
lib,
...
}:
{lib, ...}:
with lib;
with builtins; {
options.vim.telescope = {
mappings = {
findFiles = mkMappingOption "Find files [Telescope]" "<leader>ff";
liveGrep = mkMappingOption "Live grep [Telescope]" "<leader>fg";
buffers = mkMappingOption "Buffers [Telescope]" "<leader>fb";
helpTags = mkMappingOption "Help tags [Telescope]" "<leader>fh";
open = mkMappingOption "Open [Telescope]" "<leader>ft";
gitCommits = mkMappingOption "Git commits [Telescope]" "<leader>fvcw";
gitBufferCommits = mkMappingOption "Git buffer commits [Telescope]" "<leader>fvcb";
gitBranches = mkMappingOption "Git branches [Telescope]" "<leader>fvb";
gitStatus = mkMappingOption "Git status [Telescope]" "<leader>fvs";
gitStash = mkMappingOption "Git stash [Telescope]" "<leader>fvx";
lspDocumentSymbols = mkMappingOption "LSP Document Symbols [Telescope]" "<leader>flsb";
lspWorkspaceSymbols = mkMappingOption "LSP Workspace Symbols [Telescope]" "<leader>flsw";
lspReferences = mkMappingOption "LSP References [Telescope]" "<leader>flr";
lspImplementations = mkMappingOption "LSP Implementations [Telescope]" "<leader>fli";
lspDefinitions = mkMappingOption "LSP Definitions [Telescope]" "<leader>flD";
lspTypeDefinitions = mkMappingOption "LSP Type Definitions [Telescope]" "<leader>flt";
diagnostics = mkMappingOption "Diagnostics [Telescope]" "<leader>fld";
treesitter = mkMappingOption "Treesitter [Telescope]" "<leader>fs";
};
enable = mkEnableOption "Enable multi-purpose telescope utility";
};
}