From ce593dbb9a692a34ff46240209e5e6180d5893e1 Mon Sep 17 00:00:00 2001 From: Aditya Date: Wed, 6 Mar 2024 18:41:44 +0530 Subject: [PATCH] add telescope --- config/default.nix | 2 + config/telescope/telescope.nix | 190 +++++++++++++++++++++++++++++++++ 2 files changed, 192 insertions(+) create mode 100644 config/telescope/telescope.nix diff --git a/config/default.nix b/config/default.nix index 89251d3..3732380 100644 --- a/config/default.nix +++ b/config/default.nix @@ -43,6 +43,8 @@ ./statusline/lualine.nix ./statusline/staline.nix + ./telescope/telescope.nix + ./ui/nvim-notify.nix ]; } diff --git a/config/telescope/telescope.nix b/config/telescope/telescope.nix new file mode 100644 index 0000000..29585d1 --- /dev/null +++ b/config/telescope/telescope.nix @@ -0,0 +1,190 @@ +{ + plugins.telescope = { + enable = true; + extensions = { + fzf-native = { + enable = true; + }; + project-nvim = { + enable = true; + }; + ui-select = { + settings = { + specific_opts = { + codeactions = true; + }; + }; + }; + undo = { + enable = true; + mappings = { + i = { + "" = "yank_additions"; + "" = "yank_deletions"; + "" = "restore"; + }; + n = { + "y" = "yank_additions"; + "Y" = "yank_deletions"; + "u" = "restore"; + }; + }; + }; + }; + # If you'd prefer Telescope not to enter a normal-like mode when hitting escape (and instead exiting), you can map to do so via: + defaults = { + mappings = { + i = { + "" = { + __raw = '' + function(...) + return require("telescope.actions").close(...) + end''; + }; + }; + }; + }; + keymaps = { + "" = { + action = "find_files, {}"; + desc = "Find project files"; + }; + "/" = { + action = "live_grep"; + desc = "Grep (root dir)"; + }; + ":" = { + action = "command_history, {}"; + desc = "Command History"; + }; + "b" = { + action = "buffers, {}"; + desc = "+buffer"; + }; + "ff" = { + action = "find_files, {}"; + desc = "Find project files"; + }; + "fr" = { + action = "oldfiles, {}"; + desc = "Recent"; + }; + "fb" = { + action = "buffers, {}"; + desc = "Buffers"; + }; + "" = { + action = "git_files, {}"; + desc = "Search git files"; + }; + "gc" = { + action = "git_commits, {}"; + desc = "Commits"; + }; + "gs" = { + action = "git_status, {}"; + desc = "Status"; + }; + "sa" = { + action = "autocommands, {}"; + desc = "Auto Commands"; + }; + "sb" = { + action = "current_buffer_fuzzy_find, {}"; + desc = "Buffer"; + }; + "sc" = { + action = "command_history, {}"; + desc = "Command History"; + }; + "sC" = { + action = "commands, {}"; + desc = "Commands"; + }; + "sD" = { + action = "diagnostics, {}"; + desc = "Workspace diagnostics"; + }; + "sh" = { + action = "help_tags, {}"; + desc = "Help pages"; + }; + "sH" = { + action = "highlights, {}"; + desc = "Search Highlight Groups"; + }; + "sk" = { + action = "keymaps, {}"; + desc = "Keymaps"; + }; + "sM" = { + action = "man_pages, {}"; + desc = "Man pages"; + }; + "sm" = { + action = "marks, {}"; + desc = "Jump to Mark"; + }; + "so" = { + action = "vim_options, {}"; + desc = "Options"; + }; + "sR" = { + action = "resume, {}"; + desc = "Resume"; + }; + "uC" = { + action = "colorscheme, {}"; + desc = "Colorscheme preview"; + }; + }; + }; + keymaps = [ + { + mode = "n"; + key = "fp"; + action = "Telescope projects"; + options = { + desc = "Projects"; + }; + } + + { + mode = "n"; + key = "sd"; + action = "Telescope diagnostics bufnr=0"; + options = { + desc = "Document diagnostics"; + }; + } + + { + mode = "n"; + key = "st"; + action = "TodoTelescope"; + options = { + silent = true; + desc = "Todo (Telescope)"; + }; + } + + # { + # mode = "n"; + # key = ","; + # action = "Telescope buffers sort_mru=true sort_lastused=true"; + # options = { + # desc = "Switch Buffer"; + # }; + # } + ]; + extraConfigLua = '' + local telescope = require('telescope') + telescope.setup{ + pickers = { + colorscheme = { + enable_preview = true + } + } + } + ''; +}