Native LSP, more Lua, less CoC

This commit is contained in:
Christian Chiarulli 2021-03-09 23:55:11 -05:00 committed by GitHub
parent 56f65b12a4
commit 474f961b2a
WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS.
GPG key ID: 4AEE18F83AFDEB23
39 changed files with 906 additions and 671 deletions

1
.gitignore vendored
View file

@ -10,4 +10,5 @@ session
wiki/ wiki/
pack/ pack/
utils/java/* utils/java/*
lua-language-server/

122
README.md
View file

@ -8,55 +8,44 @@ The following will install this config if you have an existing config it will mo
This script only supports Mac, Ubuntu and Arch This script only supports Mac, Ubuntu and Arch
``` ```bash
bash <(curl -s https://raw.githubusercontent.com/ChristianChiarulli/nvim/master/utils/install.sh) bash <(curl -s https://raw.githubusercontent.com/ChristianChiarulli/nvim/master/utils/install.sh)
``` ```
## Install Neovim ## Install Neovim
- Mac To get the latest and greatest:
``` ```bash
brew install --HEAD neovim # Nightly version 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
```
brew upgrade neovim --fetch-HEAD # Sometimes you need to update
```
- Ubuntu
```
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage -o /tmp/nvim.appimage
sudo mv /tmp/nvim.appimage /usr/local/bin/nvim
chmod +x /usr/local/bin/nvim
```
- Arch
```
yay -S neovim-git # Latest
```
## Clone this repo into your config ## Clone this repo into your config
``` ```bash
git clone https://github.com/ChristianChiarulli/nvim.git ~/.config/nvim git clone https://github.com/ChristianChiarulli/nvim.git ~/.config/nvim
``` ```
## Install python & node support ## Install python & node support
``` ```bash
pip install pynvim pip install pynvim
``` ```
``` ```bash
npm i -g neovim npm i -g neovim
``` ```
## Install Neovim remote ## Install Neovim remote
``` ```bash
pip install neovim-remote pip install neovim-remote
``` ```
@ -72,13 +61,13 @@ export PATH=$HOME/.local/bin:$PATH
- Ubuntu - Ubuntu
``` ```bash
sudo apt install xsel sudo apt install xsel
``` ```
- Arch - Arch
``` ```bash
sudo pacman -S xsel sudo pacman -S xsel
``` ```
@ -104,56 +93,45 @@ let g:node_host_prog = expand("~/.nvm/versions/node/v12.16.1/bin/neovim-node-hos
- universal-ctags - universal-ctags
- lazy git - lazy git
- lazy docker - lazy docker
- ninja (for lua lsp)
Explanations and installation instruction can be found on my blog Explanations and installation instruction can be found on my blog
## Language Servers ## Language Servers
Since CoC doesn't support all languages in there extensions Some example language servers, if you just install them they will work with this config
I recommend installing some language servers from scratch
and adding them to your `coc-settings.json` file
Example: ```bash
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
```
- bash Go [here](https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md)
`npm i -g bash-language-server` How to install the lua language server: [link](https://github.com/sumneko/lua-language-server/wiki/Build-and-Run-(Standalone))
```
"languageserver": {
"bash": {
"command": "bash-language-server",
"args": ["start"],
"filetypes": ["sh"],
"ignoredRootPaths": ["~"]
}
}
```
## For FAR to work ## For FAR to work
``` ```vim
:UpdateRemotePlugins :UpdateRemotePlugins
``` ```
To replace in file make sure to specify `%:p` To replace in file make sure to specify `%:p`
To replace across project specify `**/*.<your_extension>` To replace across project specify `**/*.<your_extension>`
## TabNine
To use TabNine enter the following in a buffer:
```
TabNine::config
```
**NOTE** This extension can take up a ton of memory
## Vim Gists ## Vim Gists
To use **vim-gists** you will need to configure the following: To use **vim-gists** you will need to configure the following:
``` ```bash
git config --global github.user <username> git config --global github.user <username>
``` ```
@ -165,19 +143,19 @@ You can install it on multiple platforms:
- Mac - Mac
``` ```bash
brew cask install vscodium brew cask install vscodium
``` ```
- Arch - Arch
``` ```bash
yay -s vscodium-bin yay -s vscodium-bin
``` ```
- Snap - Snap
``` ```bash
snap install codium snap install codium
``` ```
@ -191,35 +169,27 @@ Along with some of my config files you can find in `utils/vscode_config`
- Better Documentation - Better Documentation
https://github.com/gennaro-tedesco/nvim-jqx https://github.com/gennaro-tedesco/nvim-jqx
https://github.com/nathunsmitty/nvim-ale-diagnostic
https://github.com/mattn/efm-langserver https://github.com/mattn/efm-langserver
https://github.com/windwp/nvim-ts-closetag
https://github.com/nvim-telescope/telescope-media-files.nvim https://github.com/nvim-telescope/telescope-media-files.nvim
https://github.com/kosayoda/nvim-lightbulb
https://github.com/ms-jpq/chadtree
https://github.com/b3nj5m1n/kommentary https://github.com/b3nj5m1n/kommentary
https://github.com/glepnir/lspsaga.nvim
https://github.com/nvim-lua/completion-nvim https://github.com/nvim-lua/completion-nvim
https://github.com/nvim-telescope/telescope-frecency.nvim https://github.com/nvim-telescope/telescope-frecency.nvim
## CoC extensions to check out
- coc-fzf-preview
- https://github.com/yuki-ycino/fzf-preview.vim/
- coc-floaterm
## 0.5 ## 0.5
- native lsp - native lsp (in progress)
- treesitter - treesitter (in progress)
## LOW PRIORITY TODO ## LOW PRIORITY TODO
If anyone reading this has any suggestions about implementing any of the following I will accept a PR, but these are not priority. If anyone reading this has any suggestions about implementing any of the following I will accept a PR, but these are not priority.
- ale
- multiple cursors - multiple cursors
- markdown table
- galaxyline automatically grab colors from colorscheme - galaxyline automatically grab colors from colorscheme
- tpope/vim-dadbod - tpope/vim-dadbod
- neovide - neovide
@ -227,6 +197,6 @@ If anyone reading this has any suggestions about implementing any of the followi
- vimspector this is included but I don't plan on using it much - vimspector this is included but I don't plan on using it much
- can be used with jdb, pdb, gdb, etc... - can be used with jdb, pdb, gdb, etc...
- nvim-dap and nvim-dap-virtual-text (ALL DEBUGGING IN NEOVIM IS CONFUSING AND HARD TO GET WORKING OR I'M JUST DUMB) - nvim-dap and nvim-dap-virtual-text (ALL DEBUGGING IN NEOVIM IS CONFUSING AND HARD TO GET WORKING OR I'M JUST DUMB)
- later manually link pylance - potentially manually link pylance
- resize with arrows in addition to meta - resize with arrows in addition to meta
- how to support meta key on for macOS? - how to support meta key on for macOS?

View file

@ -1,155 +0,0 @@
{
// suggestions
// "suggest.echodocSupport": true,
/* https://code.visualstudio.com/docs/editor/intellisense reference for vscode symbols*/
/* https://www.nerdfonts.com/cheat-sheet reference to find some other symbols*/
/* some symbols you might like: */
/* fb44 this is the hex for nf-mdi-file_tree, should be good for class*/
"suggest.completionItemKindLabels": {
"method": "  ",
"function": "  ",
"variable": "[]",
"field": "  ",
"typeParameter": "<>",
"constant": "  ",
"class": "  ",
"interface": " 蘒",
"struct": "  ",
"event": "  ",
"operator": "  ",
"module": "  ",
"property": "  ",
"enum": " 練",
"reference": "  ",
"keyword": "  ",
"file": "  ",
"folder": " ﱮ ",
"color": "  ",
"unit": " 塞 ",
"snippet": "  ",
"text": "  ",
"constructor": "  ",
"value": "  ",
"enumMember": "  ",
"default": "  "
},
"snippets.priority": 1,
//"yank.priority": 1,
"suggest.languageSourcePriority": 99,
"coc.source.file.priority": 2,
"coc.source.around.priority": 3,
"coc.source.buffer.priority": 4,
// diagnostics
"diagnostic.errorSign": " ",
"diagnostic.warningSign": " ",
"diagnostic.infoSign": "",
"diagnostic.hintSign": " ",
// "diagnostic.displayByAle": true,
// "diagnostic.virtualText": true, // this won't work with codelens when error on same line
// codelens
"codeLens.enable": true,
"java.referencesCodeLens.enabled": true,
"java.implementationsCodeLens.enabled": true,
"java.completion.enabled": true,
"java.jdt.ls.vmargs": "-javaagent:/usr/local/share/lombok/lombok.jar",
// list
"list.indicator": ">",
"list.selectedSignText": " ",
// autoformat
"coc.preferences.formatOnSaveFiletypes": [
"css",
"markdown",
"javascript",
"graphql",
"html",
"yaml",
"json",
"python",
"java"
],
"coc.preferences.hoverTarget": "float",
// python config
"python.analysis.autoImportCompletions": true,
"python.analysis.autoSearchPaths": true,
"python.analysis.diagnosticMode": "openFilesOnly",
"python.analysis.stubPath": "typings",
"python.analysis.typeshedPaths": [],
"python.analysis.diagnosticSeverityOverrides": {},
"python.analysis.typeCheckingMode": "basic",
"python.analysis.useLibraryCodeForTypes": true,
"python.pythonPath": "python",
"python.venvPath": "",
"python.formatting.provider": "black",
"python.formatting.blackPath": "~/.local/bin/black",
"python.formatting.blackArgs": [],
"python.formatting.autopep8Path": "autopep8",
"python.formatting.autopep8Args": [],
"python.formatting.yapfPath": "yapf",
"python.formatting.yapfArgs": [],
"python.linting.enabled": true,
"python.linting.flake8Enabled": false,
"python.linting.banditEnabled": false,
"python.linting.mypyEnabled": false,
"python.linting.pytypeEnabled": false,
"python.linting.prospectorEnabled": false,
"python.linting.pydocstyleEnabled": false,
"python.linting.pylamaEnabled": false,
"python.linting.pylintEnabled": false,
// snippets
"snippets.ultisnips.directories": ["UltiSnips", "~/.config/nvim/snips"],
//"snippets.userSnippetsDirectory": "~/.config/nvim/snips",
// emmet
"emmet.includeLanguages": {
"vue-html": "html",
"javascript": "javascriptreact"
},
// CSS (disable since I'm also using stylelintplus)
"css.validate": false,
"less.validate": false,
"scss.validate": false,
"wxss.validate": false,
// explorer
"explorer.width": 30,
"explorer.file.root.template": "[icon] [git] [hidden & 1][root]",
"explorer.icon.enableNerdfont": true,
"explorer.previewAction.onHover": false,
"explorer.icon.enableVimDevicons": false,
"explorer.file.showHiddenFiles": false,
"explorer.keyMappings.global": {
"<cr>": ["expandable?", "expand", "open"],
"v": "open:vsplit"
},
/* "languageserver": { */
/* "lua": { */
/* "command": "/home/chris/.luambenvs/neovim4/bin/lua-lsp", */
/* "filetypes": ["lua"], */
/* "trace.server": "verbose" */
/* } */
/* }, */
//coc-emoji
"coc.source.emoji.filetypes": ["markdown"]
// lua
//"lua.useSumnekoLs": true,
//"lua.commandPath": "/home/chris/.luambenvs/neovim3/bin/lua-lsp"
//"lua.enable": true,
//"Lua.completion.enable": true,
//"Lua.runtime.version": "Lua 5.1",
//"Lua.runtime.path": ["?.lua", "?/init.lua", "?/?.lua"],
//"lua.version": "5.1"
//"lua.commandPath": "/home/chris/.vscode-insiders/extensions/sumneko.lua-1.0.5/server/bin/Linux/lua-language-server"
// TODO b:coc_suggest_disable=1 GOYO
// TODO add to paths.vim g:coc_node_path
}

