/nvcode

Truly the Ultimate Neovim Config NVCode

Primary LanguageLuaGNU General Public License v3.0GPL-3.0

NVCode Logo

NVCode Demo

If you are looking for my old configs checkout the two snapshot branches on this repo, there is one for CoC and one for Native LSP

Get the latest version of Neovim

cd ~
sudo rm -r neovim
git clone https://github.com/neovim/neovim
cd neovim
sudo make CMAKE_BUILD_TYPE=Release install
cd ~
sudo rm -r neovim

VSCode support

After installing the Neovim extension in VSCode

I recommend using this alongside the VSCode which-key extension

Along with some of my config files you can find in utils/vscode_config

Point the nvim path to your nvim binary

Point your init.lua path to:

$HOME/.config/nvim/lua/nv-vscode/init.lua

Clipboard Support

  • On Mac pbcopy should be builtin

  • Ubuntu

    sudo apt install xsel
  • Arch

    sudo pacman -S xsel

LSP

Some example language servers, if you just install them they will work with this config

npm i -g pyright
npm i -g bash-language-server
npm install -g vscode-css-languageserver-bin
npm install -g dockerfile-language-server-nodejs
npm install -g graphql-language-service-cli
npm install -g vscode-html-languageserver-bin
npm install -g typescript typescript-language-server
npm install -g vscode-json-languageserver
npm install -g vim-language-server
npm install -g yaml-language-server
npm install markdownlint --save-dev

For a more in depth LSP support: link

efm server is slow on close

Install the latest with:

go get github.com/mattn/efm-langserver@HEAD

Useful Programs

ranger
ueberzug
fd
ripgrep
jq
fzf
lazygit
lazydocker
ncdu
pynvim
neovim-remote

Python

pyright
flake8
yapf

Lua

ninja
lua-format
sumneko-lua

Yaml, Json, Javascript, HTML, CSS

prettier

Markdown

pandoc

Vim Gists

To use vim-gists you will need to configure the following:

git config --global github.user <username>

Snippets

If you are looking for snippets checkout this github topic: Snippet Topic

TODO

HIGH PRIORITY

  • learn nvim-dap in depth
  • Implement what I can from this java config: link
    • better ui for code actions - formatting
    • setup junit tests for java
  • neovim lightbulb config
  • better vscode support

LOW PRIORITY

  • look into autoinstall lsp
  • get logo
  • json config file (luajson)
  • look into emmet-ls
  • better install script, support both nvim and nvcode paths
  • toggle virtual text diagnostics
  • configure neogit
  • list all binaries needed for functionality
  • html snippets in react (maybe)
  • configure kshenoy/vim-signature
  • vim ult test
  • what is fzy
  • https://github.com/pwntester/octo.nvim

PLUGIN BUGS

  • finding files from dashboard sometimes number not set
  • spell not activated in readme Markdown
  • better autoimport
  • can't find global binary for markdownlint
  • keep and eye on indent guides plugin for thin lines