mirror of
https://github.com/LunarVim/LunarVim.git
synced 2024-09-20 10:35:08 +02:00
Native LSP, more Lua, less CoC
This commit is contained in:
parent
56f65b12a4
commit
474f961b2a
39 changed files with 906 additions and 671 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -10,4 +10,5 @@ session
|
|||
wiki/
|
||||
pack/
|
||||
utils/java/*
|
||||
lua-language-server/
|
||||
|
||||
|
|
122
README.md
122
README.md
|
@ -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
|
||||
|
||||
```
|
||||
```bash
|
||||
bash <(curl -s https://raw.githubusercontent.com/ChristianChiarulli/nvim/master/utils/install.sh)
|
||||
```
|
||||
|
||||
## Install Neovim
|
||||
|
||||
- Mac
|
||||
To get the latest and greatest:
|
||||
|
||||
```
|
||||
brew install --HEAD neovim # Nightly version
|
||||
```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
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
```
|
||||
```bash
|
||||
git clone https://github.com/ChristianChiarulli/nvim.git ~/.config/nvim
|
||||
```
|
||||
|
||||
## Install python & node support
|
||||
|
||||
```
|
||||
```bash
|
||||
pip install pynvim
|
||||
```
|
||||
|
||||
```
|
||||
```bash
|
||||
npm i -g neovim
|
||||
```
|
||||
|
||||
## Install Neovim remote
|
||||
|
||||
```
|
||||
```bash
|
||||
pip install neovim-remote
|
||||
```
|
||||
|
||||
|
@ -72,13 +61,13 @@ export PATH=$HOME/.local/bin:$PATH
|
|||
|
||||
- Ubuntu
|
||||
|
||||
```
|
||||
```bash
|
||||
sudo apt install xsel
|
||||
```
|
||||
|
||||
- Arch
|
||||
|
||||
```
|
||||
```bash
|
||||
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
|
||||
- lazy git
|
||||
- lazy docker
|
||||
- ninja (for lua lsp)
|
||||
|
||||
Explanations and installation instruction can be found on my blog
|
||||
|
||||
## Language Servers
|
||||
|
||||
Since CoC doesn't support all languages in there extensions
|
||||
I recommend installing some language servers from scratch
|
||||
and adding them to your `coc-settings.json` file
|
||||
Some example language servers, if you just install them they will work with this config
|
||||
|
||||
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`
|
||||
|
||||
```
|
||||
"languageserver": {
|
||||
"bash": {
|
||||
"command": "bash-language-server",
|
||||
"args": ["start"],
|
||||
"filetypes": ["sh"],
|
||||
"ignoredRootPaths": ["~"]
|
||||
}
|
||||
}
|
||||
```
|
||||
How to install the lua language server: [link](https://github.com/sumneko/lua-language-server/wiki/Build-and-Run-(Standalone))
|
||||
|
||||
## For FAR to work
|
||||
|
||||
```
|
||||
```vim
|
||||
:UpdateRemotePlugins
|
||||
```
|
||||
|
||||
To replace in file make sure to specify `%:p`
|
||||
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
|
||||
|
||||
To use **vim-gists** you will need to configure the following:
|
||||
|
||||
```
|
||||
```bash
|
||||
git config --global github.user <username>
|
||||
```
|
||||
|
||||
|
@ -165,19 +143,19 @@ You can install it on multiple platforms:
|
|||
|
||||
- Mac
|
||||
|
||||
```
|
||||
```bash
|
||||
brew cask install vscodium
|
||||
```
|
||||
|
||||
- Arch
|
||||
|
||||
```
|
||||
```bash
|
||||
yay -s vscodium-bin
|
||||
```
|
||||
|
||||
- Snap
|
||||
|
||||
```
|
||||
```bash
|
||||
snap install codium
|
||||
```
|
||||
|
||||
|
@ -191,35 +169,27 @@ Along with some of my config files you can find in `utils/vscode_config`
|
|||
|
||||
- Better Documentation
|
||||
https://github.com/gennaro-tedesco/nvim-jqx
|
||||
https://github.com/nathunsmitty/nvim-ale-diagnostic
|
||||
|
||||
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/kosayoda/nvim-lightbulb
|
||||
https://github.com/ms-jpq/chadtree
|
||||
|
||||
https://github.com/b3nj5m1n/kommentary
|
||||
https://github.com/glepnir/lspsaga.nvim
|
||||
|
||||
https://github.com/nvim-lua/completion-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
|
||||
|
||||
- native lsp
|
||||
- treesitter
|
||||
- native lsp (in progress)
|
||||
- treesitter (in progress)
|
||||
|
||||
## 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.
|
||||
|
||||
- ale
|
||||
- multiple cursors
|
||||
- markdown table
|
||||
- galaxyline automatically grab colors from colorscheme
|
||||
- tpope/vim-dadbod
|
||||
- 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
|
||||
- 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)
|
||||
- later manually link pylance
|
||||
- potentially manually link pylance
|
||||
- resize with arrows in addition to meta
|
||||
- how to support meta key on for macOS?
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -9,3 +9,7 @@ nnoremap <f10> :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '>
|
|||
\ . synIDattr(synID(line("."),col("."),0),"name") . "> lo<"
|
||||
\ . 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
|
||||
|
|
|
@ -35,7 +35,7 @@ set updatetime=300 " Faster completion
|
|||
set timeoutlen=100 " By default timeoutlen is 1000 ms
|
||||
set clipboard=unnamedplus " Copy paste between vim and everything else
|
||||
set incsearch
|
||||
set guifont=JetBrainsMono\ Nerd\ Font\ Mono
|
||||
set guifont=JetBrainsMono\ Nerd\ Font\ Mono:h22
|
||||
|
||||
" New stuff
|
||||
" set notimeout nottimeout
|
||||
|
|
120
init.vim
120
init.vim
|
@ -4,64 +4,70 @@
|
|||
" _/ // / / / / /__| |/ / / / / / / /
|
||||
"/___/_/ /_/_/\__(_)___/_/_/ /_/ /_/
|
||||
|
||||
|
||||
" General Settings
|
||||
if !exists('g:vscode')
|
||||
source $HOME/.config/nvim/plug-config/polyglot.vim
|
||||
source ~/.config/nvim/plug-config/polyglot.vim
|
||||
endif
|
||||
source $HOME/.config/nvim/vim-plug/plugins.vim
|
||||
source $HOME/.config/nvim/general/settings.vim
|
||||
source $HOME/.config/nvim/general/functions.vim
|
||||
source $HOME/.config/nvim/keys/mappings.vim
|
||||
source ~/.config/nvim/vim-plug/plugins.vim
|
||||
source ~/.config/nvim/general/settings.vim
|
||||
source ~/.config/nvim/general/functions.vim
|
||||
source ~/.config/nvim/keys/mappings.vim
|
||||
|
||||
if exists('g:vscode')
|
||||
" VS Code extension
|
||||
source $HOME/.config/nvim/vscode/settings.vim
|
||||
source $HOME/.config/nvim/plug-config/easymotion.vim
|
||||
source $HOME/.config/nvim/plug-config/highlightyank.vim
|
||||
source ~/.config/nvim/vscode/settings.vim
|
||||
source ~/.config/nvim/plug-config/easymotion.vim
|
||||
source ~/.config/nvim/plug-config/highlightyank.vim
|
||||
else
|
||||
|
||||
" Themes
|
||||
source $HOME/.config/nvim/themes/syntax.vim
|
||||
source $HOME/.config/nvim/themes/nvcode.vim
|
||||
source ~/.config/nvim/themes/syntax.vim
|
||||
source ~/.config/nvim/themes/nvcode.vim
|
||||
|
||||
" Plugin Configuration
|
||||
source $HOME/.config/nvim/keys/which-key.vim
|
||||
source $HOME/.config/nvim/plug-config/vim-commentary.vim
|
||||
source $HOME/.config/nvim/plug-config/rnvimr.vim
|
||||
source $HOME/.config/nvim/plug-config/better-whitespace.vim
|
||||
source $HOME/.config/nvim/plug-config/fzf.vim
|
||||
source $HOME/.config/nvim/plug-config/codi.vim
|
||||
source $HOME/.config/nvim/plug-config/vim-wiki.vim
|
||||
luafile $HOME/.config/nvim/lua/nvcodeline.lua
|
||||
luafile $HOME/.config/nvim/lua/treesitter.lua
|
||||
source $HOME/.config/nvim/plug-config/coc/coc.vim
|
||||
source $HOME/.config/nvim/plug-config/coc/coc-extensions.vim
|
||||
source $HOME/.config/nvim/plug-config/easymotion.vim
|
||||
source $HOME/.config/nvim/plug-config/goyo.vim
|
||||
source $HOME/.config/nvim/plug-config/vim-rooter.vim
|
||||
source $HOME/.config/nvim/plug-config/start-screen.vim
|
||||
source $HOME/.config/nvim/plug-config/gitgutter.vim
|
||||
source $HOME/.config/nvim/plug-config/git-messenger.vim
|
||||
source $HOME/.config/nvim/plug-config/closetags.vim
|
||||
source $HOME/.config/nvim/plug-config/floaterm.vim
|
||||
source $HOME/.config/nvim/plug-config/barbar.vim
|
||||
source $HOME/.config/nvim/plug-config/far.vim
|
||||
source $HOME/.config/nvim/plug-config/tagalong.vim
|
||||
source $HOME/.config/nvim/plug-config/bracey.vim
|
||||
source $HOME/.config/nvim/plug-config/asynctask.vim
|
||||
source $HOME/.config/nvim/plug-config/window-swap.vim
|
||||
source $HOME/.config/nvim/plug-config/markdown-preview.vim
|
||||
source $HOME/.config/nvim/plug-config/neovide.vim
|
||||
luafile $HOME/.config/nvim/lua/plug-colorizer.lua
|
||||
luafile $HOME/.config/nvim/lua/config-telescope.lua
|
||||
source $HOME/.config/nvim/plug-config/vimspector.vim
|
||||
" source $HOME/.config/nvim/plug-config/sneak.vim
|
||||
" source $HOME/.config/nvim/plug-config/rainbow.vim
|
||||
" source $HOME/.config/nvim/plug-config/illuminate.vim
|
||||
" source $HOME/.config/nvim/plug-config/vista.vim
|
||||
" source $HOME/.config/nvim/plug-config/xtabline.vim
|
||||
" source $HOME/.config/nvim/plug-config/ale.vim
|
||||
source ~/.config/nvim/keys/which-key.vim
|
||||
source ~/.config/nvim/plug-config/vim-commentary.vim
|
||||
source ~/.config/nvim/plug-config/rnvimr.vim
|
||||
source ~/.config/nvim/plug-config/codi.vim
|
||||
source ~/.config/nvim/plug-config/vim-wiki.vim
|
||||
source ~/.config/nvim/plug-config/easymotion.vim
|
||||
source ~/.config/nvim/plug-config/goyo.vim
|
||||
source ~/.config/nvim/plug-config/vim-rooter.vim
|
||||
source ~/.config/nvim/plug-config/start-screen.vim
|
||||
source ~/.config/nvim/plug-config/gitgutter.vim
|
||||
source ~/.config/nvim/plug-config/git-messenger.vim
|
||||
source ~/.config/nvim/plug-config/closetags.vim
|
||||
source ~/.config/nvim/plug-config/floaterm.vim
|
||||
source ~/.config/nvim/plug-config/barbar.vim
|
||||
source ~/.config/nvim/plug-config/far.vim
|
||||
source ~/.config/nvim/plug-config/tagalong.vim
|
||||
source ~/.config/nvim/plug-config/bracey.vim
|
||||
source ~/.config/nvim/plug-config/markdown-preview.vim
|
||||
source ~/.config/nvim/plug-config/nvimtree-config.vim
|
||||
source ~/.config/nvim/lua/lsp-wrapper.vim
|
||||
luafile ~/.config/nvim/lua/plugins/galaxyline-config.lua
|
||||
luafile ~/.config/nvim/lua/plugins/nvimtree-config.lua
|
||||
luafile ~/.config/nvim/lua/plugins/treesitter-config.lua
|
||||
luafile ~/.config/nvim/lua/plugins/colorizer-config.lua
|
||||
luafile ~/.config/nvim/lua/plugins/telescope-config.lua
|
||||
luafile ~/.config/nvim/lua/lsp/lsp-kind.lua
|
||||
luafile ~/.config/nvim/lua/plugins/compe-config.lua
|
||||
luafile ~/.config/nvim/lua/plugins/lspsaga-config.lua
|
||||
" LSP
|
||||
source ~/.config/nvim/plug-config/lsp-config.vim
|
||||
luafile ~/.config/nvim/lua/lsp/lsp-config.lua
|
||||
luafile ~/.config/nvim/lua/lsp/lua-ls.lua
|
||||
luafile ~/.config/nvim/lua/lsp/python-ls.lua
|
||||
luafile ~/.config/nvim/lua/lsp/bash-ls.lua
|
||||
luafile ~/.config/nvim/lua/lsp/css-ls.lua
|
||||
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
|
||||
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
|
||||
inoremap <expr> <c-j> ("\<C-n>")
|
||||
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
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
" Leader Key Maps
|
||||
|
||||
let @s = 'veS"'
|
||||
|
||||
" Timeout
|
||||
|
@ -17,10 +16,6 @@ let g:which_key_map = {}
|
|||
let g:which_key_sep = '→'
|
||||
" 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
|
||||
let g:which_key_use_floating_win = 0
|
||||
let g:which_key_max_size = 0
|
||||
|
@ -39,15 +34,17 @@ autocmd FileType which_key set laststatus=0 noshowmode noruler
|
|||
|
||||
" Single mappings
|
||||
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[';'] = [ ':Commands' , 'commands' ]
|
||||
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['n'] = [ ':let @/ = ""' , 'no highlight' ]
|
||||
let g:which_key_map['o'] = [ ':RnvimrToggle' , 'open' ]
|
||||
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['u'] = [ ':UndotreeToggle' , 'undo tree']
|
||||
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
|
||||
" \ '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
|
||||
let g:which_key_map.s = {
|
||||
\ 'name' : '+search' ,
|
||||
|
@ -225,17 +192,6 @@ let g:which_key_map.s = {
|
|||
\ 'u' : [':Telescope colorscheme' , 'colorschemes'],
|
||||
\ '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 = {
|
||||
\ 'name' : '+Session' ,
|
||||
|
@ -297,46 +253,34 @@ let g:which_key_map.G = {
|
|||
" l is for language server protocol
|
||||
let g:which_key_map.l = {
|
||||
\ 'name' : '+lsp' ,
|
||||
\ '.' : [':CocConfig' , 'config'],
|
||||
\ ';' : ['<Plug>(coc-refactor)' , 'refactor'],
|
||||
\ 'a' : ['<Plug>(coc-codeaction)' , 'code action'],
|
||||
\ 'A' : ['<Plug>(coc-codeaction-selected)' , 'selected action'],
|
||||
\ 'b' : [':CocNext' , 'next action'],
|
||||
\ 'B' : [':CocPrev' , 'prev action'],
|
||||
\ 'c' : [':CocList commands' , 'commands'],
|
||||
\ 'd' : ['<Plug>(coc-definition)' , 'definition'],
|
||||
\ 'D' : ['<Plug>(coc-declaration)' , 'declaration'],
|
||||
\ 'e' : [':CocList extensions' , 'extensions'],
|
||||
\ 'f' : ['<Plug>(coc-format-selected)' , 'format selected'],
|
||||
\ 'F' : ['<Plug>(coc-format)' , 'format'],
|
||||
\ 'h' : ['<Plug>(coc-float-hide)' , 'hide'],
|
||||
\ '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'],
|
||||
\ 'a' : [':Lspsaga code_action' , 'code action'],
|
||||
\ 'A' : [':Lspsaga range_code_action' , 'selected action'],
|
||||
\ 'd' : [':LspDefinition' , 'definition'],
|
||||
\ 'D' : [':LspDeclaration' , 'workspace_diagnostics'],
|
||||
\ 'f' : [':LspFormatting' , 'format'],
|
||||
\ 'h' : [':Lspsaga hover_doc' , 'hover_doc'],
|
||||
\ 'H' : [':Lspsaga signature_help' , 'signature_help'],
|
||||
\ 'K' : [':LspHover' , 'hover'],
|
||||
\ 'i' : [':LspImplementation' , 'lsp_info'],
|
||||
\ 'I' : [':LspInfo' , 'lsp_info'],
|
||||
\ 'l' : [':Lspsaga lsp_finder' , 'lsp_finder'],
|
||||
\ 'L' : [':Lspsaga show_line_diagnostics' , 'line_diagnostics'],
|
||||
\ 'n' : [':Lspsaga diagnostic_jump_next' , 'next_diagnostic'],
|
||||
\ 'o' : [':Vista!!' , 'outline'],
|
||||
\ 'O' : [':CocList outline' , 'search outline'],
|
||||
\ 'p' : ['<Plug>(coc-diagnostic-prev)' , 'prev diagnostic'],
|
||||
\ 'P' : ['<Plug>(coc-diagnostic-prev-error)' , 'prev error'],
|
||||
\ 'q' : ['<Plug>(coc-fix-current)' , 'quickfix'],
|
||||
\ 'r' : ['<Plug>(coc-references)' , 'references'],
|
||||
\ 'R' : ['<Plug>(coc-rename)' , 'rename'],
|
||||
\ 's' : [':CocList -I symbols' , 'references'],
|
||||
\ 'S' : [':CocList snippets' , 'snippets'],
|
||||
\ 't' : ['<Plug>(coc-type-definition)' , 'type definition'],
|
||||
\ 'u' : [':CocListResume' , 'resume list'],
|
||||
\ 'U' : [':CocUpdate' , 'update CoC'],
|
||||
\ 'z' : [':CocDisable' , 'disable CoC'],
|
||||
\ 'Z' : [':CocEnable' , 'enable CoC'],
|
||||
\ 'p' : [':Lspsaga diagnostic_jump_prev' , 'prev diagnostic'],
|
||||
\ 'q' : [':Lspsaga code_action' , 'quickfix'],
|
||||
\ 'r' : [':LspReferences' , 'references'],
|
||||
\ 'R' : [':LspRename' , 'rename'],
|
||||
\ 'T' : [':LspTypeDefinition' , 'type defintion'],
|
||||
\ 'x' : [':cclose' , 'close quickfix'],
|
||||
\ 'y' : [':LspDocumentSymbol' , 'document symbols'],
|
||||
\ 'Y' : [':LspWorkspaceSymbol' , 'workspace symbols'],
|
||||
\ }
|
||||
" \ 'o' : ['<Plug>(coc-openlink)' , 'open link'],
|
||||
|
||||
" t is for terminal
|
||||
let g:which_key_map.t = {
|
||||
\ 'name' : '+terminal' ,
|
||||
\ ';' : [':FloatermNew --wintype=normal --height=6' , 'terminal'],
|
||||
\ ';' : [':FloatermNew --wintype=normal --height=6' , 'terminal'],
|
||||
\ 'f' : [':FloatermNew fzf' , 'fzf'],
|
||||
\ 'g' : [':FloatermNew lazygit' , 'git'],
|
||||
\ 'd' : [':FloatermNew lazydocker' , 'docker'],
|
||||
|
@ -347,7 +291,7 @@ let g:which_key_map.t = {
|
|||
\ 'r' : [':FloatermNew ranger' , 'ranger'],
|
||||
\ 't' : [':FloatermToggle' , 'toggle'],
|
||||
\ 'y' : [':FloatermNew ytop' , 'ytop'],
|
||||
\ 's' : [':FloatermNew ncdu' , 'ncdu'],
|
||||
\ 'u' : [':FloatermNew ncdu' , 'ncdu'],
|
||||
\ }
|
||||
|
||||
" w is for wiki
|
||||
|
|
258
lua/lsp-wrapper.lua
Normal file
258
lua/lsp-wrapper.lua
Normal 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
27
lua/lsp-wrapper.vim
Normal 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
3
lua/lsp/bash-ls.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
-- npm i -g bash-language-server
|
||||
require'lspconfig'.bashls.setup{}
|
||||
|
3
lua/lsp/css-ls.lua
Normal file
3
lua/lsp/css-ls.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
-- npm install -g vscode-css-languageserver-bin
|
||||
require'lspconfig'.cssls.setup{}
|
||||
|
3
lua/lsp/docker-ls.lua
Normal file
3
lua/lsp/docker-ls.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
-- npm install -g dockerfile-language-server-nodejs
|
||||
require'lspconfig'.dockerls.setup{}
|
||||
|
3
lua/lsp/graphql-ls.lua
Normal file
3
lua/lsp/graphql-ls.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
-- npm install -g graphql-language-service-cli
|
||||
require'lspconfig'.graphql.setup{}
|
||||
|
11
lua/lsp/html-ls.lua
Normal file
11
lua/lsp/html-ls.lua
Normal 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{}
|
3
lua/lsp/javascript-ls.lua
Normal file
3
lua/lsp/javascript-ls.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
-- npm install -g typescript typescript-language-server
|
||||
require'lspconfig'.tsserver.setup{}
|
||||
|
11
lua/lsp/json-ls.lua
Normal file
11
lua/lsp/json-ls.lua
Normal 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
61
lua/lsp/lsp-config.lua
Normal 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
27
lua/lsp/lsp-kind.lua
Normal 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
42
lua/lsp/lua-ls.lua
Normal 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
3
lua/lsp/python-ls.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
-- npm i -g pyright
|
||||
require'lspconfig'.pyright.setup{}
|
||||
|
3
lua/lsp/vim-ls.lua
Normal file
3
lua/lsp/vim-ls.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
-- npm install -g vim-language-server
|
||||
require'lspconfig'.vimls.setup{}
|
||||
|
3
lua/lsp/yaml-ls.lua
Normal file
3
lua/lsp/yaml-ls.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
-- npm install -g yaml-language-server
|
||||
require'lspconfig'.yamlls.setup{}
|
||||
|
73
lua/plugins/compe-config.lua
Normal file
73
lua/plugins/compe-config.lua
Normal 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})
|
2
lua/plugins/lspsaga-config.lua
Normal file
2
lua/plugins/lspsaga-config.lua
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
|
31
lua/plugins/nvimtree-config.lua
Normal file
31
lua/plugins/nvimtree-config.lua
Normal 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"),
|
||||
}
|
|
@ -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',
|
||||
|
|
@ -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
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
|
||||
let g:gitgutter_sign_allow_clobber = 1
|
||||
let g:gitgutter_sign_added = '▎'
|
||||
let g:gitgutter_sign_modified = '▎'
|
||||
let g:gitgutter_sign_removed = '契'
|
||||
|
|
14
plug-config/lsp-config.vim
Normal file
14
plug-config/lsp-config.vim
Normal 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)
|
||||
|
45
plug-config/nvimtree-config.vim
Normal file
45
plug-config/nvimtree-config.vim
Normal 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
1
spell/en.utf-8.add
Normal file
|
@ -0,0 +1 @@
|
|||
lua
|
BIN
spell/en.utf-8.add.spl
Normal file
BIN
spell/en.utf-8.add.spl
Normal file
Binary file not shown.
9
utils/install_latest_neovim.sh
Executable file
9
utils/install_latest_neovim.sh
Executable 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
84
vim-plug/extras.vim
Normal 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) } }
|
|
@ -12,16 +12,10 @@ call plug#begin('~/.config/nvim/autoload/plugged')
|
|||
Plug 'tpope/vim-commentary'
|
||||
" Change dates fast
|
||||
Plug 'tpope/vim-speeddating'
|
||||
" Convert binary, hex, etc..
|
||||
Plug 'glts/vim-radical'
|
||||
" Repeat stuff
|
||||
Plug 'tpope/vim-repeat'
|
||||
" Text Navigation
|
||||
Plug 'unblevable/quick-scope'
|
||||
" Useful for React Commenting
|
||||
Plug 'suy/vim-context-commentstring'
|
||||
" highlight all matches under cursor
|
||||
" Plug 'RRethy/vim-illuminate'
|
||||
|
||||
if exists('g:vscode')
|
||||
" Easy motion for VSCode
|
||||
|
@ -32,41 +26,19 @@ call plug#begin('~/.config/nvim/autoload/plugged')
|
|||
|
||||
" Easymotion
|
||||
Plug 'easymotion/vim-easymotion'
|
||||
" Surround
|
||||
Plug 'tpope/vim-surround'
|
||||
" Have the file system follow you around
|
||||
Plug 'airblade/vim-rooter'
|
||||
" auto set indent settings
|
||||
Plug 'tpope/vim-sleuth'
|
||||
" Better Syntax Support
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
" Treesitter
|
||||
Plug 'nvim-treesitter/nvim-treesitter'
|
||||
Plug 'nvim-treesitter/playground'
|
||||
" Cool Icons
|
||||
Plug 'kyazdani42/nvim-web-devicons'
|
||||
Plug 'ryanoasis/vim-devicons'
|
||||
" Auto pairs for '(' '[' '{'
|
||||
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
|
||||
Plug 'glepnir/galaxyline.nvim'
|
||||
" Ranger
|
||||
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
|
||||
Plug 'voldikss/vim-floaterm'
|
||||
" Start Screen
|
||||
|
@ -84,95 +56,51 @@ call plug#begin('~/.config/nvim/autoload/plugged')
|
|||
Plug 'metakirby5/codi.vim'
|
||||
" Better tabline
|
||||
Plug 'romgrk/barbar.nvim'
|
||||
" undo time travel
|
||||
Plug 'mbbill/undotree'
|
||||
" Find and replace
|
||||
" Plug 'ChristianChiarulli/far.vim'
|
||||
Plug 'brooth/far.vim'
|
||||
" Auto change html tags
|
||||
Plug 'AndrewRadev/tagalong.vim'
|
||||
" live server
|
||||
Plug 'turbio/bracey.vim'
|
||||
" Smooth scroll
|
||||
Plug 'psliwka/vim-smoothie'
|
||||
" " async tasks
|
||||
Plug 'skywind3000/asynctasks.vim'
|
||||
Plug 'skywind3000/asyncrun.vim'
|
||||
" Swap windows
|
||||
Plug 'wesQ3/vim-windowswap'
|
||||
" Markdown Preview
|
||||
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
|
||||
Plug 'moll/vim-bbye'
|
||||
" Debugging
|
||||
Plug 'puremourning/vimspector'
|
||||
Plug 'szw/vim-maximizer'
|
||||
" Neovim in Browser
|
||||
Plug 'glacambre/firenvim', { 'do': { _ -> firenvim#install(1) } }
|
||||
" Telescope
|
||||
Plug 'nvim-lua/popup.nvim'
|
||||
Plug 'nvim-lua/plenary.nvim'
|
||||
Plug 'nvim-telescope/telescope.nvim'
|
||||
" 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'
|
||||
" Plugin Graveyard
|
||||
" Intellisense
|
||||
Plug 'neovim/nvim-lspconfig'
|
||||
Plug 'hrsh7th/nvim-compe'
|
||||
Plug 'glepnir/lspsaga.nvim'
|
||||
Plug 'onsails/lspkind-nvim'
|
||||
Plug 'kosayoda/nvim-lightbulb'
|
||||
" File Explorer
|
||||
Plug 'kyazdani42/nvim-tree.lua'
|
||||
|
||||
" Debug
|
||||
" Plug 'mfussenegger/nvim-dap'
|
||||
" Plug 'nvim-dap-virtual-text'
|
||||
" Sneak
|
||||
" Plug 'justinmk/vim-sneak'
|
||||
" Plug 'nvim-treesitter/nvim-treesitter-refactor'
|
||||
" Plug 'nvim-treesitter/nvim-treesitter-textobjects'
|
||||
" Plug 'romgrk/nvim-treesitter-context'
|
||||
" 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
|
||||
" Themes
|
||||
Plug 'christianchiarulli/nvcode-color-schemes.vim'
|
||||
" Better Syntax Support
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
|
||||
" Git
|
||||
Plug 'airblade/vim-gitgutter'
|
||||
Plug 'tpope/vim-fugitive'
|
||||
Plug 'tpope/vim-rhubarb'
|
||||
Plug 'junegunn/gv.vim'
|
||||
Plug 'rhysd/git-messenger.vim'
|
||||
" Easily Create Gists
|
||||
Plug 'mattn/vim-gist'
|
||||
Plug 'mattn/webapi-vim'
|
||||
|
||||
" Webdev
|
||||
" Auto change html tags
|
||||
Plug 'AndrewRadev/tagalong.vim'
|
||||
" Closetags
|
||||
Plug 'alvan/vim-closetag'
|
||||
" Colorizer
|
||||
Plug 'norcalli/nvim-colorizer.lua'
|
||||
" live server
|
||||
Plug 'turbio/bracey.vim'
|
||||
endif
|
||||
|
||||
call plug#end()
|
||||
|
|
Loading…
Reference in a new issue