{"id":13409239,"url":"https://github.com/ojroques/nvim-lspfuzzy","last_synced_at":"2025-04-06T03:12:27.735Z","repository":{"id":39905972,"uuid":"319692182","full_name":"ojroques/nvim-lspfuzzy","owner":"ojroques","description":"A Neovim plugin to make the LSP client use FZF","archived":false,"fork":false,"pushed_at":"2024-05-20T08:44:40.000Z","size":698,"stargazers_count":322,"open_issues_count":1,"forks_count":11,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-04T11:47:46.578Z","etag":null,"topics":["fzf","neovim-lsp","neovim-lua","neovim-plugin"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ojroques.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-08T16:11:59.000Z","updated_at":"2025-03-29T11:28:13.000Z","dependencies_parsed_at":"2024-06-19T03:08:46.683Z","dependency_job_id":null,"html_url":"https://github.com/ojroques/nvim-lspfuzzy","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojroques%2Fnvim-lspfuzzy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojroques%2Fnvim-lspfuzzy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojroques%2Fnvim-lspfuzzy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojroques%2Fnvim-lspfuzzy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ojroques","download_url":"https://codeload.github.com/ojroques/nvim-lspfuzzy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247427012,"owners_count":20937214,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fzf","neovim-lsp","neovim-lua","neovim-plugin"],"created_at":"2024-07-30T20:00:59.148Z","updated_at":"2025-04-06T03:12:27.700Z","avatar_url":"https://github.com/ojroques.png","language":"Lua","funding_links":[],"categories":["LSP","Lua"],"sub_categories":["(requires Neovim 0.5)"],"readme":"# nvim-lspfuzzy\n\nThis plugin makes the Neovim LSP client use\n[FZF](https://github.com/junegunn/fzf) to display results and navigate the code.\nIt works by redefining your LSP handlers so that they call FZF.\n\n**The plugin requires Neovim 0.6+.** For Neovim 0.5, use version `v0.1.0`.\n\n![demo](https://user-images.githubusercontent.com/23409060/188602802-456cc524-e723-4142-94b3-98df04bf4897.gif)\n\n## Installation\nWith [packer.nvim](https://github.com/wbthomason/packer.nvim):\n```lua\nuse {\n  'ojroques/nvim-lspfuzzy',\n  requires = {\n    {'junegunn/fzf'},\n    {'junegunn/fzf.vim'},  -- to enable preview (optional)\n  },\n}\n```\n\nWith [paq-nvim](https://github.com/savq/paq-nvim):\n```lua\npaq {'junegunn/fzf'}\npaq {'junegunn/fzf.vim'}  -- to enable preview (optional)\npaq {'ojroques/nvim-lspfuzzy'}\n```\n\n## Usage\nSimply add this line to your *init.lua*:\n```lua\nrequire('lspfuzzy').setup {}\n```\n\nIf you're using a *.vimrc* or *init.vim*:\n```vim\nlua require('lspfuzzy').setup {}\n```\n\nIn addition, the plugin creates the following commands:\n* `:LspDiagnostics \u003cbufnr\u003e`: list diagnostics from given buffer (use `0` for\n  current buffer).\n* `:LspDiagnosticsAll`: list diagnostics from all buffers.\n* `:LspFuzzyLast`: re-open the last results (requires `save_last = true`, see\n  [Configuration](#configuration)).\n\nBy default the following FZF actions are available:\n* \u003ckbd\u003e**tab**\u003c/kbd\u003e : select multiple entries\n* \u003ckbd\u003e**shift+tab**\u003c/kbd\u003e : deselect an entry\n* \u003ckbd\u003e**ctrl-a**\u003c/kbd\u003e : select all entries\n* \u003ckbd\u003e**ctrl-d**\u003c/kbd\u003e : deselect all entries\n* \u003ckbd\u003e**ctrl-t**\u003c/kbd\u003e : go to location in a new tab\n* \u003ckbd\u003e**ctrl-v**\u003c/kbd\u003e : go to location in a vertical split\n* \u003ckbd\u003e**ctrl-x**\u003c/kbd\u003e : go to location in a horizontal split\n\n## Configuration\nYou can pass options to the `setup()` function. Here are all available options\nwith their default settings:\n```lua\nrequire('lspfuzzy').setup {\n  methods = 'all',         -- either 'all' or a list of LSP methods (see below)\n  jump_one = true,         -- jump immediately if there is only one location\n  save_last = false,       -- save last location results for the :LspFuzzyLast command\n  callback = nil,          -- callback called after jumping to a location\n  fzf_preview = {          -- arguments to the FZF '--preview-window' option\n    'right:+{2}-/2'          -- preview on the right and centered on entry\n  },\n  fzf_action = {               -- FZF actions\n    ['ctrl-t'] = 'tab split',  -- go to location in a new tab\n    ['ctrl-v'] = 'vsplit',     -- go to location in a vertical split\n    ['ctrl-x'] = 'split',      -- go to location in a horizontal split\n  },\n  fzf_modifier = ':~:.',   -- format FZF entries, see |filename-modifiers|\n  fzf_trim = true,         -- trim FZF entries\n}\n```\n\nThe `fzf_preview` and `fzf_action` settings are determined as follows:\n1. Values passed to `setup()` are used first.\n2. Otherwise the plugin will try to load values from the respective FZF options\n   `g:fzf_preview_window` and `g:fzf_action` if they are set.\n3. Finally the default values will be used.\n\nFor others FZF options such as `g:fzf_layout` or `g:fzf_colors` the plugin will\nrespect your settings.\n\n## Supported LSP methods\nYou can enable FZF only for some LSP methods by passing them as a list to the\n`methods` option when calling `setup()`. The supported LSP methods are:\n```\ncallHierarchy/incomingCalls\ncallHierarchy/outgoingCalls\ntextDocument/declaration\ntextDocument/definition\ntextDocument/documentSymbol\ntextDocument/implementation\ntextDocument/references\ntextDocument/typeDefinition\nworkspace/symbol\n```\n\n## Troubleshooting\n#### Preview does not work\nYou need to install [fzf.vim](https://github.com/junegunn/fzf.vim) to enable\npreviews. If it's already installed, make sure it's up-to-date.\n\n#### Preview does not scroll to the selected location\nTry to append `+{2}-/2` to either `g:fzf_preview_window` or to the `fzf_preview`\noption in `setup()` to make the preview respect line numbers. For instance:\n```lua\nvim.g.fzf_preview_window = {'down:+{2}-/2'}\n```\n\n#### Using the `fzf_modifier` option breaks the plugin\nThe plugin uses the filename embedded in the FZF entry currently selected to\njump to the correct location. Therefore it must resolve to a valid path: for\ninstance `:.` or `:p` can be used but not `:t`.\n\n## License\n[LICENSE](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fojroques%2Fnvim-lspfuzzy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fojroques%2Fnvim-lspfuzzy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fojroques%2Fnvim-lspfuzzy/lists"}