View file

@ -9,3 +9,7 @@ nnoremap <f10> :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '>
\ . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" \ . synIDattr(synID(line("."),col("."),0),"name") . "> lo<"
\ . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">"<cr> \ . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">"<cr>
augroup highlight_yank
autocmd!
au TextYankPost * silent! lua vim.highlight.on_yank { higroup='IncSearch', timeout=200 }
augroup END

View file

@ -35,7 +35,7 @@ set updatetime=300 " Faster completion
set timeoutlen=100 " By default timeoutlen is 1000 ms set timeoutlen=100 " By default timeoutlen is 1000 ms
set clipboard=unnamedplus " Copy paste between vim and everything else set clipboard=unnamedplus " Copy paste between vim and everything else
set incsearch set incsearch
set guifont=JetBrainsMono\ Nerd\ Font\ Mono set guifont=JetBrainsMono\ Nerd\ Font\ Mono:h22
" New stuff " New stuff
" set notimeout nottimeout " set notimeout nottimeout

120
init.vim
View file

@ -4,64 +4,70 @@
" _/ // / / / / /__| |/ / / / / / / / " _/ // / / / / /__| |/ / / / / / / /
"/___/_/ /_/_/\__(_)___/_/_/ /_/ /_/ "/___/_/ /_/_/\__(_)___/_/_/ /_/ /_/
" General Settings " General Settings
if !exists('g:vscode') if !exists('g:vscode')
source $HOME/.config/nvim/plug-config/polyglot.vim source ~/.config/nvim/plug-config/polyglot.vim
endif endif
source $HOME/.config/nvim/vim-plug/plugins.vim source ~/.config/nvim/vim-plug/plugins.vim
source $HOME/.config/nvim/general/settings.vim source ~/.config/nvim/general/settings.vim
source $HOME/.config/nvim/general/functions.vim source ~/.config/nvim/general/functions.vim
source $HOME/.config/nvim/keys/mappings.vim source ~/.config/nvim/keys/mappings.vim
if exists('g:vscode') if exists('g:vscode')
" VS Code extension " VS Code extension
source $HOME/.config/nvim/vscode/settings.vim source ~/.config/nvim/vscode/settings.vim
source $HOME/.config/nvim/plug-config/easymotion.vim source ~/.config/nvim/plug-config/easymotion.vim
source $HOME/.config/nvim/plug-config/highlightyank.vim source ~/.config/nvim/plug-config/highlightyank.vim
else else
" Themes " Themes
source $HOME/.config/nvim/themes/syntax.vim source ~/.config/nvim/themes/syntax.vim
source $HOME/.config/nvim/themes/nvcode.vim source ~/.config/nvim/themes/nvcode.vim
" Plugin Configuration " Plugin Configuration
source $HOME/.config/nvim/keys/which-key.vim source ~/.config/nvim/keys/which-key.vim
source $HOME/.config/nvim/plug-config/vim-commentary.vim source ~/.config/nvim/plug-config/vim-commentary.vim
source $HOME/.config/nvim/plug-config/rnvimr.vim source ~/.config/nvim/plug-config/rnvimr.vim
source $HOME/.config/nvim/plug-config/better-whitespace.vim source ~/.config/nvim/plug-config/codi.vim
source $HOME/.config/nvim/plug-config/fzf.vim source ~/.config/nvim/plug-config/vim-wiki.vim
source $HOME/.config/nvim/plug-config/codi.vim source ~/.config/nvim/plug-config/easymotion.vim
source $HOME/.config/nvim/plug-config/vim-wiki.vim source ~/.config/nvim/plug-config/goyo.vim
luafile $HOME/.config/nvim/lua/nvcodeline.lua source ~/.config/nvim/plug-config/vim-rooter.vim
luafile $HOME/.config/nvim/lua/treesitter.lua source ~/.config/nvim/plug-config/start-screen.vim
source $HOME/.config/nvim/plug-config/coc/coc.vim source ~/.config/nvim/plug-config/gitgutter.vim
source $HOME/.config/nvim/plug-config/coc/coc-extensions.vim source ~/.config/nvim/plug-config/git-messenger.vim
source $HOME/.config/nvim/plug-config/easymotion.vim source ~/.config/nvim/plug-config/closetags.vim
source $HOME/.config/nvim/plug-config/goyo.vim source ~/.config/nvim/plug-config/floaterm.vim
source $HOME/.config/nvim/plug-config/vim-rooter.vim source ~/.config/nvim/plug-config/barbar.vim
source $HOME/.config/nvim/plug-config/start-screen.vim source ~/.config/nvim/plug-config/far.vim
source $HOME/.config/nvim/plug-config/gitgutter.vim source ~/.config/nvim/plug-config/tagalong.vim
source $HOME/.config/nvim/plug-config/git-messenger.vim source ~/.config/nvim/plug-config/bracey.vim
source $HOME/.config/nvim/plug-config/closetags.vim source ~/.config/nvim/plug-config/markdown-preview.vim
source $HOME/.config/nvim/plug-config/floaterm.vim source ~/.config/nvim/plug-config/nvimtree-config.vim
source $HOME/.config/nvim/plug-config/barbar.vim source ~/.config/nvim/lua/lsp-wrapper.vim
source $HOME/.config/nvim/plug-config/far.vim luafile ~/.config/nvim/lua/plugins/galaxyline-config.lua
source $HOME/.config/nvim/plug-config/tagalong.vim luafile ~/.config/nvim/lua/plugins/nvimtree-config.lua
source $HOME/.config/nvim/plug-config/bracey.vim luafile ~/.config/nvim/lua/plugins/treesitter-config.lua
source $HOME/.config/nvim/plug-config/asynctask.vim luafile ~/.config/nvim/lua/plugins/colorizer-config.lua
source $HOME/.config/nvim/plug-config/window-swap.vim luafile ~/.config/nvim/lua/plugins/telescope-config.lua
source $HOME/.config/nvim/plug-config/markdown-preview.vim luafile ~/.config/nvim/lua/lsp/lsp-kind.lua
source $HOME/.config/nvim/plug-config/neovide.vim luafile ~/.config/nvim/lua/plugins/compe-config.lua
luafile $HOME/.config/nvim/lua/plug-colorizer.lua luafile ~/.config/nvim/lua/plugins/lspsaga-config.lua
luafile $HOME/.config/nvim/lua/config-telescope.lua " LSP
source $HOME/.config/nvim/plug-config/vimspector.vim source ~/.config/nvim/plug-config/lsp-config.vim
" source $HOME/.config/nvim/plug-config/sneak.vim luafile ~/.config/nvim/lua/lsp/lsp-config.lua
" source $HOME/.config/nvim/plug-config/rainbow.vim luafile ~/.config/nvim/lua/lsp/lua-ls.lua
" source $HOME/.config/nvim/plug-config/illuminate.vim luafile ~/.config/nvim/lua/lsp/python-ls.lua
" source $HOME/.config/nvim/plug-config/vista.vim luafile ~/.config/nvim/lua/lsp/bash-ls.lua
" source $HOME/.config/nvim/plug-config/xtabline.vim luafile ~/.config/nvim/lua/lsp/css-ls.lua
" source $HOME/.config/nvim/plug-config/ale.vim luafile ~/.config/nvim/lua/lsp/docker-ls.lua
luafile ~/.config/nvim/lua/lsp/graphql-ls.lua
luafile ~/.config/nvim/lua/lsp/html-ls.lua
luafile ~/.config/nvim/lua/lsp/javascript-ls.lua
luafile ~/.config/nvim/lua/lsp/json-ls.lua
luafile ~/.config/nvim/lua/lsp/vim-ls.lua
luafile ~/.config/nvim/lua/lsp/yaml-ls.lua
" https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md
endif endif
source $HOME/.config/nvim/plug-config/quickscope.vim source $HOME/.config/nvim/plug-config/quickscope.vim
@ -73,3 +79,23 @@ endif
" Better nav for omnicomplete TODO figure out why this is being overridden " Better nav for omnicomplete TODO figure out why this is being overridden
inoremap <expr> <c-j> ("\<C-n>") inoremap <expr> <c-j> ("\<C-n>")
inoremap <expr> <c-k> ("\<C-p>") inoremap <expr> <c-k> ("\<C-p>")
" TODO highlight groups for native LSP diagnostics
" add back other docs for compe
nnoremap <silent> K <cmd>lua require('lspsaga.hover').render_hover_doc()<CR>
" -- scroll down hover doc or scroll in definition preview
nnoremap <silent> <C-f> <cmd>lua require('lspsaga.action').smart_scroll_with_saga(1)<CR>
" -- scroll up hover doc
nnoremap <silent> <C-b> <cmd>lua require('lspsaga.action').smart_scroll_with_saga(-1)<CR>
" signature
nnoremap <silent> gs <cmd>lua require('lspsaga.signaturehelp').signature_help()<CR>
" Lightbulb
autocmd CursorHold,CursorHoldI * lua require'nvim-lightbulb'.update_lightbulb()
"TODO
" fix space and tab triggering completion all the time
" autoimport jsx
" snippets

