{"id":13761281,"url":"https://github.com/weilbith/nvim-lsp-smag","last_synced_at":"2026-01-18T00:51:31.040Z","repository":{"id":45180152,"uuid":"263401844","full_name":"weilbith/nvim-lsp-smag","owner":"weilbith","description":"Seamless integration of language server locations into NeoVim","archived":false,"fork":false,"pushed_at":"2023-01-05T17:07:32.000Z","size":29,"stargazers_count":75,"open_issues_count":3,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-03T13:06:23.511Z","etag":null,"topics":["neovim","neovim-lsp","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/weilbith.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}},"created_at":"2020-05-12T17:13:55.000Z","updated_at":"2024-07-19T02:01:21.000Z","dependencies_parsed_at":"2023-02-04T08:16:23.176Z","dependency_job_id":null,"html_url":"https://github.com/weilbith/nvim-lsp-smag","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weilbith%2Fnvim-lsp-smag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weilbith%2Fnvim-lsp-smag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weilbith%2Fnvim-lsp-smag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weilbith%2Fnvim-lsp-smag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/weilbith","download_url":"https://codeload.github.com/weilbith/nvim-lsp-smag/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224958126,"owners_count":17398495,"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":["neovim","neovim-lsp","neovim-plugin"],"created_at":"2024-08-03T13:01:47.118Z","updated_at":"2026-01-18T00:51:30.979Z","avatar_url":"https://github.com/weilbith.png","language":"Lua","funding_links":[],"categories":["Lua"],"sub_categories":[],"readme":"# NeoVim Language Server Smart Tags\n\nThis plugin allows to seamlessly integrate the language server protocol into\n_NeoVim_. It leverages the\n[tagfunc](https://neovim.io/doc/user/options.html#'tagfunc') option to customize\nhow tags are searched. Instead of searching in a tag file, this plugin queries\nall attached language clients. It queries the servers for the definition,\ndeclaration, implementation and type definition. The resulting list combines all\nof them together. It can be partially empty if the server doesn't provide all\ncapabilities or a response was empty. In case there is no language client\nconnected to the current buffer, it falls back to the default functionality with\na tag file.\n\nThe main advantage is to simplify the whole process of either using a tag file\nor the `vim.lsp.client`. Furthermore it also combines all location lookup\nfunctions together. Instead of defining a separated mapping for the definition,\ndeclaration, implementation and type definition this provides all at once. It\ncan be configured which of them should have the highest priority. So it is still\npossible to jump directly or select from a list of all locations.\n\n## Installation\n\nInstall the plugin with your favorite manager tool. Here is an example using\n[dein.vim](https://github.com/Shougo/dein.vim):\n\n```vim\ncall dein#add('weilbith/nvim-lsp-smag')\n```\n\nIt is recommended to use the\n[nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) plugin to attach\nlanguage clients to your buffers.\n\n## Usage\n\nThe plugin works out of the box. You can simply use all standard ex-commands\nfor [tags](https://neovim.io/doc/user/tagsrch.html) as always. No need to tweak\nyour mappings to conditional switch the to execute command (checkout\n[nvim-lsp-bacomp](https://github.com/weilbith/nvim-lsp-bacomp) when still\nneeded).\n\nTo always jump directly to the definition no matter if the implementations etc.\njust use the `:tag` command. This will always jump to the tag location with the\nhighest priority. The priority sort order can be defined in the configuration.\nFurthermore it is also configurable which language server providers to query for\nlocations.\n\n_Checkout the\n[docs](https://github.com/weilbith/nvim-lsp-smag/blob/master/doc/lsp_smag.txt)\n(`:help lsp-smag.txt`) to read about how to configure the behavior of this\nplugin._\n\n---\n\n**Warning:**\n\nUsing this plugin will remove the ability to search for arbitrary tags with any\nof the tag related ex-commands. As long as a language client is available, the\ncurrent cursor location is used by the server to determine the results.\nNevertheless it is necessary to define the `[name]` parameter. This parameter\ngets simply ignored as long as no tag file is used. Else the ex-commands work\ndifferent for empty `[name]` parameter. Therefore it is recommended to use\nmappings like `\u003ccmd\u003eexecute 'tjump ' . expand('\u003ccword\u003e')\u003cCR\u003e` or type\n`\u003cC-R\u003e\u003cC-W\u003e` for interactive solutions. Thereby it will work for any case. To\nsearch for tags, I recommend to use the symbols by the language server. Checkout\n`vim.lsp.bug.document_symbols()` (and the `workspace` version) or plugins like\n[nvim-lsp-denite](https://github.com/weilbith/nvim-lsp-denite).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweilbith%2Fnvim-lsp-smag","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweilbith%2Fnvim-lsp-smag","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweilbith%2Fnvim-lsp-smag/lists"}