diff --git a/home/editors/neovim/default.nix b/home/editors/neovim/default.nix index ba4ffe1..0b026fe 100644 --- a/home/editors/neovim/default.nix +++ b/home/editors/neovim/default.nix @@ -2,12 +2,12 @@ let neovim-unwrapped = pkgs.neovim-unwrapped.overrideAttrs (oldAttrs: rec { - version = "2020-11-26"; + version = "2020-12-24"; src = pkgs.fetchFromGitHub { owner = "neovim"; repo = "neovim"; - rev = "10a5f40f9e020c28df471d5380869ac63d8474a7"; - sha256 = "1ghdhkbznhh9n3mp39ydnsc1l94yrs4a5fbdm0hircqgz4wndh4y"; + rev = "8c8cc35926f265bf4f048b83fd130bef3932851e"; + sha256 = "1iswss5415n56cfxn9pylnpfnwafhfdnxfc1pk9z1m280i2whlyk"; }; nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ pkgs.utf8proc pkgs.tree-sitter ]; @@ -15,15 +15,26 @@ let buildVimPluginFrom2Nix = pkgs.vimUtils.buildVimPluginFrom2Nix; + completion-nvim = buildVimPluginFrom2Nix { + pname = "completion-nvim"; + version = "2020-11-20"; + src = pkgs.fetchFromGitHub { + owner = "nvim-lua"; + repo = "completion-nvim"; + rev = "936bbd17577101a4ffb07ea7f860f77dd8007d43"; + sha256 = "1z399q3v36hx2ipj1fhxcc051pi4q0lifyglmclxi5zkbmm0z6a7"; + }; + }; + # not very stable yet, no existing netcoredbg config nvim-dap = buildVimPluginFrom2Nix { pname = "nvim-dap"; - version = "2020-09-14"; + version = "2020-12-20"; src = pkgs.fetchFromGitHub { owner = "mfussenegger"; repo = "nvim-dap"; - rev = "59b312e95d7ee60bf66bbe199cfc168c62808d54"; - sha256 = "0jvdrmgspgcs48zyfpwmywldjjpx539hdlibfjq6bdc1a8x8vis7"; + rev = "664a5598f77c8bfec7f81f03e29516583ddc194c"; + sha256 = "0rw30cmqnxm9sdrqissppdkdgfk3h2l4vh9m7679k3vx26ahq3qx"; }; }; @@ -67,9 +78,7 @@ in { nvim-lspconfig nvim-dap - # might require :UpdateRemotePlugins - deoplete-nvim - deoplete-lsp + completion-nvim vim-orgmode ]; diff --git a/home/editors/neovim/init.vim b/home/editors/neovim/init.vim index 327b8b5..5816577 100644 --- a/home/editors/neovim/init.vim +++ b/home/editors/neovim/init.vim @@ -1,5 +1,8 @@ " set shell=/bin/sh +set ignorecase +set smartcase + set termguicolors set timeoutlen=500 @@ -104,3 +107,7 @@ tnoremap :q! :q! " vim-closetag let g:closetag_filenames = "*.html,*.jsx,*.tsx,*.vue,*.xhml,*.xml" +let g:closetag_regions = { + \ 'typescript.tsx': 'jsxRegion,tsxRegion', + \ 'javascript.jsx': 'jsxRegion', + \ } diff --git a/home/editors/neovim/lsp/lsp.vim b/home/editors/neovim/lsp/lsp.vim index 0b0aa51..c85b809 100644 --- a/home/editors/neovim/lsp/lsp.vim +++ b/home/editors/neovim/lsp/lsp.vim @@ -1,27 +1,17 @@ " autocomplete config set completeopt=menu,preview,menuone,noinsert -set omnifunc=v:lua.vim.lsp.omnifunc -let g:deoplete#enable_at_startup = 1 -let g:deoplete#smart_case = 1 +" let g:completion_timer_cycle = 20 + +" enable completion-nvim in all buffers +autocmd BufEnter * lua require'completion'.on_attach() + +" Use and to navigate through popup menu +inoremap pumvisible() ? "\" : "\" +inoremap pumvisible() ? "\" : "\" " Use to trigger completion. -inoremap deoplete#manual_complete() - -" Autocomplete and cycle from top-to-bottom of suggestions using . -inoremap pumvisible() ? "\" : "\" - -" : completion. -inoremap - \ pumvisible() ? "\" : - \ check_back_space() ? "\" : - \ deoplete#manual_complete() -inoremap pumvisible() ? "\" : "\" - -function! s:check_back_space() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' -endfunction +imap (completion_trigger) " maps nnoremap gd lua vim.lsp.buf.definition()