diff --git a/doc/neovim/3 - Telescope.md b/doc/neovim/3 - Telescope.md new file mode 100644 index 0000000..8564646 --- /dev/null +++ b/doc/neovim/3 - Telescope.md @@ -0,0 +1,136 @@ +`lua/roka/core/plugins.lua` +```lua +return require('packer').startup(function() + -- other plugins... + + use "nvim-telescope/telescope.nvim" + + -- other plugins... +end) +``` +`lua/roka/plug/telescope.lua` +```lua +local status_ok, telescope = pcall(require, "telescope") +if not status_ok then + return +end + +telescope.load_extension('media_files') + +local actions = require "telescope.actions" + +telescope.setup { + defaults = { + + prompt_prefix = " ", + selection_caret = " ", + path_display = { "smart" }, + + -- The minimal init not showing preview by default is likely due to the default + -- preview_cutoff value of 120 columns. It looks like your terminal is smaller than 120 columns. + -- Set cutoff to zero to show the preview anyway + layout_config = { + horizontal = { + preview_cutoff = 0, + }, + }, + + mappings = { + i = { + ["" ] = actions.cycle_history_next, + ["" ] = actions.cycle_history_prev, + + ["" ] = actions.move_selection_next, + ["" ] = actions.move_selection_previous, + + ["" ] = actions.close, + + [""] = actions.move_selection_next, + ["" ] = actions.move_selection_previous, + + ["" ] = actions.select_default, + ["" ] = actions.select_horizontal, + ["" ] = actions.select_vertical, + ["" ] = actions.select_tab, + + ["" ] = actions.preview_scrolling_up, + ["" ] = actions.preview_scrolling_down, + + [""] = actions.results_scrolling_up, + [""] = actions.results_scrolling_down, + + [""] = actions.toggle_selection + actions.move_selection_worse, + [""] = actions.toggle_selection + actions.move_selection_better, + [""] = actions.send_to_qflist + actions.open_qflist, + [""] = actions.send_selected_to_qflist + actions.open_qflist, + [""] = actions.complete_tag, + [""] = actions.which_key, -- keys from pressing + }, + + n = { + ["" ] = actions.close, + ["" ] = actions.select_default, + ["" ] = actions.select_horizontal, + ["" ] = actions.select_vertical, + ["" ] = actions.select_tab, + + ["" ] = actions.toggle_selection + actions.move_selection_worse, + [""] = actions.toggle_selection + actions.move_selection_better, + ["" ] = actions.send_to_qflist + actions.open_qflist, + ["" ] = actions.send_selected_to_qflist + actions.open_qflist, + + ["j"] = actions.move_selection_next, + ["k"] = actions.move_selection_previous, + ["H"] = actions.move_to_top, + ["M"] = actions.move_to_middle, + ["L"] = actions.move_to_bottom, + + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + ["gg"] = actions.move_to_top, + ["G"] = actions.move_to_bottom, + + [""] = actions.preview_scrolling_up, + [""] = actions.preview_scrolling_down, + + [""] = actions.results_scrolling_up, + [""] = actions.results_scrolling_down, + + ["?"] = actions.which_key, + }, + }, + }, + -- pickers = { + -- Default configuration for builtin pickers goes here: + -- picker_name = { + -- picker_config_key = value, + -- ... + -- } + -- Now the picker_config_key will be applied every time you call this + -- builtin picker + -- }, + extensions = { + media_files = { + -- filetypes whitelist + -- defaults to {"png", "jpg", "mp4", "webm", "pdf"} + filetypes = {"png", "webp", "jpg", "jpeg"}, + find_cmd = "rg" -- find command (defaults to `fd`) + } + -- Your extension configuration goes here: + -- extension_name = { + -- extension_config_key = value, + -- } + -- please take a look at the readme of the extension you want to configure + }, +} +``` + +`init.lua` +```lua + -- other requires + + require( "roka.plug.telescope") + + -- other requires +``` + diff --git a/lua/roka/core/plugins.lua b/lua/roka/core/plugins.lua index ce7a676..7387547 100644 --- a/lua/roka/core/plugins.lua +++ b/lua/roka/core/plugins.lua @@ -86,10 +86,23 @@ return packer.startup(function(use) end } + -- -------------------------------------------------------------- + -- telescope + -- -------------------------------------------------------------- + use { + "nvim-telescope/telescope.nvim", + branch = "0.1.x", + requires = { + { "nvim-lua/plenary.nvim"}, + { "nvim-telescope/telescope-media-files.nvim"}, + { "nvim-telescope/telescope-fzy-native.nvim"}, + }, - - + config = function() + require( "roka.plug.telescope") + end + } -- ------------------------------------------------------------------- -- Automatically set up your configuration after cloning packer.nvim. diff --git a/lua/roka/plug/telescope.lua b/lua/roka/plug/telescope.lua new file mode 100644 index 0000000..650f037 --- /dev/null +++ b/lua/roka/plug/telescope.lua @@ -0,0 +1,113 @@ +local status_ok, telescope = pcall(require, "telescope") +if not status_ok then + return +end + +telescope.load_extension('media_files') + +local actions = require "telescope.actions" + +telescope.setup { + defaults = { + + prompt_prefix = " ", + selection_caret = " ", + path_display = { "smart" }, + + -- The minimal init not showing preview by default is likely due to the default + -- preview_cutoff value of 120 columns. It looks like your terminal is smaller than 120 columns. + -- Set cutoff to zero to show the preview anyway + layout_config = { + horizontal = { + preview_cutoff = 0, + }, + }, + + mappings = { + i = { + [""] = actions.cycle_history_next, + [""] = actions.cycle_history_prev, + + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + + [""] = actions.close, + + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + + [""] = actions.select_default, + [""] = actions.select_horizontal, + [""] = actions.select_vertical, + [""] = actions.select_tab, + + [""] = actions.preview_scrolling_up, + [""] = actions.preview_scrolling_down, + + [""] = actions.results_scrolling_up, + [""] = actions.results_scrolling_down, + + [""] = actions.toggle_selection + actions.move_selection_worse, + [""] = actions.toggle_selection + actions.move_selection_better, + [""] = actions.send_to_qflist + actions.open_qflist, + [""] = actions.send_selected_to_qflist + actions.open_qflist, + [""] = actions.complete_tag, + [""] = actions.which_key, -- keys from pressing + }, + + n = { + [""] = actions.close, + [""] = actions.select_default, + [""] = actions.select_horizontal, + [""] = actions.select_vertical, + [""] = actions.select_tab, + + [""] = actions.toggle_selection + actions.move_selection_worse, + [""] = actions.toggle_selection + actions.move_selection_better, + [""] = actions.send_to_qflist + actions.open_qflist, + [""] = actions.send_selected_to_qflist + actions.open_qflist, + + ["j"] = actions.move_selection_next, + ["k"] = actions.move_selection_previous, + ["H"] = actions.move_to_top, + ["M"] = actions.move_to_middle, + ["L"] = actions.move_to_bottom, + + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + ["gg"] = actions.move_to_top, + ["G"] = actions.move_to_bottom, + + [""] = actions.preview_scrolling_up, + [""] = actions.preview_scrolling_down, + + [""] = actions.results_scrolling_up, + [""] = actions.results_scrolling_down, + + ["?"] = actions.which_key, + }, + }, + }, + -- pickers = { + -- Default configuration for builtin pickers goes here: + -- picker_name = { + -- picker_config_key = value, + -- ... + -- } + -- Now the picker_config_key will be applied every time you call this + -- builtin picker + -- }, + extensions = { + media_files = { + -- filetypes whitelist + -- defaults to {"png", "jpg", "mp4", "webm", "pdf"} + filetypes = {"png", "webp", "jpg", "jpeg"}, + find_cmd = "rg" -- find command (defaults to `fd`) + } + -- Your extension configuration goes here: + -- extension_name = { + -- extension_config_key = value, + -- } + -- please take a look at the readme of the extension you want to configure + }, +}