View file

@ -1,5 +1,4 @@
" Leader Key Maps " Leader Key Maps
let @s = 'veS"' let @s = 'veS"'
" Timeout " Timeout
@ -17,10 +16,6 @@ let g:which_key_map = {}
let g:which_key_sep = '→' let g:which_key_sep = '→'
" set timeoutlen=100 " set timeoutlen=100
" Coc Search & refactor
nnoremap <leader>? :CocSearch <C-R>=expand("<cword>")<CR><CR>
let g:which_key_map['?'] = 'search word'
" Not a fan of floating windows for this " Not a fan of floating windows for this
let g:which_key_use_floating_win = 0 let g:which_key_use_floating_win = 0
let g:which_key_max_size = 0 let g:which_key_max_size = 0
@ -39,15 +34,17 @@ autocmd FileType which_key set laststatus=0 noshowmode noruler
" Single mappings " Single mappings
let g:which_key_map['/'] = [ ':call Comment()' , 'comment' ] let g:which_key_map['/'] = [ ':call Comment()' , 'comment' ]
let g:which_key_map['?'] = [ ':NvimTreeFindFile' , 'comment' ]
let g:which_key_map['.'] = [ ':e $MYVIMRC' , 'open init' ] let g:which_key_map['.'] = [ ':e $MYVIMRC' , 'open init' ]
let g:which_key_map[';'] = [ ':Commands' , 'commands' ] let g:which_key_map[';'] = [ ':Commands' , 'commands' ]
let g:which_key_map['='] = [ '<C-W>=' , 'balance windows' ] let g:which_key_map['='] = [ '<C-W>=' , 'balance windows' ]
let g:which_key_map['e'] = [ ':CocCommand explorer --toggle --sources=file+' , 'explorer' ] let g:which_key_map['e'] = [ ':NvimTreeToggle' , 'explorer' ]
let g:which_key_map['h'] = [ '<C-W>s' , 'split below'] let g:which_key_map['h'] = [ '<C-W>s' , 'split below']
let g:which_key_map['n'] = [ ':let @/ = ""' , 'no highlight' ] let g:which_key_map['n'] = [ ':let @/ = ""' , 'no highlight' ]
let g:which_key_map['o'] = [ ':RnvimrToggle' , 'open' ] let g:which_key_map['o'] = [ ':RnvimrToggle' , 'open' ]
let g:which_key_map['p'] = [ ':Files' , 'search files' ] let g:which_key_map['p'] = [ ':Files' , 'search files' ]
let g:which_key_map['q'] = [ '<Plug>(coc-fix-current)' , 'quickfix' ] " TODO fix this
" let g:which_key_map['q'] = [ ':q' , 'quit' ]
let g:which_key_map['T'] = [ ':TSHighlightCapturesUnderCursor' , 'treesitter highlight' ] let g:which_key_map['T'] = [ ':TSHighlightCapturesUnderCursor' , 'treesitter highlight' ]
let g:which_key_map['u'] = [ ':UndotreeToggle' , 'undo tree'] let g:which_key_map['u'] = [ ':UndotreeToggle' , 'undo tree']
let g:which_key_map['v'] = [ '<C-W>v' , 'split right'] let g:which_key_map['v'] = [ '<C-W>v' , 'split right']
@ -156,37 +153,7 @@ let g:which_key_map.m = {
" CoC throws an error " CoC throws an error
" \ 'a' : [':CocCommand bookmark.annotate', 'annotate bookmark'], " \ 'a' : [':CocCommand bookmark.annotate', 'annotate bookmark'],
" " s is for search
" let g:which_key_map.s = {
" \ 'name' : '+search' ,
" \ '/' : [':History/' , 'history'],
" \ ';' : [':Commands' , 'commands'],
" \ 'a' : [':Ag' , 'text Ag'],
" \ 'b' : [':BLines' , 'current buffer'],
" \ 'B' : [':Buffers' , 'open buffers'],
" \ 'c' : [':Commits' , 'commits'],
" \ 'C' : [':BCommits' , 'buffer commits'],
" \ 'f' : [':Files' , 'files'],
" \ 'g' : [':GFiles' , 'git files'],
" \ 'G' : [':GFiles?' , 'modified git files'],
" \ 'h' : [':History' , 'file history'],
" \ 'H' : [':History:' , 'command history'],
" \ 'l' : [':Lines' , 'lines'] ,
" \ 'm' : [':Marks' , 'marks'] ,
" \ 'M' : [':Maps' , 'normal maps'] ,
" \ 'p' : [':Helptags' , 'help tags'] ,
" \ 'P' : [':Tags' , 'project tags'],
" \ 's' : [':CocList snippets' , 'snippets'],
" \ 'S' : [':Colors' , 'color schemes'],
" \ 't' : [':Rg' , 'text Rg'],
" \ 'T' : [':BTags' , 'buffer tags'],
" \ 'w' : [':Windows' , 'search windows'],
" \ 'y' : [':Filetypes' , 'file types'],
" \ 'z' : [':FZF' , 'FZF'],
" \ }
" \ 's' : [':Snippets' , 'snippets'],
" TODO fix FZF preview or just move to Telescope
" s is for search powered by telescope " s is for search powered by telescope
let g:which_key_map.s = { let g:which_key_map.s = {
\ 'name' : '+search' , \ 'name' : '+search' ,
@ -225,17 +192,6 @@ let g:which_key_map.s = {
\ 'u' : [':Telescope colorscheme' , 'colorschemes'], \ 'u' : [':Telescope colorscheme' , 'colorschemes'],
\ 'z' : [':Telescope current_buffer_fuzzy_find' , 'buf_fuz_find'], \ 'z' : [':Telescope current_buffer_fuzzy_find' , 'buf_fuz_find'],
\ } \ }
"
" :CocCommand fzf-preview.AllBuffers
" :CocCommand fzf-preview.Changes
" :CocCommand fzf-preview.Yankround
" :CocCommand fzf-preview.CocReferences
" :CocCommand fzf-preview.CocDiagnostics
" :CocCommand fzf-preview.CocCurrentDiagnostics
" :CocCommand fzf-preview.CocTypeDefinitions
" \ 'l' : [':CocCommand fzf-preview.Bookmarks', 'list bookmarks'],
" $FZF_PREVIEW_PREVIEW_BAT_THEME = 'ansi-dark'
"
let g:which_key_map.S = { let g:which_key_map.S = {
\ 'name' : '+Session' , \ 'name' : '+Session' ,
@ -297,46 +253,34 @@ let g:which_key_map.G = {
" l is for language server protocol " l is for language server protocol
let g:which_key_map.l = { let g:which_key_map.l = {
\ 'name' : '+lsp' , \ 'name' : '+lsp' ,
\ '.' : [':CocConfig' , 'config'], \ 'a' : [':Lspsaga code_action' , 'code action'],
\ ';' : ['<Plug>(coc-refactor)' , 'refactor'], \ 'A' : [':Lspsaga range_code_action' , 'selected action'],
\ 'a' : ['<Plug>(coc-codeaction)' , 'code action'], \ 'd' : [':LspDefinition' , 'definition'],
\ 'A' : ['<Plug>(coc-codeaction-selected)' , 'selected action'], \ 'D' : [':LspDeclaration' , 'workspace_diagnostics'],
\ 'b' : [':CocNext' , 'next action'], \ 'f' : [':LspFormatting' , 'format'],
\ 'B' : [':CocPrev' , 'prev action'], \ 'h' : [':Lspsaga hover_doc' , 'hover_doc'],
\ 'c' : [':CocList commands' , 'commands'], \ 'H' : [':Lspsaga signature_help' , 'signature_help'],
\ 'd' : ['<Plug>(coc-definition)' , 'definition'], \ 'K' : [':LspHover' , 'hover'],
\ 'D' : ['<Plug>(coc-declaration)' , 'declaration'], \ 'i' : [':LspImplementation' , 'lsp_info'],
\ 'e' : [':CocList extensions' , 'extensions'], \ 'I' : [':LspInfo' , 'lsp_info'],
\ 'f' : ['<Plug>(coc-format-selected)' , 'format selected'], \ 'l' : [':Lspsaga lsp_finder' , 'lsp_finder'],
\ 'F' : ['<Plug>(coc-format)' , 'format'], \ 'L' : [':Lspsaga show_line_diagnostics' , 'line_diagnostics'],
\ 'h' : ['<Plug>(coc-float-hide)' , 'hide'], \ 'n' : [':Lspsaga diagnostic_jump_next' , 'next_diagnostic'],
\ 'i' : ['<Plug>(coc-implementation)' , 'implementation'],
\ 'I' : [':CocList diagnostics' , 'diagnostics'],
\ 'j' : ['<Plug>(coc-float-jump)' , 'float jump'],
\ 'l' : ['<Plug>(coc-codelens-action)' , 'code lens'],
\ 'n' : ['<Plug>(coc-diagnostic-next)' , 'next diagnostic'],
\ 'N' : ['<Plug>(coc-diagnostic-next-error)' , 'next error'],
\ 'o' : [':Vista!!' , 'outline'], \ 'o' : [':Vista!!' , 'outline'],
\ 'O' : [':CocList outline' , 'search outline'], \ 'p' : [':Lspsaga diagnostic_jump_prev' , 'prev diagnostic'],
\ 'p' : ['<Plug>(coc-diagnostic-prev)' , 'prev diagnostic'], \ 'q' : [':Lspsaga code_action' , 'quickfix'],
\ 'P' : ['<Plug>(coc-diagnostic-prev-error)' , 'prev error'], \ 'r' : [':LspReferences' , 'references'],
\ 'q' : ['<Plug>(coc-fix-current)' , 'quickfix'], \ 'R' : [':LspRename' , 'rename'],
\ 'r' : ['<Plug>(coc-references)' , 'references'], \ 'T' : [':LspTypeDefinition' , 'type defintion'],
\ 'R' : ['<Plug>(coc-rename)' , 'rename'], \ 'x' : [':cclose' , 'close quickfix'],
\ 's' : [':CocList -I symbols' , 'references'], \ 'y' : [':LspDocumentSymbol' , 'document symbols'],
\ 'S' : [':CocList snippets' , 'snippets'], \ 'Y' : [':LspWorkspaceSymbol' , 'workspace symbols'],
\ 't' : ['<Plug>(coc-type-definition)' , 'type definition'],
\ 'u' : [':CocListResume' , 'resume list'],
\ 'U' : [':CocUpdate' , 'update CoC'],
\ 'z' : [':CocDisable' , 'disable CoC'],
\ 'Z' : [':CocEnable' , 'enable CoC'],
\ } \ }
" \ 'o' : ['<Plug>(coc-openlink)' , 'open link'],
" t is for terminal " t is for terminal
let g:which_key_map.t = { let g:which_key_map.t = {
\ 'name' : '+terminal' , \ 'name' : '+terminal' ,
\ ';' : [':FloatermNew --wintype=normal --height=6' , 'terminal'], \ ';' : [':FloatermNew --wintype=normal --height=6' , 'terminal'],
\ 'f' : [':FloatermNew fzf' , 'fzf'], \ 'f' : [':FloatermNew fzf' , 'fzf'],
\ 'g' : [':FloatermNew lazygit' , 'git'], \ 'g' : [':FloatermNew lazygit' , 'git'],
\ 'd' : [':FloatermNew lazydocker' , 'docker'], \ 'd' : [':FloatermNew lazydocker' , 'docker'],
@ -347,7 +291,7 @@ let g:which_key_map.t = {
\ 'r' : [':FloatermNew ranger' , 'ranger'], \ 'r' : [':FloatermNew ranger' , 'ranger'],
\ 't' : [':FloatermToggle' , 'toggle'], \ 't' : [':FloatermToggle' , 'toggle'],
\ 'y' : [':FloatermNew ytop' , 'ytop'], \ 'y' : [':FloatermNew ytop' , 'ytop'],
\ 's' : [':FloatermNew ncdu' , 'ncdu'], \ 'u' : [':FloatermNew ncdu' , 'ncdu'],
\ } \ }
" w is for wiki " w is for wiki

258
lua/lsp-wrapper.lua Normal file
View file

@ -0,0 +1,258 @@
local lsp_wrapper = {}
-- buf
function lsp_wrapper.add_to_workspace_folder()
vim.lsp.buf.add_workspace_folder()
end
function lsp_wrapper.clear_references()
vim.lsp.buf.clear_references()
end
function lsp_wrapper.code_action()
vim.lsp.buf.code_action()
end
function lsp_wrapper.declaration()
vim.lsp.buf.declaration()
vim.lsp.buf.clear_references()
end
function lsp_wrapper.definition()
vim.lsp.buf.definition()
vim.lsp.buf.clear_references()
end
function lsp_wrapper.document_highlight()
vim.lsp.buf.document_highlight()
end
function lsp_wrapper.document_symbol()
vim.lsp.buf.document_symbol()
end
function lsp_wrapper.formatting()
vim.lsp.buf.formatting()
end
function lsp_wrapper.formatting_sync()
vim.lsp.buf.formatting_sync()
end
function lsp_wrapper.hover()
vim.lsp.buf.hover()
end
function lsp_wrapper.implementation()
vim.lsp.buf.implementation()
end
function lsp_wrapper.incoming_calls()
vim.lsp.buf.incoming_calls()
end
function lsp_wrapper.list_workspace_folders()
vim.lsp.buf.list_workspace_folders()
end
function lsp_wrapper.outgoing_calls()
vim.lsp.buf.outgoing_calls()
end
function lsp_wrapper.range_code_action()
vim.lsp.buf.range_code_action()
end
function lsp_wrapper.range_formatting()
vim.lsp.buf.range_formatting()
end
function lsp_wrapper.references()
vim.lsp.buf.references()
vim.lsp.buf.clear_references()
end
function lsp_wrapper.remove_workspace_folder()
vim.lsp.buf.remove_workspace_folder()
end
function lsp_wrapper.rename()
vim.lsp.buf.rename()
end
function lsp_wrapper.signature_help()
vim.lsp.buf.signature_help()
end
function lsp_wrapper.type_definition()
vim.lsp.buf.type_definition()
end
function lsp_wrapper.workspace_symbol()
vim.lsp.buf.workspace_symbol()
end
-- diagnostic
function lsp_wrapper.get_all()
vim.lsp.diagnostic.get_all()
end
function lsp_wrapper.get_next()
vim.lsp.diagnostic.get_next()
end
function lsp_wrapper.get_prev()
vim.lsp.diagnostic.get_prev()
end
function lsp_wrapper.goto_next()
vim.lsp.diagnostic.goto_next()
end
function lsp_wrapper.goto_prev()
vim.lsp.diagnostic.goto_prev()
end
function lsp_wrapper.show_line_diagnostics()
vim.lsp.diagnostic.show_line_diagnostics()
end
-- misc
-- :lua print(vim.inspect(vim.lsp.buf_get_clients()))
-- autoformat
-- autocmd BufWritePre *.rs lua vim.lsp.buf.formatting_sync(nil, 1000)
return lsp_wrapper
-- You can see more about the differences in types here:
-- https://microsoft.github.io/language-server-protocol/specification#textDocument_documentHighlight
-- *hl-LspReferenceText*
-- LspReferenceText used for highlighting "text" references
-- *hl-LspReferenceRead*
-- LspReferenceRead used for highlighting "read" references
-- *hl-LspReferenceWrite*
-- LspReferenceWrite used for highlighting "write" references
-- *lsp-highlight-diagnostics*
-- All highlights defined for diagnostics begin with `LspDiagnostics` followed by
-- the type of highlight (e.g., `Sign`, `Underline`, etc.) and then the Severity
-- of the highlight (e.g. `Error`, `Warning`, etc.)
-- Sign, underline and virtual text highlights (by default) are linked to their
-- corresponding LspDiagnosticsDefault highlight.
-- For example, the default highlighting for |hl-LspDiagnosticsSignError| is
-- linked to |hl-LspDiagnosticsDefaultError|. To change the default (and
-- therefore the linked highlights), use the |:highlight| command: >
-- highlight LspDiagnosticsDefaultError guifg="BrightRed"
-- <
-- *hl-LspDiagnosticsDefaultError*
-- LspDiagnosticsDefaultError
-- Used as the base highlight group.
-- Other LspDiagnostic highlights link to this by default (except Underline)
-- *hl-LspDiagnosticsDefaultWarning*
-- LspDiagnosticsDefaultWarning
-- Used as the base highlight group.
-- Other LspDiagnostic highlights link to this by default (except Underline)
-- *hl-LspDiagnosticsDefaultInformation*
-- LspDiagnosticsDefaultInformation
-- Used as the base highlight group.
-- Other LspDiagnostic highlights link to this by default (except Underline)
-- *hl-LspDiagnosticsDefaultHint*
-- LspDiagnosticsDefaultHint
-- Used as the base highlight group.
-- Other LspDiagnostic highlights link to this by default (except Underline)
-- *hl-LspDiagnosticsVirtualTextError*
-- LspDiagnosticsVirtualTextError
-- Used for "Error" diagnostic virtual text.
-- See |vim.lsp.diagnostic.set_virtual_text()|
-- *hl-LspDiagnosticsVirtualTextWarning*
-- LspDiagnosticsVirtualTextWarning
-- Used for "Warning" diagnostic virtual text.
-- See |vim.lsp.diagnostic.set_virtual_text()|
-- *hl-LspDiagnosticsVirtualTextInformation*
-- LspDiagnosticsVirtualTextInformation
-- Used for "Information" diagnostic virtual text.
-- See |vim.lsp.diagnostic.set_virtual_text()|
-- *hl-LspDiagnosticsVirtualTextHint*
-- LspDiagnosticsVirtualTextHint
-- Used for "Hint" diagnostic virtual text.
-- See |vim.lsp.diagnostic.set_virtual_text()|
-- *hl-LspDiagnosticsUnderlineError*
-- LspDiagnosticsUnderlineError
-- Used to underline "Error" diagnostics.
-- See |vim.lsp.diagnostic.set_underline()|
-- *hl-LspDiagnosticsUnderlineWarning*
-- LspDiagnosticsUnderlineWarning
-- Used to underline "Warning" diagnostics.
-- See |vim.lsp.diagnostic.set_underline()|
-- *hl-LspDiagnosticsUnderlineInformation*
-- LspDiagnosticsUnderlineInformation
-- Used to underline "Information" diagnostics.
-- See |vim.lsp.diagnostic.set_underline()|
-- *hl-LspDiagnosticsUnderlineHint*
-- LspDiagnosticsUnderlineHint
-- Used to underline "Hint" diagnostics.
-- See |vim.lsp.diagnostic.set_underline()|
-- *hl-LspDiagnosticsFloatingError*
-- LspDiagnosticsFloatingError
-- Used to color "Error" diagnostic messages in diagnostics float.
-- See |vim.lsp.diagnostic.show_line_diagnostics()|
-- *hl-LspDiagnosticsFloatingWarning*
-- LspDiagnosticsFloatingWarning
-- Used to color "Warning" diagnostic messages in diagnostics float.
-- See |vim.lsp.diagnostic.show_line_diagnostics()|
-- *hl-LspDiagnosticsFloatingInformation*
-- LspDiagnosticsFloatingInformation
-- Used to color "Information" diagnostic messages in diagnostics float.
-- See |vim.lsp.diagnostic.show_line_diagnostics()|
-- *hl-LspDiagnosticsFloatingHint*
-- LspDiagnosticsFloatingHint
-- Used to color "Hint" diagnostic messages in diagnostics float.
-- See |vim.lsp.diagnostic.show_line_diagnostics()|
-- *hl-LspDiagnosticsSignError*
-- LspDiagnosticsSignError
-- Used for "Error" signs in sign column.
-- See |vim.lsp.diagnostic.set_signs()|
-- *hl-LspDiagnosticsSignWarning*
-- LspDiagnosticsSignWarning
-- Used for "Warning" signs in sign column.
-- See |vim.lsp.diagnostic.set_signs()|
-- *hl-LspDiagnosticsSignInformation*
-- LspDiagnosticsSignInformation
-- Used for "Information" signs in sign column.
-- See |vim.lsp.diagnostic.set_signs()|
-- *hl-LspDiagnosticsSignHint*
-- LspDiagnosticsSignHint
-- Used for "Hint" signs in sign column.
-- See |vim.lsp.diagnostic.set_signs()|

27
lua/lsp-wrapper.vim Normal file
View file

@ -0,0 +1,27 @@
command! LspCodeAction lua require 'lsp-wrapper'.code_action()
command! LspDeclaration lua require 'lsp-wrapper'.declaration()
command! LspDefinition lua require 'lsp-wrapper'.definition()
command! LspDocumentSymbol lua require 'lsp-wrapper'.document_symbol()
command! LspFormatting lua require 'lsp-wrapper'.formatting()
command! LspFormattingSync lua require 'lsp-wrapper'.formatting_sync()
command! LspHover lua require 'lsp-wrapper'.hover()
command! LspImplementation lua require 'lsp-wrapper'.implementation()
command! LspRangeCodeAction lua require 'lsp-wrapper'.range_code_action()
command! LspRangeFormatting lua require 'lsp-wrapper'.range_formatting()
command! LspReferences lua require 'lsp-wrapper'.references()
command! LspRename lua require 'lsp-wrapper'.rename()
command! LspTypeDefinition lua require 'lsp-wrapper'.type_definition()
command! LspWorkspaceSymbol lua require 'lsp-wrapper'.workspace_symbol()
command! LspGotoNext lua require 'lsp-wrapper'.goto_next()
command! LspGotoPrev lua require 'lsp-wrapper'.goto_prev()
command! LspShowLineDiagnostics lua require 'lsp-wrapper'.show_line_diagnostics()
" command! LspAddToWorkspaceFolder lua require 'lsp-wrapper'.add_to_workspace_folder()
" command! LspRemoveWorkspaceFolder lua require 'lsp-wrapper'.remove_workspace_folder()
" command! LspListWorkspaceFolders lua require 'lsp-wrapper'.list_workspace_folders()
" command! LspClearReferences lua require 'lsp-wrapper'.clear_references()
" command! LspGetNext lua require 'lsp-wrapper'.get_next()
" command! LspGetPrev lua require 'lsp-wrapper'.get_prev()
" command! LspGetAll lua require 'lsp-wrapper'.get_all()
" command! LspIncomingCalls lua require 'lsp-wrapper'.incoming_calls()
" command! LspOutGoingCalls lua require 'lsp-wrapper'.outgoing_calls()
" command! LspDocumentHighlight lua require 'lsp-wrapper'.document_highlight()

3
lua/lsp/bash-ls.lua Normal file
View file

@ -0,0 +1,3 @@
-- npm i -g bash-language-server
require'lspconfig'.bashls.setup{}

3
lua/lsp/css-ls.lua Normal file
View file

@ -0,0 +1,3 @@
-- npm install -g vscode-css-languageserver-bin
require'lspconfig'.cssls.setup{}

3
lua/lsp/docker-ls.lua Normal file
View file

@ -0,0 +1,3 @@
-- npm install -g dockerfile-language-server-nodejs
require'lspconfig'.dockerls.setup{}

3
lua/lsp/graphql-ls.lua Normal file
View file

@ -0,0 +1,3 @@
-- npm install -g graphql-language-service-cli
require'lspconfig'.graphql.setup{}

11
lua/lsp/html-ls.lua Normal file
View file

@ -0,0 +1,11 @@
-- npm install -g vscode-html-languageserver-bin
--Enable (broadcasting) snippet capability for completion
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true
require'lspconfig'.html.setup {
capabilities = capabilities,
}
require'lspconfig'.html.setup{}

View file

@ -0,0 +1,3 @@
-- npm install -g typescript typescript-language-server
require'lspconfig'.tsserver.setup{}

11
lua/lsp/json-ls.lua Normal file
View file

@ -0,0 +1,11 @@
-- npm install -g vscode-json-languageserver
require'lspconfig'.jsonls.setup {
commands = {
Format = {
function()
vim.lsp.buf.range_formatting({},{0,0},{vim.fn.line("$"),0})
end
}
}
}

61
lua/lsp/lsp-config.lua Normal file
View file

@ -0,0 +1,61 @@
-- local nvim_lsp = require('lspconfig')
-- local on_attach = function(client, bufnr)
-- local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
-- local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
-- buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
-- -- Mappings.
-- local opts = { noremap=true, silent=true }
-- buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)
-- -- buf_set_keymap('n', 'gd', ':lua vim.lsp.buf.definition()')
-- buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
-- buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
-- buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
-- buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
-- buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
-- buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
-- buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
-- buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
-- buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
-- -- buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
-- buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
-- buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
-- buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
-- buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
-- -- *vim.lsp.buf.code_action()
-- -- Set some keybinds conditional on server capabilities
-- if client.resolved_capabilities.document_formatting then
-- buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
-- elseif client.resolved_capabilities.document_range_formatting then
-- buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.range_formatting()<CR>", opts)
-- end
-- -- Set autocommands conditional on server_capabilities
-- -- if client.resolved_capabilities.document_highlight then
-- -- vim.api.nvim_exec([[
-- -- hi LspReferenceRead cterm=bold ctermbg=red guibg=Pink
-- -- hi LspReferenceText cterm=bold ctermbg=red guibg=Pink
-- -- hi LspReferenceWrite cterm=bold ctermbg=red guibg=Pink
-- -- augroup lsp_document_highlight
-- -- autocmd! * <buffer>
-- -- autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight()
-- -- autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references()
-- -- augroup END
-- -- ]], false)
-- -- end
-- end
-- -- Use a loop to conveniently both setup defined servers
-- -- and map buffer local keybindings when the language server attaches
-- local servers = { "pyright", "rust_analyzer", "tsserver" }
-- for _, lsp in ipairs(servers) do
-- nvim_lsp[lsp].setup { on_attach = on_attach }
-- end
vim.fn.sign_define("LspDiagnosticsSignError", {text = "", numhl = "LspDiagnosticsDefaultError"})
vim.fn.sign_define("LspDiagnosticsSignWarning", {text = "", numhl = "LspDiagnosticsDefaultWarning"})
vim.fn.sign_define("LspDiagnosticsSignInformation", {text = "", numhl = "LspDiagnosticsDefaultInformation"})
vim.fn.sign_define("LspDiagnosticsSignHint", {text = "", numhl = "LspDiagnosticsDefaultHint"})

27
lua/lsp/lsp-kind.lua Normal file
View file

@ -0,0 +1,27 @@
-- commented options are defaults
require('lspkind').init({
with_text = false,
symbol_map = {
Text = '',
Method = '',
Function = '',
Constructor = '',
Variable = '[]',
Class = '',
Interface = '',
Module = '',
Property = '',
Unit = '',
Value = '',
Enum = '',
Keyword = '',
Snippet = '',
Color = '',
File = '',
Folder = '',
EnumMember = '',
Constant = '',
Struct = ''
},
})

42
lua/lsp/lua-ls.lua Normal file
View file

@ -0,0 +1,42 @@
-- https://github.com/sumneko/lua-language-server/wiki/Build-and-Run-(Standalone)
-- TODO fix for different systems and put variable for user
-- local system_name
-- if vim.fn.has("mac") == 1 then
-- system_name = "macOS"
-- elseif vim.fn.has("unix") == 1 then
-- system_name = "Linux"
-- elseif vim.fn.has('win32') == 1 then
-- system_name = "Windows"
-- else
-- print("Unsupported system for sumneko")
-- end
-- set the path to the sumneko installation; if you previously installed via the now deprecated :LspInstall, use
local sumneko_root_path = "/Users/chris/.config/nvim/lua-language-server"
local sumneko_binary = "/Users/chris/.config/nvim/lua-language-server/bin/macOS/lua-language-server"
require'lspconfig'.sumneko_lua.setup {
cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"};
settings = {
Lua = {
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = 'LuaJIT',
-- Setup your lua path
path = vim.split(package.path, ';'),
},
diagnostics = {
-- Get the language server to recognize the `vim` global
globals = {'vim'},
},
workspace = {
-- Make the server aware of Neovim runtime files
library = {
[vim.fn.expand('$VIMRUNTIME/lua')] = true,
[vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true,
},
},
},
},
}

3
lua/lsp/python-ls.lua Normal file
View file

@ -0,0 +1,3 @@
-- npm i -g pyright
require'lspconfig'.pyright.setup{}

3
lua/lsp/vim-ls.lua Normal file
View file

@ -0,0 +1,3 @@
-- npm install -g vim-language-server
require'lspconfig'.vimls.setup{}

3
lua/lsp/yaml-ls.lua Normal file
View file

@ -0,0 +1,3 @@
-- npm install -g yaml-language-server
require'lspconfig'.yamlls.setup{}

View file

@ -0,0 +1,73 @@
-- TODO we need snippet support and to maybe get better docs idk
vim.o.completeopt = "menuone,noselect"
require'compe'.setup {
enabled = true;
autocomplete = true;
debug = false;
min_length = 1;
preselect = 'enable';
throttle_time = 80;
source_timeout = 200;
incomplete_delay = 400;
max_abbr_width = 100;
max_kind_width = 100;
max_menu_width = 100;
documentation = false;
source = {
path = true;
buffer = true;
calc = true;
vsnip = true;
nvim_lsp = true;
nvim_lua = true;
spell = true;
tags = true;
snippets_nvim = true;
treesitter = true;
};
}
local t = function(str)
return vim.api.nvim_replace_termcodes(str, true, true, true)
end
-- local check_back_space = function()
-- local col = vim.fn.col('.') - 1
-- if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then
-- return true
-- else
-- return false
-- end
-- end
-- Use (s-)tab to:
--- move to prev/next item in completion menuone
--- jump to prev/next snippet's placeholder
-- _G.tab_complete = function()
-- if vim.fn.pumvisible() == 1 then
-- return t "<C-n>"
-- elseif vim.fn.call("vsnip#available", {1}) == 1 then
-- return t "<Plug>(vsnip-expand-or-jump)"
-- elseif check_back_space() then
-- return t "<Tab>"
-- else
-- return vim.fn['compe#complete']()
-- end
-- end
_G.s_tab_complete = function()
if vim.fn.pumvisible() == 1 then
return t "<C-p>"
elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then
return t "<Plug>(vsnip-jump-prev)"
else
return t "<S-Tab>"
end
end
-- vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true})
vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true})
vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})

