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

View file

@ -1,11 +1,31 @@
{ {lib, ...}:
config,
lib,
...
}:
with lib; with lib;
with builtins; { with builtins; {
options.vim.telescope = { 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"; enable = mkEnableOption "Enable multi-purpose telescope utility";
}; };
} }