Personal, but not too original, Neovim configuration
Find a file
Hoang Nguyen 128f93f3aa
Update LICENSE text
so that it's easier to read (and add my email as well).
2023-11-25 00:00:00 +07:00
after Update syntaxes 2023-11-18 00:00:00 +07:00
colors Initial commit 2023-10-28 00:00:00 +07:00
lua/user Remove some dependencies in nvim-treesitter 2023-11-19 00:00:00 +07:00
spell Initial commit 2023-10-28 00:00:00 +07:00
.neoconf.json Initial commit 2023-10-28 00:00:00 +07:00
.stylua.toml Initial commit 2023-10-28 00:00:00 +07:00
filetype.lua Add custom type for pkgs.yaml for elixirls 2023-11-02 00:00:00 +07:00
go.mod mage: support target in multiple categories 2023-11-25 00:00:00 +07:00
go.sum mage: support target in multiple categories 2023-11-25 00:00:00 +07:00
init.lua Initial commit 2023-10-28 00:00:00 +07:00
lazy-lock.json mage: support target in multiple categories 2023-11-25 00:00:00 +07:00
LICENSE Update LICENSE text 2023-11-25 00:00:00 +07:00
magefile.go mage: support target in multiple categories 2023-11-25 00:00:00 +07:00
pkgs.yaml mage: support target in multiple categories 2023-11-25 00:00:00 +07:00
README.md Remove some dependencies in nvim-treesitter 2023-11-19 00:00:00 +07:00

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 and nvim-dap)
  • remark-language-server
  • swift-MesonLSP (inside container)
  • mdx_analyzer
  • ocamllsp
  • graphql
  • glint (for handlebars files)
  • vscode-js-debug (config for nvim-dap + install script)
  • eslint (LSP) (maybe biome is already good enough???)
  • lldb-vscode (nvim-dap config for C/C++/Zig)
  • 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
  • nvim-dap-repl-highlights
  • nvim-tree.lua -> neo-tree???

Logic

  • Smooth colorschemes changing (dynamic highlight groups registration via event hooks)
  • User commands/bindings per LSP server

FAQ

Why not using mason.nvim?

Most things installed via mason.nvim are in binary format, which might be 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.