View file

@ -0,0 +1,2 @@

View file

@ -0,0 +1,31 @@
local tree_cb = require'nvim-tree.config'.nvim_tree_callback
vim.g.nvim_tree_bindings = {
-- mappings
["<CR>"] = tree_cb("edit"),
["l"] = tree_cb("edit"),
["o"] = tree_cb("edit"),
["<2-LeftMouse>"] = tree_cb("edit"),
["<2-RightMouse>"] = tree_cb("cd"),
["<C-]>"] = tree_cb("cd"),
["v"] = tree_cb("vsplit"),
["s"] = tree_cb("split"),
["<C-t>"] = tree_cb("tabnew"),
["h"] = tree_cb("close_node"),
["<BS>"] = tree_cb("close_node"),
["<S-CR>"] = tree_cb("close_node"),
["<Tab>"] = tree_cb("preview"),
["I"] = tree_cb("toggle_ignored"),
["H"] = tree_cb("toggle_dotfiles"),
["R"] = tree_cb("refresh"),
["a"] = tree_cb("create"),
["d"] = tree_cb("remove"),
["r"] = tree_cb("rename"),
["<C-r>"] = tree_cb("full_rename"),
["x"] = tree_cb("cut"),
["c"] = tree_cb("copy"),
["p"] = tree_cb("paste"),
["[c"] = tree_cb("prev_git_item"),
["]c"] = tree_cb("next_git_item"),
["-"] = tree_cb("dir_up"),
["q"] = tree_cb("close"),
}

