diff --git a/files/dotfiles/nvim/general/completion.vim b/files/dotfiles/nvim/general/completion.vim new file mode 100644 index 0000000..e914599 --- /dev/null +++ b/files/dotfiles/nvim/general/completion.vim @@ -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 and to navigate through popup menu +" inoremap pumvisible() ? "\" : "\" +" inoremap pumvisible() ? "\" : "\" + +"map to manually trigger completion +"imap (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 diff --git a/files/dotfiles/nvim/general/mappings.vim b/files/dotfiles/nvim/general/mappings.vim index da0432a..d9453b9 100644 --- a/files/dotfiles/nvim/general/mappings.vim +++ b/files/dotfiles/nvim/general/mappings.vim @@ -10,3 +10,10 @@ vmap > >gv " Automatically spell check last error in insert mode inoremap u[s1z=`]au + +" Find files using Telescope command-line sugar. +nnoremap e Telescope find_files +nnoremap g Telescope live_grep +nnoremap b Telescope buffers +nnoremap h Telescope help_tags + diff --git a/files/dotfiles/nvim/general/settings.vim b/files/dotfiles/nvim/general/settings.vim index 37f5dcc..43f522b 100644 --- a/files/dotfiles/nvim/general/settings.vim +++ b/files/dotfiles/nvim/general/settings.vim @@ -58,3 +58,9 @@ set nrformats+=alpha " letter concidered as number for Ctrl-A execute "set colorcolumn=" . join(range(81,335), ',') 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 diff --git a/files/dotfiles/nvim/init.vim b/files/dotfiles/nvim/init.vim index c918bfe..7f29c13 100644 --- a/files/dotfiles/nvim/init.vim +++ b/files/dotfiles/nvim/init.vim @@ -1,9 +1,18 @@ source $HOME/.config/nvim/vim-plug/plugins.vim source $HOME/.config/nvim/general/settings.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/coc.vim -source $HOME/.config/nvim/plug-config/coc-snippets.vim -source $HOME/.config/nvim/plug-config/vimtex.vim +" source $HOME/.config/nvim/plug-config/fzf.vim +" source $HOME/.config/nvim/plug-config/coc.vim +" source $HOME/.config/nvim/plug-config/coc-snippets.vim +" source $HOME/.config/nvim/plug-config/vimtex.vim source $HOME/.config/nvim/plug-config/lightline.vim + +lua < + 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', 'lua vim.lsp.buf.references()', opts) + -- show documentation + buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) + -- Rename + buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', opts) + + -- je sais pas ce c'est que ces workspaces + buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) + buf_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) + buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) + -- ?? + buf_set_keymap('n', 'ca', 'lua vim.lsp.buf.code_action()', opts) + -- Details on diagnostics + buf_set_keymap('n', 'd', 'lua vim.lsp.diagnostic.show_line_diagnostics()', opts) + -- Cycle over diagnostics + buf_set_keymap('n', '[d', 'lua vim.lsp.diagnostic.goto_prev()', opts) + buf_set_keymap('n', ']d', 'lua vim.lsp.diagnostic.goto_next()', opts) + -- Get diagnostic on local list + buf_set_keymap('n', 'q', 'lua vim.lsp.diagnostic.set_loclist()', opts) + buf_set_keymap("n", "f", "lua vim.lsp.buf.formatting()", opts) + + buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) + buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) + buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) + buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) + buf_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', 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 diff --git a/files/dotfiles/nvim/plug-config/nvim-colorize.lua.vim b/files/dotfiles/nvim/plug-config/nvim-colorize.lua.vim new file mode 100644 index 0000000..b7d2445 --- /dev/null +++ b/files/dotfiles/nvim/plug-config/nvim-colorize.lua.vim @@ -0,0 +1 @@ +lua require'colorizer'.setup() diff --git a/files/dotfiles/nvim/plug-config/ultisnips.vim b/files/dotfiles/nvim/plug-config/ultisnips.vim new file mode 100644 index 0000000..a89fdc1 --- /dev/null +++ b/files/dotfiles/nvim/plug-config/ultisnips.vim @@ -0,0 +1 @@ +let g:completion_enable_snippet = 'UltiSnips' diff --git a/files/dotfiles/nvim/vim-plug/plugins.vim b/files/dotfiles/nvim/vim-plug/plugins.vim index de1d16a..47f2874 100644 --- a/files/dotfiles/nvim/vim-plug/plugins.vim +++ b/files/dotfiles/nvim/vim-plug/plugins.vim @@ -20,15 +20,22 @@ call plug#begin('~/.config/nvim/autoload/plugged') Plug 'christoomey/vim-tmux-navigator' 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 'junegunn/fzf.vim' + Plug 'nvim-lua/popup.nvim' + 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 'mhinz/vim-signify' Plug 'tpope/vim-fugitive' + Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} + call plug#end()