feat(mvp): MVP (#3)

This commit is contained in:
linrongbin16
2023-12-28 16:07:44 +08:00
committed by GitHub
parent 2692957e04
commit 510976fd2c
35 changed files with 3477 additions and 21 deletions

View File

@@ -1,8 +1,11 @@
<!-- markdownlint-disable MD001 MD013 MD034 MD033 MD051 -->
# gentags.nvim
<p align="center">
<a href="https://github.com/neovim/neovim/releases/v0.7.0"><img alt="Neovim" src="https://img.shields.io/badge/Neovim-v0.7+-57A143?logo=neovim&logoColor=57A143" /></a>
<a href="https://luarocks.org/modules/linrongbin16/gentags.nvim"><img alt="luarocks" src="https://custom-icon-badges.demolab.com/luarocks/v/linrongbin16/gentags.nvim?label=Luarocks&labelColor=063B70&logo=feed-tag&logoColor=fff&color=008B8B" /></a>
<a href="https://github.com/linrongbin16/commons.nvim"><img alt="commons.nvim" src="https://custom-icon-badges.demolab.com/badge/Powered_by-commons.nvim-teal?logo=heart&logoColor=fff&labelColor=deeppink" /></a>
<a href="https://luarocks.org/modules/linrongbin16/gentags.nvim"><img alt="luarocks" src="https://custom-icon-badges.demolab.com/luarocks/v/linrongbin16/gentags.nvim?label=LuaRocks&labelColor=063B70&logo=tag&logoColor=fff&color=blue" /></a>
<a href="https://github.com/linrongbin16/gentags.nvim/actions/workflows/ci.yml"><img alt="ci.yml" src="https://img.shields.io/github/actions/workflow/status/linrongbin16/gentags.nvim/ci.yml?label=GitHub%20CI&labelColor=181717&logo=github&logoColor=fff" /></a>
<a href="https://app.codecov.io/github/linrongbin16/gentags.nvim"><img alt="codecov" src="https://img.shields.io/codecov/c/github/linrongbin16/gentags.nvim?logo=codecov&logoColor=F01F7A&label=Codecov" /></a>
</p>
@@ -11,25 +14,97 @@
Tags generator/management for old school vimers in Neovim.
</i></p>
> [!WARNING]
>
> Don't use this plugin now, it's not finished yet!
## Table of Contents
- [Features](#features)
- [Install](#install)
- [Usage](#usage)
- [Configuration](#configuration)
- [Alternatives](#alternatives)
- [Development](#development)
- [Contribute](#contribute)
## Features
- [x] Support both workspace/single file.
- [ ] Incremental update on file save.
- [ ] Disk cache management and garbage collection.
- [x] Async run & terminate immediately on nvim leave.
- [ ] Real-time status for Neovim components such as statusline.
## Install
Requirements:
- Neovim &ge; 0.7.0.
For now the required (or supported) backends are:
- [universal-ctags](https://github.com/universal-ctags/ctags).
PRs are welcome to add other backends.
<details>
<summary><b>With <a href="https://github.com/folke/lazy.nvim">lazy.nvim</a>.</b></summary>
<summary><b>With <a href="https://github.com/folke/lazy.nvim">lazy.nvim</a></b></summary>
```lua
require('lazy').setup({
{ "linrongbin16/gentags.nvim", opts = {} }
require("lazy").setup({
{
"linrongbin16/gentags.nvim",
config = function()
require('gentags').setup()
end,
},
})
```
</details>
## Credits
<details>
<summary><b>With <a href="https://github.com/lewis6991/pckr.nvim">pckr.nvim</a></b></summary>
```lua
require("pckr").add({
{
"linrongbin16/gentags.nvim",
config = function()
require("gentags").setup()
end,
},
})
```
</details>
## Usage
Gentags will automatically run below jobs in backend when you work in the nvim editor:
- Load a tags for the whole worksapce or the single file on first open a file.
- Generate tags for the whole worksapce or the single file on first open a file.
- Update tags after you save writtens on a file.
- Terminate all background child processes when you leave nvim.
By default all tags are generated in `stdpath('cache') . '/gentags.nvim'` directory.
- For UNIX/Linux: `~/.cache/nvim/gentags.nvim`.
- For Windows: `$env:USERPROFILE\AppData\Local\Temp\nvim\gentags.nvim`.
## Configuration
To configure default options, please use:
```lua
require('gentags').setup(opts)
```
The `otps` is an optional lua table that overwrites default options.
For complete options and defaults, please see [configs.lua](https://github.com/linrongbin16/gentags.nvim/tree/main/lua/gentags/configs.lua).
## Alternatives
- [gentags.lua](https://github.com/JMarkin/gentags.lua)
- [vim-gutentags](https://github.com/ludovicchabant/vim-gutentags)
## Development