2021-03-22 04:33:08 +01:00
|
|
|
![NVCode Logo](./utils/media/nvcode_logo.png)
|
2021-03-15 02:51:54 +01:00
|
|
|
|
2021-03-22 04:37:02 +01:00
|
|
|
![NVCode Demo](./utils/media/demo.png)
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
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
|
2021-03-15 02:51:54 +01:00
|
|
|
|
2021-03-24 00:52:56 +01:00
|
|
|
## Install In One Command!
|
|
|
|
|
2021-03-24 01:00:40 +01:00
|
|
|
Make sure you have the newest version of Neovim
|
|
|
|
|
2021-03-24 04:52:35 +01:00
|
|
|
``` bash
|
2021-03-24 00:52:56 +01:00
|
|
|
bash <(curl -s https://raw.githubusercontent.com/ChristianChiarulli/nvim/master/utils/installer/install.sh)
|
|
|
|
```
|
|
|
|
|
2021-03-24 01:00:40 +01:00
|
|
|
After installation run `nvim` and then `:PackerInstall`
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
## Get the latest version of Neovim
|
2021-03-15 03:25:28 +01:00
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
``` bash
|
2021-03-15 03:25:28 +01:00
|
|
|
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
|
|
|
|
```
|
|
|
|
|
2021-03-15 17:58:57 +01:00
|
|
|
## VSCode support
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
After installing the [Neovim
|
|
|
|
extension](https://github.com/asvetliakov/vscode-neovim) in VSCode
|
2021-03-19 04:47:03 +01:00
|
|
|
|
2021-03-23 03:09:11 +01:00
|
|
|
I recommend using this alongside the VSCode
|
|
|
|
[which-key](https://github.com/VSpaceCode/vscode-which-key) extension
|
2021-03-19 04:47:03 +01:00
|
|
|
|
2021-03-23 03:09:11 +01:00
|
|
|
You will also need `settings.json` and `keybindings.json` which can be
|
|
|
|
found in utils/vscode\_config
|
2021-03-15 17:58:57 +01:00
|
|
|
|
|
|
|
Point the nvim path to your `nvim` binary
|
|
|
|
|
2021-03-23 03:09:11 +01:00
|
|
|
Point your `init.vim` path to:
|
2021-03-15 17:58:57 +01:00
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
``` vim
|
2021-03-23 03:09:11 +01:00
|
|
|
$HOME/.config/nvim/vimscript/nv-vscode/init.vim
|
2021-03-15 17:58:57 +01:00
|
|
|
```
|
|
|
|
|
2021-03-20 09:20:23 +01:00
|
|
|
## Clipboard Support
|
|
|
|
|
2021-03-22 19:03:54 +01:00
|
|
|
- On Mac `pbcopy` should be built-in
|
2021-03-20 09:20:23 +01:00
|
|
|
|
|
|
|
- Ubuntu
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
```bash
|
2021-03-20 09:20:23 +01:00
|
|
|
sudo apt install xsel
|
2021-03-20 22:22:44 +01:00
|
|
|
```
|
2021-03-20 09:20:23 +01:00
|
|
|
|
|
|
|
- Arch
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
```bash
|
2021-03-20 09:20:23 +01:00
|
|
|
sudo pacman -S xsel
|
2021-03-20 22:22:44 +01:00
|
|
|
```
|
2021-03-20 09:20:23 +01:00
|
|
|
|
|
|
|
## LSP
|
|
|
|
|
2021-03-24 00:58:43 +01:00
|
|
|
To install a supported language server:
|
2021-03-20 09:20:23 +01:00
|
|
|
|
2021-03-24 04:52:35 +01:00
|
|
|
``` bash
|
|
|
|
:LspInstall <your_language_server>
|
2021-03-24 00:58:43 +01:00
|
|
|
```
|
2021-03-24 04:52:35 +01:00
|
|
|
|
|
|
|
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>`
|
2021-03-20 09:20:23 +01:00
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
For a more in depth LSP support:
|
|
|
|
[link](https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md)
|
2021-03-20 09:20:23 +01:00
|
|
|
|
2021-03-18 01:32:52 +01:00
|
|
|
## efm server is slow on close
|
|
|
|
|
|
|
|
Install the latest with:
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
``` bash
|
2021-03-18 01:32:52 +01:00
|
|
|
go get github.com/mattn/efm-langserver@HEAD
|
|
|
|
```
|
|
|
|
|
2021-03-19 04:47:03 +01:00
|
|
|
## Useful Programs
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
``` bash
|
2021-03-19 04:47:03 +01:00
|
|
|
ranger
|
|
|
|
ueberzug
|
|
|
|
fd
|
|
|
|
ripgrep
|
|
|
|
jq
|
|
|
|
fzf
|
|
|
|
lazygit
|
|
|
|
lazydocker
|
|
|
|
ncdu
|
2021-03-20 09:20:23 +01:00
|
|
|
pynvim
|
|
|
|
neovim-remote
|
2021-03-19 04:47:03 +01:00
|
|
|
```
|
|
|
|
|
2021-03-24 00:58:43 +01:00
|
|
|
## Formatters and Linters
|
|
|
|
|
2021-03-19 04:47:03 +01:00
|
|
|
**Python**
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
``` bash
|
2021-03-24 00:58:43 +01:00
|
|
|
pip3 install --user flake8
|
|
|
|
pip3 install --user yapf
|
2021-03-19 04:47:03 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
**Lua**
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
``` bash
|
2021-03-24 00:58:43 +01:00
|
|
|
luarocks install --server=https://luarocks.org/dev luaformatter
|
2021-03-19 04:47:03 +01:00
|
|
|
```
|
|
|
|
|
2021-03-20 09:20:23 +01:00
|
|
|
**Yaml, Json, Javascript, HTML, CSS**
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
``` bash
|
2021-03-24 00:58:43 +01:00
|
|
|
npm install -g prettier
|
2021-03-20 09:20:23 +01:00
|
|
|
```
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
**Markdown**
|
|
|
|
|
|
|
|
``` bash
|
|
|
|
pandoc
|
|
|
|
```
|
|
|
|
|
2021-03-19 04:47:03 +01:00
|
|
|
## Vim Gists
|
|
|
|
|
|
|
|
To use vim-gists you will need to configure the following:
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
``` bash
|
2021-03-19 04:47:03 +01:00
|
|
|
git config --global github.user <username>
|
|
|
|
```
|
|
|
|
|
2021-03-20 03:35:58 +01:00
|
|
|
## Snippets
|
|
|
|
|
2021-03-20 22:22:44 +01:00
|
|
|
If you are looking for snippets checkout this github topic: [Snippet
|
|
|
|
Topic](https://github.com/topics/vscode-snippets)
|
2021-03-20 03:35:58 +01:00
|
|
|
|
2021-03-23 03:09:11 +01:00
|
|
|
## De-bugging
|
|
|
|
|
|
|
|
To set up your particular debugger, look here:
|
|
|
|
[link](https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation)
|
|
|
|
|
2021-03-15 02:51:54 +01:00
|
|
|
## TODO
|
2021-03-15 16:54:53 +01:00
|
|
|
|
|
|
|
**HIGH PRIORITY**
|
2021-03-20 22:22:44 +01:00
|
|
|
|
2021-03-24 22:58:17 +01:00
|
|
|
Move user config into `config.lua`
|
|
|
|
|
2021-03-24 05:53:36 +01:00
|
|
|
From here I will update for bug fixes and implement low priority
|
|
|
|
features when I have time
|
2021-03-23 03:09:11 +01:00
|
|
|
|
|
|
|
**LOW PRIORITY**
|
|
|
|
|
2021-03-24 05:53:36 +01:00
|
|
|
- list all binaries needed for formatters and linters
|
|
|
|
- add badges to readme
|
|
|
|
- json config file (luajson)
|
2021-03-20 22:22:44 +01:00
|
|
|
- Implement what I can from this java config:
|
|
|
|
[link](https://github.com/mfussenegger/nvim-jdtls/wiki/Sample-Configurations)
|
|
|
|
- better ui for code actions - formatting
|
|
|
|
- setup junit tests for java
|
2021-03-22 19:03:54 +01:00
|
|
|
- look into emmet-ls
|
2021-03-22 01:59:02 +01:00
|
|
|
- toggle virtual text diagnostics
|
|
|
|
- configure neogit
|
2021-03-22 03:40:26 +01:00
|
|
|
- configure kshenoy/vim-signature
|
2021-03-22 04:14:19 +01:00
|
|
|
- vim ult test
|
2021-03-22 06:46:06 +01:00
|
|
|
- what is `fzy`
|
2021-03-22 08:01:12 +01:00
|
|
|
- https://github.com/pwntester/octo.nvim
|
2021-03-22 20:15:12 +01:00
|
|
|
- configure surround
|
2021-03-24 01:04:38 +01:00
|
|
|
- move to ultisnips
|
2021-03-22 01:59:02 +01:00
|
|
|
|
|
|
|
**PLUGIN BUGS**
|
|
|
|
|
2021-03-24 01:04:38 +01:00
|
|
|
- html snippets are broken with vsnip
|
2021-03-24 04:34:58 +01:00
|
|
|
- keep and eye on indent guides plugin for thin lines
|
2021-03-23 03:09:11 +01:00
|
|
|
- better auto-import (jsx)
|