Extensions - nvim-telescope/telescope.nvim GitHub Wiki

Extensions

Here are a few simple guidelines to make an extension for Telescope:

Examples

Sorter

It's suggested to install one native sorter, for better performance

Extension Description
telescope-fzf-native.nvim Native FZF sorter that uses compiled C to do the matching, supports fzf syntax
telescope-fzy-native.nvim Native FZY sorter that uses compiled C to do the matching
telescope-zf-native.nvim Native zf sorter that prioritizes matches on filenames

Below are benchmarks to show the performance difference between lua, fzf, and fzy. Done with an early version of plenary.benchmark. The benchmark was done by calculating the score for 240201 file strings in a table. For each score > 0 we also calculated the positions (this is the slower part for both algorithms, and telescope tends to only do this for the displayed results, usually less than 50 entries).

The benchmark between fzf-native and fzy-native isn't that meaningful. The benefit of fzf-native is the support with the fzf syntax.

imgs/bench1.png imgs/bench2.png

Different Plugins with telescope integration

Extension Description
telescope-all-recent (F)recency sorting for all Telescope pickers.
telescope-http.nvim Quickly investigate HTTP status codes
telescope-frecency.nvim A "smart" picker using Frecency Algorithm that can learn from your habit
telescope-recent-files.nvim Merges the find_files and oldfiles picker, so files are sorted by how recently they were opened
telescope-session.nvim A "xray23" picker to help you manage your vim sessions
octo.nvim Edit and review GitHub issues and pull requests from the comfort of your favorite editor with telescope integration
telescope-pathogen.nvim Switch working directory for builtin actions on the fly
telescope-project.nvim Switch between projects
telescope-completion.nvim Pick Insert mode completion
telescope-code-fence.nvim Fetch Markdown Code Fences from Github
telescope-software-licenses.nvim View and paste common software licenses into your project
telescope-git-grep.nvim Search the current buffer's worktree using git grep
telescope-git-selector.nvim Quickly search for Git worktrees and open/search files in the selected worktree
telescope-github.nvim Integration with github cli
telescope-media-files.nvim Preview images, pdf, epub, video, and fonts from Neovim using Telescope
telescope-fzf-writer.nvim Incorporating some fzf concepts with plenary jobs and Telescope
telescope-symbols.nvim Picking symbols and insert them at point
telescope-ghq.nvim Integration with ghq
telescope-repo.nvim Jump into the repositories (git, mercurial…) of your filesystem
telescope-node-modules.nvim List all node packages under node_modules directory
telescope-z.nvim Integration with z
telescope-ros.nvim Pick packages from ROS and ROS2 workspaces
telescope_hoogle Live search Haskell functions and docs using Hoogle and Telescope!
telescope-tele-tabby.nvim Tab switcher
telescope-lsp-handlers.nvim Handlers for built-in LSP commands
browser-bookmarks.nvim Open your browser bookmarks from Neovim using Telescope
telescope-heading.nvim Switch between document's headings (Markdown, AsciiDoc, rst, org, latex, and Vim Help)
telescope-emoji.nvim Find emojisπŸ˜ƒ
telescope-glyph.nvim Find font glyphs
telescope-opds browse opds catalogs
goimpl.nvim generate interface stubs for a type
telescope-gott.nvim exec a specific go test
telescope-switch.nvim switch between files with given rules
nvim-neoclip.lua clipboard manager
telescope-tmuxinator.nvim tmuxinator integration
cheatsheet.nvim Cheatsheet plugin for neovim with Telescope as UI, actively maintained fork of the original plugin
telescope-hop.nvim Navigate, select, and perform actions with motions inspired by hop.nvim
scaladex.nvim Search & add scaladex for dependencies/libraries for your scala projects!
telescope-ctags-outline.nvim get ctags outline
telescope-command-palette.nvim Create key-bindings and watch them with telescope
telescope-terraform-doc.nvim Browse Terraform providers resources
telescope-windowizer.nvim Open and edit files in another tmux window and kill the window when exit vim
telescope-ag A Telescope picker for Silver Searcher(Ag) similar to that of fzf.vim
telescope-scriptnames.nvim A Telescope extension wrapper around :scriptnames
telescope-changes.nvim A Telescope extension wrapper around :changes
telescope-gitmoji.nvim A Telescope integration of gitmoji.
telescope-cc.nvim A Telescope integration of Conventional Commits.
telescope-cmdline-word.nvim Search word for substitute with tab
telescope-ports.nvim Watch open ports on your system with telescope
command_center.nvim A command palette for neovim
yanky.nvim Improved Yank and Put functionalities for Neovim
vim-p4-files List and select files in Perforce repository
run-code.nvim Create and manage custom commands you can run while writing code
telescope-everything.nvim Everything integration
telescope-recent-files Picker for recently opened files, including buffers which are not yet saved in v:oldfiles
easypick.nvim Create Telescope pickers from arbitrary console commands
telescope-extension-maker.nvim Easy to make a telescope extension
ad-telescope-extensions.nvim A set of telescope extensions, which build on telescope-extension-maker
telescope-file-browser.nvim A file browser extension supporting synchronized creation, deletion, renaming, and moving of files and folders
telescope-alternate Alternate between common files using pre-defined regexp. Just map the patterns and starting navigating between files that are related.
scout Browse packages on Hackage and open their haddock in your browser.
telescope-tabs Fly through your tabs in neovim ✈️
telescope-manix Search Nix documentation using Manix and Telescope.
telescope-color-names.nvim Picker for X11 / web color names.
lsp-toggle.nvim Disable/Enable LSP clients for buffers.
dir-telescope.nvim Perform telescope functions in selected directories
telescope-directory.nvim Search for directories with telescope and perform any action.
haskell-tools.nvim Hoogle search for the type signature of the value under the cursor
telescope-menu.nvim Add a custom menu that executes a command
tailiscope.nvim TailwindCSS cheatsheet within Telescope
telescope-undo.nvim Visualize and search all changes in your undo tree
telescope-monorepos.nvim A telescope extension for fuzzy searching packages in a monorepo(rush) and navigating to its folder
adjacent.nvim A telescope extension for finding files in the same directory as the current buffer
telescope-search-dir-picker.nvim A Telescope extension for picking the search directory before live_grep
telescope-filelinks.nvim Add file links to your wiki, the README.md or any other file using telescope.
telescope-docker.nvim Manage docker containers, images and compose files from a telescope prompt.
telescope-tasks.nvim Run and preview the definitions and outputs of custom or auto-generated tasks from a telescope prompt.
telescope-import.nvim Import modules faster based on import patterns you've already used elsewhere in your project.
telescope-texsuite Telescope menus for latex.
whaler.nvim Move between directories blazingly fast.
telescope-picker-list.nvim List all telescope pickers including user extensions. Free your brain.
telescope-git-submodules.nvim List and preview your project's git submodules. Interact with them with your favourite git TUI.
telescope-cmdline.nvim Telescope extension to use command line in a floating window, rather than in bottom-left corner.
telescope-git-conflicts Telescope git conflicts picker.
telescope-rails.nvim Navigate Rails app easily.
telescope-helpgrep.nvim Use helpgrep to grep through help files.
cscope-picker Simple picker for cscope references.
telescope-just.nvim A Telescope picker for just
telescope-zotero.nvim A Telescope picker for Zotero
telescope-foldmarkers.nvim A Telescope picker for Vim fold markers. Build a navigable table of contents for long files in your comments.
telescope-jj.nvim A telescope picker to use with Jujutsu repos
grit-telescope.nvim A telescope picker for Grit
telescope-live-grep-args.nvim Enables passing arguments to the grep command
telescope-rg.nvim Choose your own grep command and arguments on the fly if it outputs in vimgrep format
feed.nvim Browse and fuzz your way through your web feeds with telescope

