Squashed commit of the following:
commit 35bbfb270aaa17ab0bea37b50f85068b28e1d1a9 Author: Alex Yatskov <alex@foosoft.net> Date: Wed Oct 13 20:05:12 2021 -0700 Disable snippets commit bc03ffc0c123149fce2c23f29a61c7a7f2d6a730 Author: Alex Yatskov <alex@foosoft.net> Date: Wed Oct 13 17:51:23 2021 -0700 Switch to nvim lsp
This commit is contained in:
parent
90d6d990d5
commit
d47e89c0c8
18
.gitmodules
vendored
18
.gitmodules
vendored
@ -70,12 +70,24 @@
|
||||
[submodule ".vim/pack/plugins/start/vim-fugitive"]
|
||||
path = pack/plugins/start/vim-fugitive
|
||||
url = https://github.com/tpope/vim-fugitive.git
|
||||
[submodule "pack/plugins/start/coc.nvim"]
|
||||
path = pack/plugins/opt/coc.nvim
|
||||
url = https://github.com/neoclide/coc.nvim
|
||||
[submodule "pack/plugins/start/vim-rooter"]
|
||||
path = pack/plugins/start/vim-rooter
|
||||
url = https://github.com/airblade/vim-rooter.git
|
||||
[submodule "pack/plugins/start/vim-polyglot"]
|
||||
path = pack/plugins/start/vim-polyglot
|
||||
url = https://github.com/sheerun/vim-polyglot
|
||||
[submodule "pack/plugins/opt/cmp-nvim-lsp"]
|
||||
path = pack/plugins/opt/cmp-nvim-lsp
|
||||
url = https://github.com/hrsh7th/cmp-nvim-lsp.git
|
||||
[submodule "pack/plugins/opt/nvim-lspconfig"]
|
||||
path = pack/plugins/opt/nvim-lspconfig
|
||||
url = https://github.com/neovim/nvim-lspconfig.git
|
||||
[submodule "pack/plugins/opt/nvim-cmp"]
|
||||
path = pack/plugins/opt/nvim-cmp
|
||||
url = https://github.com/hrsh7th/nvim-cmp.git
|
||||
[submodule "pack/plugins/opt/cmp-vsnip"]
|
||||
path = pack/plugins/opt/cmp-vsnip
|
||||
url = https://github.com/hrsh7th/cmp-vsnip
|
||||
[submodule "pack/plugins/opt/vim-vsnip"]
|
||||
path = pack/plugins/opt/vim-vsnip
|
||||
url = https://github.com/hrsh7th/vim-vsnip
|
||||
|
@ -1,6 +1,2 @@
|
||||
#!/bin/bash
|
||||
git submodule update --init --recursive
|
||||
pushd ./pack/plugins/opt/coc.nvim/
|
||||
npm install
|
||||
npm run build
|
||||
popd
|
||||
|
@ -13,7 +13,6 @@ set background=dark
|
||||
set backspace=indent,eol,start
|
||||
set belloff=all
|
||||
set complete-=i
|
||||
set completeopt=menuone,noinsert
|
||||
set encoding=utf-8
|
||||
set expandtab
|
||||
set fileformats=unix,dos,mac
|
||||
|
1
pack/plugins/opt/cmp-nvim-lsp
Submodule
1
pack/plugins/opt/cmp-nvim-lsp
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit f93a6cf9761b096ff2c28a4f0defe941a6ffffb5
|
1
pack/plugins/opt/cmp-vsnip
Submodule
1
pack/plugins/opt/cmp-vsnip
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 1588c35bf8f637e8f5287477f31895781858f970
|
@ -1 +0,0 @@
|
||||
Subproject commit 03c9add7cd867a013102dcb45fb4e75304d227d7
|
1
pack/plugins/opt/nvim-cmp
Submodule
1
pack/plugins/opt/nvim-cmp
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit f5393d5bd934428a469f03f5bc225922f8c48367
|
1
pack/plugins/opt/nvim-lspconfig
Submodule
1
pack/plugins/opt/nvim-lspconfig
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit e4bed57f127310764f08e8b45f1ed3a31c6094e0
|
1
pack/plugins/opt/vim-vsnip
Submodule
1
pack/plugins/opt/vim-vsnip
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 9ac8044206d32bea4dba34e77b6a3b7b87f65df6
|
89
plugins.vim
89
plugins.vim
@ -1,31 +1,74 @@
|
||||
" coc.nvim
|
||||
if executable('node')
|
||||
packadd coc.nvim
|
||||
" cmp-nvim-lsp, nvim-cmp, nvim-lspconfig
|
||||
if has('nvim')
|
||||
packadd cmp-nvim-lsp
|
||||
packadd nvim-cmp
|
||||
packadd nvim-lspconfig
|
||||
|
||||
highlight CocErrorSign ctermfg=Red guifg=#dc322f
|
||||
highlight CocWarningSign ctermfg=Yellow guifg=#b58900
|
||||
highlight CocInfoHighlight ctermfg=Blue guifg=#268bd2
|
||||
lua << EOF
|
||||
-- Use an on_attach function to only map the following keys
|
||||
-- after the language server attaches to the current buffer
|
||||
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
|
||||
|
||||
let g:coc_disable_startup_warning = 1
|
||||
-- Enable completion triggered by <c-x><c-o>
|
||||
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||
|
||||
nmap <silent> [g <Plug>(coc-diagnostic-prev)
|
||||
nmap <silent> ]g <Plug>(coc-diagnostic-next)
|
||||
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)
|
||||
-- Mappings.
|
||||
local opts = { noremap=true, silent=true }
|
||||
|
||||
if has('nvim-0.4.0') || has('patch-8.2.0750')
|
||||
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
|
||||
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
|
||||
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
|
||||
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
|
||||
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
|
||||
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
|
||||
endif
|
||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||
buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||
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>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', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<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)
|
||||
buf_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
|
||||
end
|
||||
|
||||
inoremap <expr><tab> pumvisible() ? '<C-y>' : '<tab>'
|
||||
inoremap <expr><cr> pumvisible() ? '<C-e><cr>' : '<cr>'
|
||||
-- Add additional capabilities supported by nvim-cmp
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities, {snippetSupport = false})
|
||||
|
||||
-- Use a loop to conveniently call 'setup' on multiple servers and
|
||||
-- map buffer local keybindings when the language server attaches
|
||||
local nvim_lsp = require('lspconfig')
|
||||
for _, lsp in ipairs({'jedi_language_server', 'gopls', 'clangd'}) do
|
||||
nvim_lsp[lsp].setup({
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities
|
||||
})
|
||||
end
|
||||
|
||||
-- nvim-cmp setup
|
||||
local cmp = require('cmp')
|
||||
cmp.setup {
|
||||
mapping = {
|
||||
['<C-d>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||
['<Tab>'] = cmp.mapping.confirm({select = true}),
|
||||
},
|
||||
sources = {
|
||||
{name = 'nvim_lsp'},
|
||||
},
|
||||
}
|
||||
|
||||
-- Set completeopt to have a better completion experience
|
||||
vim.o.completeopt = 'menuone,noselect'
|
||||
EOF
|
||||
endif
|
||||
|
||||
" fzf
|
||||
|
Loading…
Reference in New Issue
Block a user