My favorite VIM based IDE !!

Chris 3b47d024d9 update readme 4 rokov pred
.github f5aef47d80 Create FUNDING.yml 4 rokov pred
ftplugin 605161450f updates 4 rokov pred
lua f52a6870a7 add support LspInstall where possible 4 rokov pred
utils f52a6870a7 add support LspInstall where possible 4 rokov pred
vimscript 2a0c547fcc udpate 4 rokov pred
.gitignore 3c07627b4d ignore spell 4 rokov pred
LICENSE d3e94f3086 update license 4 rokov pred
README.md 3b47d024d9 update readme 4 rokov pred
init.lua 36e9fdf69e indentline 4 rokov pred

README.md

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

Install In One Command!

Make sure you have the newest version of Neovim

bash <(curl -s https://raw.githubusercontent.com/ChristianChiarulli/nvim/master/utils/installer/install.sh)

After installation run nvim and then :PackerInstall

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

You will also need settings.json and keybindings.json which can be found in utils/vscode_config

Point the nvim path to your nvim binary

Point your init.vim path to:

$HOME/.config/nvim/vimscript/nv-vscode/init.vim

Clipboard Support

  • On Mac pbcopy should be built-in

  • Ubuntu

    sudo apt install xsel
    
    • Arch
    sudo pacman -S xsel
    

LSP

To install a supported language server:

  :LspInstall <your_language_server>

The only Language servers supported this way currently are Python, Javascript and Lua the rest you will need to globally install and configure under lua/lsp/<your_lang.lua>

For a more in depth LSP support: link

Useful Programs

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

EFM server

In order for linters and formatters to work you will need to install efm-langserver

:LspInstall efm

Formatters and Linters

Python

pip3 install --user flake8
pip3 install --user yapf

Lua

luarocks install --server=https://luarocks.org/dev luaformatter

Yaml, Json, Javascript, HTML, CSS

npm install -g 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

De-bugging

To set up your particular debugger, look here: link

TODO

HIGH PRIORITY

Move user config into config.lua ts-comment string for react

From here I will update for bug fixes and implement low priority features when I have time

LOW PRIORITY

  • list all binaries needed for formatters and linters
  • add badges to readme
  • Implement what I can from this java config: link
    • better ui for code actions - formatting
    • setup junit tests for java
  • look into emmet-ls
  • toggle virtual text diagnostics
  • configure neogit
  • configure kshenoy/vim-signature
  • vim ult test
  • what is fzy
  • https://github.com/pwntester/octo.nvim
  • configure surround
  • maybe incorporate ultisnips

PLUGIN BUGS

  • html snippets are broken with vsnip