install
https://neovim.io/doc/user/lsp.html https://github.com/neovim/nvim-lspconfig
This is the documentation for the built-in LSP client and a plugin you probably want to install which includes configurations for lots of popular language servers. This lets you automatically launch languages servers by filetype, and allows using vim's omnifunc completion (manual not automatic). You can combine this with an autocomplete plugin, auto-pairs plugin, format on save, and other things for more advanced features.
language servers
clangd
This on requires a bit of setup, especially for c++, but that's just a flaw of c++ and can't be helped.
godot
Godot can itself be used as a gdscript language server. You just tell your client which port to look at.
python
Pretty good python language server. Although I haven't tried many of them.
null-ls
Provides a way for non-LSP sources to hook into the nvim LSP client. This is
needed for shellcheck
and python's black
formatter.
auto-completion
https://github.com/hrsh7th/nvim-cmp/
This one is suggested by nvim-lspconfig.
https://github.com/ms-jpq/coq_nvim
This one is a bit newer, but it's stupid fast.
snippets
https://github.com/hrsh7th/vim-vsnip/
VSCode(LSP)'s snippet feature in vim.
https://github.com/ms-jpq/coq_nvim
Coq actually provides snippets collected from pretty much every major snippet repo for vim in addition to being the fastest autocomplete.
telescope
https://github.com/nvim-telescope/telescope.nvim
Much fancier FZF like plugin for nvim. It supports anything you could ever want, use it to find files, as a file browser, search vim's help, search vim keybindings, filter LSP references, live project wide grep, and a million other things. It's also faster than fzf.
autoclose brackets
https://github.com/windwp/nvim-autopairs
This seems to be the best plugin for it. Haven't bothered setting it up yet.
custom ui
https://muniftanjim.dev/blog/neovim-build-ui-using-nui-nvim/