nvim/README.md
Hoang Nguyen 0f01c172ff
Rewrite the little Go program
- Use Cobra instead of Magefile
- Use Neovim's Go client library to get the data and config
  directories. This is more reliable than guessing from XDG variables
  then falling back to $HOME.
2024-01-31 00:00:00 +07:00

66 lines
3.3 KiB
Markdown

# FollieHiyuki's Neovim configuration
This Neovim config used to live within [my dotfiles](/FollieHiyuki/dotfiles-ansible). Due to the complexity of refactoring both regular files/templates and this Lua codebase, I decided to move it into its own repository. As such, this project stays under the same license as my dotfiles, MIT.
## TODO
### Colorschemes
- OneDark
- Catpuccin
### Missing tree-sitter parsers
- [rescript](https://github.com/nkrkv/tree-sitter-rescript/)
- nftables
- Go template (text/html)
- Jinja2
- [typst](https://github.com/typst/typst/issues/118)
- [kcl](https://github.com/kcl-lang/tree-sitter-kcl)
### Additional DAP/LSP servers
- elixirls/lexical, elp/erlangls (config for `nvim-lspconfig`)
- swift-MesonLSP (inside container)
- one-small-step-for-vimkind
- cmake-language-server / neocmakelsp
- dart/flutter (flutter-tools.nvim / configure dartls directly) (ref: <https://gist.github.com/christopherfujino/80be0f4cd88f75c4991b478e6b071153>)
### More plugins
- [clangd_extensions.nvim](https://github.com/p00f/clangd_extensions.nvim)
- [crates.nvim](https://github.com/Saecki/crates.nvim)
- [numb.nvim](https://github.com/nacro90/numb.nvim)
- [package-info.nvim](https://github.com/vuki656/package-info.nvim)
- [nvim-ufo](https://github.com/kevinhwang91/nvim-ufo)
- [refactoring.nvim](https://github.com/ThePrimeagen/refactoring.nvim)
- [rustaceanvim](https://github.com/mrcjkb/rustaceanvim)
- [telekasten.nvim](https://github.com/renerocksai/telekasten.nvim) / [zk-nvim](https://github.com/zk-org/zk-nvim)
- [tangerine.nvim](https://github.com/udayvir-singh/tangerine.nvim) / [aniseed](https://github.com/Olical/aniseed) + [nfnl](https://github.com/Olical/nfnl) / [hotpot.nvim](https://github.com/rktjmp/hotpot.nvim)
- carbon.nvim -> [silicon.nvim](https://github.com/krivahtoo/silicon.nvim)
- [nabla.nvim](https://github.com/jbyuki/nabla.nvim)
- markdown-preview.nvim -> [peek.nvim](https://github.com/toppair/peek.nvim) / [smp.nvim](https://github.com/cnshsliu/smp.nvim)
- [grpc-nvim](https://github.com/hudclark/grpc-nvim)
- [nvim-ide](https://github.com/ldelossa/nvim-ide)
- [haskell-tools.nvim](https://github.com/mrcjkb/haskell-tools.nvim)
- [nvim-asciidoc-preview](https://github.com/tigion/nvim-asciidoc-preview)
- [lsp-lens.nvim](https://github.com/VidocqH/lsp-lens.nvim)
- [venv-selector.nvim](https://github.com/linux-cultist/venv-selector.nvim)
- [virtual-types.nvim](https://github.com/jubnzv/virtual-types.nvim)
- [hover.nvim](https://github.com/lewis6991/hover.nvim)
- [otter.nvim](https://github.com/jmbuhr/otter.nvim)
- [nvim-rulebook](https://github.com/chrisgrieser/nvim-rulebook)
### Logic
- Smooth colorschemes changing (dynamic highlight groups registration via event hooks)
- [Neorocks](https://github.com/nvim-neorocks) looks cool :)
## FAQ
### Why not using [mason.nvim](https://github.com/williamboman/mason.nvim)?
Most things installed via **mason.nvim** are binaries linked to glibc, which are incompatible to run on the Linux distribution I use - [AlpineLinux](https://alpinelinux.org). I resolved to custom Go program instead. The code is pretty simple and naive, but it works for me.
External LSP servers that can't be installed directly from AlpineLinux's repositories, or with simple `cargo/go install` commands, are defined inside [pkgs.yaml](./pkgs.yaml) file.