Feat: move to lsp and neovim0.5
This commit is contained in:
parent
2f7c7bbb78
commit
134a156149
18
files/dotfiles/nvim/general/completion.vim
Normal file
18
files/dotfiles/nvim/general/completion.vim
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
" Use completion-nvim in every buffer
|
||||||
|
autocmd BufEnter * lua require'completion'.on_attach()
|
||||||
|
|
||||||
|
let g:completion_enable_snippet = 'UltiSnips'
|
||||||
|
let g:completion_matching_strategy_list = ['exact', 'substring', 'fuzzy']
|
||||||
|
|
||||||
|
" Use <Tab> and <S-Tab> to navigate through popup menu
|
||||||
|
" inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
|
||||||
|
" inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
|
||||||
|
|
||||||
|
"map <c-p> to manually trigger completion
|
||||||
|
"imap <silent> <c-p> <Plug>(completion_trigger)
|
||||||
|
|
||||||
|
" Set completeopt to have a better completion experience
|
||||||
|
set completeopt=menuone,noinsert,noselect
|
||||||
|
|
||||||
|
" Avoid showing message extra message when using completion
|
||||||
|
set shortmess+=c
|
@ -10,3 +10,10 @@ vmap > >gv
|
|||||||
|
|
||||||
" Automatically spell check last error in insert mode
|
" Automatically spell check last error in insert mode
|
||||||
inoremap <c-f> <c-g>u<Esc>[s1z=`]a<c-g>u
|
inoremap <c-f> <c-g>u<Esc>[s1z=`]a<c-g>u
|
||||||
|
|
||||||
|
" Find files using Telescope command-line sugar.
|
||||||
|
nnoremap <leader>e <cmd>Telescope find_files<cr>
|
||||||
|
nnoremap <leader>g <cmd>Telescope live_grep<cr>
|
||||||
|
nnoremap <leader>b <cmd>Telescope buffers<cr>
|
||||||
|
nnoremap <leader>h <cmd>Telescope help_tags<cr>
|
||||||
|
|
||||||
|
@ -58,3 +58,9 @@ set nrformats+=alpha " letter concidered as number for Ctrl-A
|
|||||||
execute "set colorcolumn=" . join(range(81,335), ',')
|
execute "set colorcolumn=" . join(range(81,335), ',')
|
||||||
|
|
||||||
colorscheme zenburn
|
colorscheme zenburn
|
||||||
|
|
||||||
|
" Set completeopt to have a better completion experience
|
||||||
|
set completeopt=menuone,noinsert,noselect
|
||||||
|
|
||||||
|
" Avoid showing message extra message when using completion
|
||||||
|
set shortmess+=c
|
||||||
|
@ -1,9 +1,18 @@
|
|||||||
source $HOME/.config/nvim/vim-plug/plugins.vim
|
source $HOME/.config/nvim/vim-plug/plugins.vim
|
||||||
source $HOME/.config/nvim/general/settings.vim
|
source $HOME/.config/nvim/general/settings.vim
|
||||||
source $HOME/.config/nvim/general/mappings.vim
|
source $HOME/.config/nvim/general/mappings.vim
|
||||||
|
source $HOME/.config/nvim/general/completion.vim
|
||||||
|
|
||||||
source $HOME/.config/nvim/plug-config/fzf.vim
|
" source $HOME/.config/nvim/plug-config/fzf.vim
|
||||||
source $HOME/.config/nvim/plug-config/coc.vim
|
" source $HOME/.config/nvim/plug-config/coc.vim
|
||||||
source $HOME/.config/nvim/plug-config/coc-snippets.vim
|
" source $HOME/.config/nvim/plug-config/coc-snippets.vim
|
||||||
source $HOME/.config/nvim/plug-config/vimtex.vim
|
" source $HOME/.config/nvim/plug-config/vimtex.vim
|
||||||
source $HOME/.config/nvim/plug-config/lightline.vim
|
source $HOME/.config/nvim/plug-config/lightline.vim
|
||||||
|
|
||||||
|
lua <<EOF
|
||||||
|
require("lsp")
|
||||||
|
EOF
|
||||||
|
|
||||||
|
" bug fix with telescope and insert mode https://github.com/nvim-telescope/telescope.nvim/issues/82
|
||||||
|
autocmd FileType TelescopePrompt
|
||||||
|
\ call deoplete#custom#buffer_option('auto_complete', v:false)
|
||||||
|
58
files/dotfiles/nvim/lua/lsp.lua
Normal file
58
files/dotfiles/nvim/lua/lsp.lua
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
|
||||||
|
require'lspconfig'.pyright.setup{}
|
||||||
|
|
||||||
|
local nvim_lsp = require('lspconfig')
|
||||||
|
|
||||||
|
-- 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
|
||||||
|
|
||||||
|
--Enable completion triggered by <c-x><c-o>
|
||||||
|
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||||
|
|
||||||
|
-- Mappings.
|
||||||
|
local opts = { noremap=true, silent=true }
|
||||||
|
|
||||||
|
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||||
|
-- See references
|
||||||
|
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||||
|
-- show documentation
|
||||||
|
buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||||
|
-- Rename
|
||||||
|
buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||||
|
|
||||||
|
-- je sais pas ce c'est que ces workspaces
|
||||||
|
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>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||||
|
-- Details on diagnostics
|
||||||
|
buf_set_keymap('n', '<space>d', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
|
||||||
|
-- Cycle over diagnostics
|
||||||
|
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)
|
||||||
|
-- Get diagnostic on local list
|
||||||
|
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)
|
||||||
|
|
||||||
|
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', '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>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Use a loop to conveniently call 'setup' on multiple servers and
|
||||||
|
-- map buffer local keybindings when the language server attaches
|
||||||
|
local servers = { "pyright" }
|
||||||
|
for _, lsp in ipairs(servers) do
|
||||||
|
nvim_lsp[lsp].setup {
|
||||||
|
on_attach = on_attach,
|
||||||
|
flags = {
|
||||||
|
debounce_text_changes = 150,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
1
files/dotfiles/nvim/plug-config/nvim-colorize.lua.vim
Normal file
1
files/dotfiles/nvim/plug-config/nvim-colorize.lua.vim
Normal file
@ -0,0 +1 @@
|
|||||||
|
lua require'colorizer'.setup()
|
1
files/dotfiles/nvim/plug-config/ultisnips.vim
Normal file
1
files/dotfiles/nvim/plug-config/ultisnips.vim
Normal file
@ -0,0 +1 @@
|
|||||||
|
let g:completion_enable_snippet = 'UltiSnips'
|
@ -20,15 +20,22 @@ call plug#begin('~/.config/nvim/autoload/plugged')
|
|||||||
Plug 'christoomey/vim-tmux-navigator'
|
Plug 'christoomey/vim-tmux-navigator'
|
||||||
Plug 'Yggdroot/indentLine'
|
Plug 'Yggdroot/indentLine'
|
||||||
|
|
||||||
Plug 'lervag/vimtex'
|
Plug 'neovim/nvim-lspconfig'
|
||||||
|
" Plug 'hrsh7th/nvim-compe'
|
||||||
|
Plug 'nvim-lua/completion-nvim'
|
||||||
|
|
||||||
"Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
Plug 'nvim-lua/popup.nvim'
|
||||||
Plug 'junegunn/fzf.vim'
|
Plug 'nvim-lua/plenary.nvim'
|
||||||
|
Plug 'nvim-telescope/telescope.nvim'
|
||||||
|
|
||||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
"Plug 'lervag/vimtex'
|
||||||
|
|
||||||
|
Plug 'SirVer/ultisnips'
|
||||||
Plug 'honza/vim-snippets'
|
Plug 'honza/vim-snippets'
|
||||||
|
|
||||||
Plug 'mhinz/vim-signify'
|
Plug 'mhinz/vim-signify'
|
||||||
Plug 'tpope/vim-fugitive'
|
Plug 'tpope/vim-fugitive'
|
||||||
|
|
||||||
|
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
||||||
|
|
||||||
call plug#end()
|
call plug#end()
|
||||||
|
Loading…
Reference in New Issue
Block a user