nix-config/config/neovim/lua/opdavies/telescope/mappings.lua
Oliver Davies f603d40156 feat(nvim): automatically find files
Run "nvim +GoToFile" to open Neovim and automatically open Telescope to
find the file that I need.

The idea was taken from @joshmedeski when he mentioned it in a podcast
with @nicknisi.

https://youtu.be/17o9QrCcF_o
https://github.com/joshmedeski/dotfiles/search?q=GoToFile
2023-02-24 09:43:29 +00:00

52 lines
1.5 KiB
Lua

TelescopeMapArgs = TelescopeMapArgs or {}
local telescope = require "telescope"
local telescope_mapper = function(key, f, options, buffer)
local map_key = vim.api.nvim_replace_termcodes(key .. f, true, true, true)
TelescopeMapArgs[map_key] = options or {}
local mode = "n"
local rhs = string.format("<cmd>lua R('opdavies.telescope')['%s'](TelescopeMapArgs['%s'])<CR>", f, map_key)
local map_options = {
noremap = true,
silent = true,
}
if not buffer then
vim.api.nvim_set_keymap(mode, key, rhs, map_options)
else
vim.api.nvim_buf_set_keymap(0, mode, key, rhs, map_options)
end
end
telescope_mapper("<leader>fb", "buffers")
telescope_mapper("<leader>fd", "fd")
telescope_mapper("<leader>fe", "file_browser")
telescope_mapper("<leader>ff", "current_buf")
telescope_mapper("<leader>fg", "git_files")
telescope_mapper("<leader>fh", "help_tags")
telescope_mapper("<leader>fl", "live_grep")
telescope_mapper("<leader>ds", "lsp_document_symbols")
telescope_mapper("<leader>dl", "diagnostics")
telescope_mapper("<leader>en", "edit_neovim")
telescope_mapper("<leader>ez", "edit_zsh")
local nmap = require("opdavies.keymap").nmap
nmap { "<leader>gm", telescope.extensions.git_worktree.create_git_worktree }
nmap { "<leader>gw", telescope.extensions.git_worktree.git_worktrees }
-- Create a command to open Telescope, can be used when starting nvim -
-- "e.g. nvim +GoToFile".
vim.api.nvim_create_user_command(
"GoToFile",
telescope.fd,
{}
)
return telescope_mapper