View file

@ -1,33 +0,0 @@
let g:coc_global_extensions = [
\ 'coc-snippets',
\ 'coc-actions',
\ 'coc-sh',
\ 'coc-java-debug',
\ 'coc-java',
\ 'coc-lists',
\ 'coc-emmet',
\ 'coc-tasks',
\ 'coc-pairs',
\ 'coc-tsserver',
\ 'coc-floaterm',
\ 'coc-fzf-preview',
\ 'coc-html',
\ 'coc-css',
\ 'coc-cssmodules',
\ 'coc-stylelintplus',
\ 'coc-emoji',
\ 'coc-yaml',
\ 'coc-pyright',
\ 'coc-explorer',
\ 'coc-svg',
\ 'coc-prettier',
\ 'coc-vimlsp',
\ 'coc-xml',
\ 'coc-yank',
\ 'coc-json',
\ 'coc-marketplace',
\ ]
" \ 'coc-tabnine',
" \ 'coc-highlight',
" \ 'coc-bookmark',

View file

@ -1,171 +0,0 @@
" Use tab for trigger completion with characters ahead and navigate.
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
" Use <c-space> to trigger completion.
inoremap <silent><expr> <c-space> coc#refresh()
" Use <cr> to confirm completion, `<C-g>u` means break undo chain at current
" position. Coc only does snippet and additional edit on confirm.
if exists('*complete_info')
inoremap <expr> <cr> complete_info()["selected"] != "-1" ? "\<C-y>" : "\<C-g>u\<CR>"
else
imap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
endif
" GoTo code navigation.
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
" Use K to show documentation in preview window.
nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
elseif (coc#rpc#ready())
call CocActionAsync('doHover')
else
execute '!' . &keywordprg . " " . expand('<cword>')
endif
endfunction
" set keywordprg=:call\ CocActionAsync('doHover')
" augroup VimHelp
" autocmd!
" autocmd Filetype vim,help setlocal keywordprg=:help
" augroup END
" Highlight the symbol and its references when holding the cursor.
autocmd CursorHold * silent call CocActionAsync('highlight')
" Symbol renaming.
" nmap <leader>rn <Plug>(coc-rename)
augroup mygroup
autocmd!
" Setup formatexpr specified filetype(s).
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
" Update signature help on jump placeholder.
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end
" Applying codeAction to the selected region.
" Example: `<leader>aap` for current paragraph
" xmap <leader>a <Plug>(coc-codeaction-selected)
" nmap <leader>a <Plug>(coc-codeaction-selected)
" Remap keys for applying codeAction to the current line.
" nmap <leader>ac <Plug>(coc-codeaction)
" Apply AutoFix to problem on the current line.
" nmap <leader>qf <Plug>(coc-fix-current)
" Introduce function text object
" NOTE: Requires 'textDocument.documentSymbol' support from the language server.
xmap if <Plug>(coc-funcobj-i)
xmap af <Plug>(coc-funcobj-a)
omap if <Plug>(coc-funcobj-i)
omap af <Plug>(coc-funcobj-a)
" Remap <C-f> and <C-b> for scroll float windows/popups.
" Note coc#float#scroll works on neovim >= 0.4.3 or vim >= 8.2.0750
nnoremap <nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
nnoremap <nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
inoremap <nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
inoremap <nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
" NeoVim-only mapping for visual mode scroll
" Useful on signatureHelp after jump placeholder of snippet expansion
if has('nvim')
vnoremap <nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#nvim_scroll(1, 1) : "\<C-f>"
vnoremap <nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#nvim_scroll(0, 1) : "\<C-b>"
endif
" Add `:Format` command to format current buffer.
command! -nargs=0 Format :call CocAction('format')
" Add `:Fold` command to fold current buffer.
command! -nargs=? Fold :call CocAction('fold', <f-args>)
" Add `:OR` command for organize imports of the current buffer.
command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport')
" Add (Neo)Vim's native statusline support.
" NOTE: Please see `:h coc-status` for integrations with external plugins that
" provide custom statusline: lightline.vim, vim-airline.
" set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
" Mappings using CoCList:
" Show all diagnostics.
" TODO add these to which key
" nnoremap <silent> <space>a :<C-u>CocList diagnostics<cr>
" " Manage extensions.
" nnoremap <silent> <space>e :<C-u>CocList extensions<cr>
" " Show commands.
" nnoremap <silent> <space>c :<C-u>CocList commands<cr>
" " Find symbol of current document.
" nnoremap <silent> <space>o :<C-u>CocList outline<cr>
" " Search workspace symbols.
" nnoremap <silent> <space>s :<C-u>CocList -I symbols<cr>
" " Do default action for next item.
" nnoremap <silent> <space>j :<C-u>CocNext<CR>
" " Do default action for previous item.
" nnoremap <silent> <space>k :<C-u>CocPrev<CR>
" " Resume latest coc list.
" nnoremap <silent> <space>p :<C-u>CocListResume<CR>
" Explorer
let g:coc_explorer_global_presets = {
\ 'floating': {
\ 'position': 'floating',
\ },
\ 'floatingLeftside': {
\ 'position': 'floating',
\ 'floating-position': 'left-center',
\ 'floating-width': 30,
\ },
\ 'floatingRightside': {
\ 'position': 'floating',
\ 'floating-position': 'right-center',
\ 'floating-width': 30,
\ },
\ 'simplify': {
\ 'file.child.template': '[selection | clip | 1] [indent][icon | 1] [filename omitCenter 1]'
\ }
\ }
"nmap <silent> <space>e :CocCommand explorer<CR>
" nnoremap <silent> <leader>e :CocCommand explorer<CR>
" nmap <space>f :CocCommand explorer --preset floatingRightside<CR>
autocmd BufEnter * if (winnr("$") == 1 && &filetype == 'coc-explorer') | q | endif
" Snippets
" Use <C-l> for trigger snippet expand.
imap <C-l> <Plug>(coc-snippets-expand)
" Use <C-j> for select text for visual placeholder of snippet.
vmap <C-j> <Plug>(coc-snippets-select)
" Use <C-j> for jump to next placeholder, it's default of coc.nvim
let g:coc_snippet_next = '<c-j>'
" Use <C-k> for jump to previous placeholder, it's default of coc.nvim
let g:coc_snippet_prev = '<c-k>'
" Use <C-j> for both expand and jump (make expand higher priority.)
imap <C-j> <Plug>(coc-snippets-expand-jump)
augroup MyCocExplorer
autocmd!
autocmd VimEnter * sil! au! FileExplorer *
autocmd BufEnter * let d = expand('%') | if isdirectory(d) | silent! bd | exe 'CocCommand explorer ' . d | endif
augroup END

View file

@ -1,5 +1,6 @@
let g:gitgutter_sign_allow_clobber = 1
let g:gitgutter_sign_added = '▎' let g:gitgutter_sign_added = '▎'
let g:gitgutter_sign_modified = '▎' let g:gitgutter_sign_modified = '▎'
let g:gitgutter_sign_removed = '契' let g:gitgutter_sign_removed = '契'

View file

@ -0,0 +1,14 @@
" LSP config (the mappings used in the default file don't quite work right)
nnoremap <silent> gd <cmd>lua vim.lsp.buf.definition()<CR>
nnoremap <silent> gD <cmd>lua vim.lsp.buf.declaration()<CR>
nnoremap <silent> gr <cmd>lua vim.lsp.buf.references()<CR>
nnoremap <silent> gi <cmd>lua vim.lsp.buf.implementation()<CR>
nnoremap <silent> K <cmd>lua vim.lsp.buf.hover()<CR>
nnoremap <silent> <C-k> <cmd>lua vim.lsp.buf.signature_help()<CR>
nnoremap <silent> [d <cmd>lua vim.lsp.diagnostic.goto_prev()<CR>
nnoremap <silent> ]d <cmd>lua vim.lsp.diagnostic.goto_next()<CR>
" autoformat
autocmd BufWritePre *.js lua vim.lsp.buf.formatting_sync(nil, 100)
autocmd BufWritePre *.jsx lua vim.lsp.buf.formatting_sync(nil, 100)
autocmd BufWritePre *.py lua vim.lsp.buf.formatting_sync(nil, 100)

View file

@ -0,0 +1,45 @@
let g:nvim_tree_side = 'left' " | 'left' "left by default
let g:nvim_tree_width = 40 "30 by default
let g:nvim_tree_ignore = [ '.git', 'node_modules', '.cache' ] "empty by default
let g:nvim_tree_auto_open = 0 "0 by default, opens the tree when typing `vim $DIR` or `vim`
let g:nvim_tree_auto_close = 1 "0 by default, closes the tree when it's the last window
" let g:nvim_tree_auto_ignore_ft = 'startify' "empty by default, don't auto open tree on specific filetypes.
let g:nvim_tree_quit_on_open = 0 "0 by default, closes the tree when you open a file
let g:nvim_tree_follow = 1 "0 by default, this option allows the cursor to be updated when entering a buffer
let g:nvim_tree_indent_markers = 1 "0 by default, this option shows indent markers when folders are open
let g:nvim_tree_hide_dotfiles = 1 "0 by default, this option hides files and folders starting with a dot `.`
let g:nvim_tree_git_hl = 1 "0 by default, will enable file highlight for git attributes (can be used without the icons).
" let g:nvim_tree_root_folder_modifier = ':~' "This is the default. See :help filename-modifiers for more options
" let g:nvim_tree_tab_open = 1 "0 by default, will open the tree when entering a new tab and the tree was previously open
" let g:nvim_tree_width_allow_resize = 1 "0 by default, will not resize the tree when opening a file
let g:nvim_tree_disable_netrw = 1 "1 by default, disables netrw
let g:nvim_tree_hijack_netrw = 1 "1 by default, prevents netrw from automatically opening when opening directories (but lets you keep its other utilities)
let g:nvim_tree_show_icons = {
\ 'git': 1,
\ 'folders': 1,
\ 'files': 1,
\ }
"If 0, do not show the icons for one of 'git' 'folder' and 'files'
"1 by default, notice that if 'files' is 1, it will only display
"if nvim-web-devicons is installed and on your runtimepath
" default will show icon by default if no icon is provided
" default shows no icon by default
let g:nvim_tree_icons = {
\ 'default': '',
\ 'symlink': '',
\ 'git': {
\ 'unstaged': "✗",
\ 'staged': "✓",
\ 'unmerged': "",
\ 'renamed': "➜",
\ 'untracked': "ﭖ"
\ },
\ 'folder': {
\ 'default': "",
\ 'open': "",
\ 'empty': "",
\ 'empty_open': "",
\ 'symlink': "",
\ }
\ }

1
spell/en.utf-8.add Normal file
View file

@ -0,0 +1 @@
lua

BIN
spell/en.utf-8.add.spl Normal file

Binary file not shown.

9
utils/install_latest_neovim.sh Executable file
View file

@ -0,0 +1,9 @@
#!/bin/bash
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

84
vim-plug/extras.vim Normal file
View file

@ -0,0 +1,84 @@
" Plugin Graveyard
" Rainbow brackets
" Plug 'luochen1990/rainbow'
" Async Linting Engine
" TODO make sure to add ale config before plugin
" Plug 'dense-analysis/ale'
" Better Whitespace
" Plug 'ntpeters/vim-better-whitespace'
" Multiple Cursors
" TODO add this back in change from C-n
" Plug 'mg979/vim-visual-multi', {'branch': 'master'}
" Plug 'yuezk/vim-js'
" Plug 'maxmellon/vim-jsx-pretty'
" Plug 'jelera/vim-javascript-syntax'
" Debug
" Plug 'mfussenegger/nvim-dap'
" Plug 'nvim-dap-virtual-text'
" Sneak
" Plug 'justinmk/vim-sneak'
" Minimap
" Plug 'wfxr/minimap.vim'
" jsx syntax support
" Typescript syntax
" Plug 'HerringtonDarkholme/yats.vim'
" Multiple Cursors
" Plug 'terryma/vim-multiple-cursors'
" Plug 'kaicataldo/material.vim'
" Plug 'tomasiser/vim-code-dark'
" Plug 'mg979/vim-xtabline'
" Files
" Plug 'tpope/vim-eunuch'
" Vim Wiki
" Plug 'https://github.com/vimwiki/vimwiki.git'
" Better Comments
" Plug 'jbgutierrez/vim-better-comments'
" Echo doc
" Plug 'Shougo/echodoc.vim'
" Plug 'hardcoreplayers/spaceline.vim'
" Plug 'vim-airline/vim-airline'
" Plug 'vim-airline/vim-airline-themes'
" Ranger
" Plug 'francoiscabrol/ranger.vim'
" Plug 'rbgrouleff/bclose.vim'
" Making stuff
" Plug 'neomake/neomake'
" Plug 'mhinz/vim-signify'
" Plug 'preservim/nerdcommenter'
" Plug 'atishay/far.vim'
" Plug 'romgrk/lib.kom'
" Plug 'brooth/far.vim'
" Debugging
" Repeat stuff
" Plug 'tpope/vim-repeat'
" Convert binary, hex, etc..
" Plug 'glts/vim-radical'
" highlight all matches under cursor
" Plug 'RRethy/vim-illuminate'
" Surround
" Plug 'tpope/vim-surround'
" auto set indent settings
" Plug 'tpope/vim-sleuth'
" FZF
" Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
" Plug 'yuki-ycino/fzf-preview.vim', { 'branch': 'release', 'do': ':UpdateRemotePlugins' }
" Plug 'junegunn/fzf.vim'
" undo time travel
" Plug 'mbbill/undotree'
" " async tasks
" Plug 'skywind3000/asynctasks.vim'
" Plug 'skywind3000/asyncrun.vim'
" CoC
" Plug 'neoclide/coc.nvim', {'branch': 'release'}
" Swap windows
" Plug 'wesQ3/vim-windowswap'
" Debugging
" Plug 'puremourning/vimspector'
" Plug 'szw/vim-maximizer'
" Treesitter
" Plug 'nvim-treesitter/playground'
" Plug 'nvim-treesitter/nvim-treesitter-refactor'
" Plug 'nvim-treesitter/nvim-treesitter-textobjects'
" Plug 'romgrk/nvim-treesitter-context'
" Neovim in Browser
" Plug 'glacambre/firenvim', { 'do': { _ -> firenvim#install(1) } }

View file

@ -12,16 +12,10 @@ call plug#begin('~/.config/nvim/autoload/plugged')
Plug 'tpope/vim-commentary' Plug 'tpope/vim-commentary'
" Change dates fast " Change dates fast
Plug 'tpope/vim-speeddating' Plug 'tpope/vim-speeddating'
" Convert binary, hex, etc..
Plug 'glts/vim-radical'
" Repeat stuff
Plug 'tpope/vim-repeat'
" Text Navigation " Text Navigation
Plug 'unblevable/quick-scope' Plug 'unblevable/quick-scope'
" Useful for React Commenting " Useful for React Commenting
Plug 'suy/vim-context-commentstring' Plug 'suy/vim-context-commentstring'
" highlight all matches under cursor
" Plug 'RRethy/vim-illuminate'
if exists('g:vscode') if exists('g:vscode')
" Easy motion for VSCode " Easy motion for VSCode
@ -32,41 +26,19 @@ call plug#begin('~/.config/nvim/autoload/plugged')
" Easymotion " Easymotion
Plug 'easymotion/vim-easymotion' Plug 'easymotion/vim-easymotion'
" Surround
Plug 'tpope/vim-surround'
" Have the file system follow you around " Have the file system follow you around
Plug 'airblade/vim-rooter' Plug 'airblade/vim-rooter'
" auto set indent settings
Plug 'tpope/vim-sleuth'
" Better Syntax Support
Plug 'sheerun/vim-polyglot'
" Treesitter " Treesitter
Plug 'nvim-treesitter/nvim-treesitter' Plug 'nvim-treesitter/nvim-treesitter'
Plug 'nvim-treesitter/playground'
" Cool Icons " Cool Icons
Plug 'kyazdani42/nvim-web-devicons' Plug 'kyazdani42/nvim-web-devicons'
Plug 'ryanoasis/vim-devicons' Plug 'ryanoasis/vim-devicons'
" Auto pairs for '(' '[' '{' " Auto pairs for '(' '[' '{'
Plug 'jiangmiao/auto-pairs' Plug 'jiangmiao/auto-pairs'
" Closetags
Plug 'alvan/vim-closetag'
" Themes
Plug 'christianchiarulli/nvcode-color-schemes.vim'
" Intellisense
Plug 'neoclide/coc.nvim', {'branch': 'release'}
" Status Line " Status Line
Plug 'glepnir/galaxyline.nvim' Plug 'glepnir/galaxyline.nvim'
" Ranger
Plug 'kevinhwang91/rnvimr' Plug 'kevinhwang91/rnvimr'
" FZF
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
" Plug 'yuki-ycino/fzf-preview.vim', { 'branch': 'release', 'do': ':UpdateRemotePlugins' }
Plug 'junegunn/fzf.vim'
" Git
Plug 'airblade/vim-gitgutter'
Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-rhubarb'
Plug 'junegunn/gv.vim'
Plug 'rhysd/git-messenger.vim'
" Terminal " Terminal
Plug 'voldikss/vim-floaterm' Plug 'voldikss/vim-floaterm'
" Start Screen " Start Screen
@ -84,95 +56,51 @@ call plug#begin('~/.config/nvim/autoload/plugged')
Plug 'metakirby5/codi.vim' Plug 'metakirby5/codi.vim'
" Better tabline " Better tabline
Plug 'romgrk/barbar.nvim' Plug 'romgrk/barbar.nvim'
" undo time travel
Plug 'mbbill/undotree'
" Find and replace " Find and replace
" Plug 'ChristianChiarulli/far.vim'
Plug 'brooth/far.vim' Plug 'brooth/far.vim'
" Auto change html tags
Plug 'AndrewRadev/tagalong.vim'
" live server
Plug 'turbio/bracey.vim'
" Smooth scroll " Smooth scroll
Plug 'psliwka/vim-smoothie' Plug 'psliwka/vim-smoothie'
" " async tasks
Plug 'skywind3000/asynctasks.vim'
Plug 'skywind3000/asyncrun.vim'
" Swap windows
Plug 'wesQ3/vim-windowswap'
" Markdown Preview " Markdown Preview
Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app & npm install' } Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app & npm install' }
" Easily Create Gists
Plug 'mattn/vim-gist'
Plug 'mattn/webapi-vim'
" Colorizer
Plug 'norcalli/nvim-colorizer.lua'
" Intuitive buffer closing " Intuitive buffer closing
Plug 'moll/vim-bbye' Plug 'moll/vim-bbye'
" Debugging
Plug 'puremourning/vimspector'
Plug 'szw/vim-maximizer'
" Neovim in Browser
Plug 'glacambre/firenvim', { 'do': { _ -> firenvim#install(1) } }
" Telescope " Telescope
Plug 'nvim-lua/popup.nvim' Plug 'nvim-lua/popup.nvim'
Plug 'nvim-lua/plenary.nvim' Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-telescope/telescope.nvim' Plug 'nvim-telescope/telescope.nvim'
" Rainbow brackets " Intellisense
" Plug 'luochen1990/rainbow' Plug 'neovim/nvim-lspconfig'
" Async Linting Engine Plug 'hrsh7th/nvim-compe'
" TODO make sure to add ale config before plugin Plug 'glepnir/lspsaga.nvim'
" Plug 'dense-analysis/ale' Plug 'onsails/lspkind-nvim'
" Better Whitespace Plug 'kosayoda/nvim-lightbulb'
" Plug 'ntpeters/vim-better-whitespace' " File Explorer
" Multiple Cursors Plug 'kyazdani42/nvim-tree.lua'
" TODO add this back in change from C-n
" Plug 'mg979/vim-visual-multi', {'branch': 'master'}
" Plug 'yuezk/vim-js'
" Plug 'maxmellon/vim-jsx-pretty'
" Plug 'jelera/vim-javascript-syntax'
" Plugin Graveyard
" Debug " Themes
" Plug 'mfussenegger/nvim-dap' Plug 'christianchiarulli/nvcode-color-schemes.vim'
" Plug 'nvim-dap-virtual-text' " Better Syntax Support
" Sneak Plug 'sheerun/vim-polyglot'
" Plug 'justinmk/vim-sneak'
" Plug 'nvim-treesitter/nvim-treesitter-refactor' " Git
" Plug 'nvim-treesitter/nvim-treesitter-textobjects' Plug 'airblade/vim-gitgutter'
" Plug 'romgrk/nvim-treesitter-context' Plug 'tpope/vim-fugitive'
" Minimap Plug 'tpope/vim-rhubarb'
" Plug 'wfxr/minimap.vim' Plug 'junegunn/gv.vim'
" jsx syntax support Plug 'rhysd/git-messenger.vim'
" Typescript syntax " Easily Create Gists
" Plug 'HerringtonDarkholme/yats.vim' Plug 'mattn/vim-gist'
" Multiple Cursors Plug 'mattn/webapi-vim'
" Plug 'terryma/vim-multiple-cursors'
" Plug 'kaicataldo/material.vim' " Webdev
" Plug 'tomasiser/vim-code-dark' " Auto change html tags
" Plug 'mg979/vim-xtabline' Plug 'AndrewRadev/tagalong.vim'
" Files " Closetags
" Plug 'tpope/vim-eunuch' Plug 'alvan/vim-closetag'
" Vim Wiki " Colorizer
" Plug 'https://github.com/vimwiki/vimwiki.git' Plug 'norcalli/nvim-colorizer.lua'
" Better Comments " live server
" Plug 'jbgutierrez/vim-better-comments' Plug 'turbio/bracey.vim'
" Echo doc
" Plug 'Shougo/echodoc.vim'
" Plug 'hardcoreplayers/spaceline.vim'
" Plug 'vim-airline/vim-airline'
" Plug 'vim-airline/vim-airline-themes'
" Ranger
" Plug 'francoiscabrol/ranger.vim'
" Plug 'rbgrouleff/bclose.vim'
" Making stuff
" Plug 'neomake/neomake'
" Plug 'mhinz/vim-signify'
" Plug 'preservim/nerdcommenter'
" Plug 'atishay/far.vim'
" Plug 'romgrk/lib.kom'
" Plug 'brooth/far.vim'
" Debugging
endif endif
call plug#end() call plug#end()