5.2 KiB
gentags.nvim
Tags generator/management for old school vimers in Neovim.
To be honest, it seems that tags have become useless in Neovim today, LSP and treesitter replaced tags and make (Neo)vim a modern editor.
While there exists gap when LSP server or treesitter implementations are insufficient, which brings tags back to us as a supplement to fill the gap.
Table of Contents
Features
- Automatically running in background.
- Support both workspace/single file mode.
- Full update on workspace open, incremental update on file save.
- Terminate immediately on nvim leave.
- Search and load tags on workspace/file open.
- Disk cache management and garbage collection.
- Real-time status for Neovim components such as statusline.
Requirements
- Neovim ≥ 0.7.0.
- universal-ctags (default backend).
PRs are welcome to add other backends.
Install
With lazy.nvim
require("lazy").setup({
{
"linrongbin16/gentags.nvim",
config = function()
require('gentags').setup()
end,
},
})
With pckr.nvim
require("pckr").add({
{
"linrongbin16/gentags.nvim",
config = function()
require("gentags").setup()
end,
},
})
Configuration
To overwrite default options, please use:
require('gentags').setup(opts)
The otps is an optional lua table that overwrites default options.
For complete options and defaults, please see configs.lua.
Recommendations
Recommend use tags with below plugins to smooth your editing flow:
- vista.vim: View and search symbols on current file.
- cmp-nvim-tags: Code completion data source for nvim-cmp.
- fzf.vim: The
TagsandBTagscommands in the fzf.vim fuzzy finder. - fzf-lua: The
tags,btagsand other commands in the fzf-lua fuzzy finder. - telescope.nvim: The
builtin.tagsvim picker in the telescope fuzzy finder.
Alternatives
- gentags.lua: Auto generates tags by filetype.
- vim-gutentags: A Vim plugin that manages your tag files.
Development
To develop the project and make PR, please setup with:
To run unit tests, please install below dependencies:
Then test with vusted ./test.
Contribute
Please open issue/PR for anything about gentags.nvim.
Like gentags.nvim? Consider