Extensions that offer Telescope integration for another plugin

Extension Description
telescope-dap.nvim nvim-dap integration
telescope-dapzzzz facilitate dap to load vscode adapter configure file or user custom configuration file
telescope-packer.nvim A Telescope extension that provides extra functionality for Packer.nvim
telescope-vimspector.nvim Integration for vimspector
telescope-asynctasks.nvim Integration for asynctasks
telescope-ultisnips.nvim Integration for ultisnips
telescope-coc.nvim Integration with coc.nvim
session-lens A Session Switcher extension built on top of auto-session
telescope-openbrowser.nvim Integration for open-browser.vim with Telescope.nvim
telescope-vim-bookmarks.nvim Integration with the vim-bookmarks plugin
telescope-tmux.nvim Integration for tmux
telescope-zoxide Integration with zoxide, a smart directory picker that tracks your usage
neorg-telescope Integration with neorg
telescope-luasnip.nvim Integration for LuaSnip
telescope-git-diffs.nvim Integration for diffview.nvim
telescope-lazy.nvim Integration for Lazy.nvim, provides handy functionality about installed plugins
telescope-lazy-plugins.nvim Integration for Lazy.nvim, quickly access configurations of plugins managed by lazy
toggleterm-manager.nvim Customizable Telescope extension to manage toggleterm.nvim terminal buffers
telescope-gpt.nvim Integration for chatGPT.nvim
telescope-cscope.nvim Integration for cscope_maps
todo-nu-picker.nvim Integration for todo-nu
telescope-resession.nvim Integration for resession.nvim

Extension folder structure

.
β”œβ”€β”€ README.md                   # README for your awesome extension
└── lua
    β”œβ”€β”€ tests                   # TODO: Layout for unit tests
    └── telescope
        └── _extensions         # The underscore is significant
            β”œβ”€ plugin_name.lua  # Init and register your extension
            └─ plugin_name
               β”œβ”€ file1.lua     # Break up the heavy-lifting in
               β”œβ”€ file2.lua     # several files
               └─ ...