Personal, but not too original, Neovim configuration
|
||
---|---|---|
after | ||
colors | ||
lua/user | ||
spell | ||
.luarc.json | ||
.neoconf.json | ||
.stylua.toml | ||
filetype.lua | ||
go.mod | ||
go.sum | ||
init.lua | ||
lazy-lock.json | ||
LICENSE | ||
magefile.go | ||
pkgs.yaml | ||
README.md |
FollieHiyuki's Neovim configuration
This Neovim config used to live within my dotfiles. 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
Additional DAP/LSP servers
- elixirls/lexical, elp/erlangls (config for
nvim-lspconfig
) - remark-language-server
- swift-MesonLSP (inside container)
- mdx_analyzer
- ocamllsp
- graphql
- vscode-js-debug (config for
nvim-dap
+ install script) - 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
- crates.nvim
- numb.nvim
- package-info.nvim
- pretty-fold.nvim / nvim-ufo
- refactoring.nvim
- rust-tools.nvim
- telekasten.nvim
- tangerine.nvim / aniseed / hotpot / nfnl
- silicon.nvim / silicon.lua
- nabla.nvim
- markdown-preview.nvim -> peek.nvim / smp.nvim
- grpc-nvim
- nvim-ide
- haskell-tools.nvim
- nvim-asciidoc-preview
- lsp-lens.nvim
- venv-selector.nvim
- virtual-types.nvim
- hover.nvim
- flatten.nvim
- oil.nvim
- nvim-tree.lua -> neo-tree???
Logic
- Smooth colorschemes changing (dynamic highlight groups registration via event hooks)
FAQ
Why not using 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. I resolved to custom mage tasks instead. The tasks' source 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 file.