diff options
Diffstat (limited to 'lua')
-rw-r--r-- | lua/keymappings.lua | 2 | ||||
-rw-r--r-- | lua/lsp/init.lua | 2 | ||||
-rw-r--r-- | lua/lsp/js-ts-ls.lua | 8 | ||||
-rw-r--r-- | lua/nv-closetag/init.lua | 3 | ||||
-rw-r--r-- | lua/nv-compe/init.lua | 2 | ||||
-rw-r--r-- | lua/nv-gitblame/init.lua | 2 | ||||
-rw-r--r-- | lua/nv-kommentary/init.lua | 16 | ||||
-rw-r--r-- | lua/nv-startify/init.lua | 7 | ||||
-rw-r--r-- | lua/nv-vscode/init.vim | 105 | ||||
-rw-r--r-- | lua/nv-whichkey/init.vim | 4 | ||||
-rw-r--r-- | lua/plugins.lua | 6 |
11 files changed, 141 insertions, 16 deletions
diff --git a/lua/keymappings.lua b/lua/keymappings.lua index fe910de5..b5a57924 100644 --- a/lua/keymappings.lua +++ b/lua/keymappings.lua @@ -59,6 +59,8 @@ vim.api.nvim_set_keymap('x', 'J', ':move \'>+1<CR>gv-gv', { noremap = true, sile -- Better nav for omnicomplete vim.cmd('inoremap <expr> <c-j> (\"\\<C-n>\")') vim.cmd('inoremap <expr> <c-k> (\"\\<C-p>\")') +-- vim.cmd('inoremap <expr> <TAB> (\"\\<C-n>\")') +-- vim.cmd('inoremap <expr> <S-TAB> (\"\\<C-p>\")') -- TAB Complete --vim.api.nvim_set_keymap('i', '<expr><TAB>', 'pumvisible() ? \"\\<C-n>\" : \"\\<TAB>\"', { noremap = true, silent = true }) diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua index 0419f5c2..89969d54 100644 --- a/lua/lsp/init.lua +++ b/lua/lsp/init.lua @@ -10,7 +10,7 @@ vim.cmd('nnoremap <silent> gr <cmd>lua vim.lsp.buf.references()<CR>') vim.cmd('nnoremap <silent> gi <cmd>lua vim.lsp.buf.implementation()<CR>') vim.cmd('nnoremap <silent> ca :Lspsaga code_action<CR>') vim.cmd('nnoremap <silent> K :Lspsaga hover_doc<CR>') -vim.cmd('nnoremap <silent> <C-k> <cmd>lua vim.lsp.buf.signature_help()<CR>') +-- vim.cmd('nnoremap <silent> <C-k> <cmd>lua vim.lsp.buf.signature_help()<CR>') vim.cmd('nnoremap <silent> <C-p> :Lspsaga diagnostic_jump_prev<CR>') vim.cmd('nnoremap <silent> <C-n> :Lspsaga diagnostic_jump_next<CR>') -- scroll down hover doc or scroll in definition preview diff --git a/lua/lsp/js-ts-ls.lua b/lua/lsp/js-ts-ls.lua index 9d35fcbf..e6e856d1 100644 --- a/lua/lsp/js-ts-ls.lua +++ b/lua/lsp/js-ts-ls.lua @@ -1,2 +1,8 @@ -- npm install -g typescript typescript-language-server -require'lspconfig'.tsserver.setup{} +require'snippets'.use_suggested_mappings() + +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities.textDocument.completion.completionItem.snippetSupport = true; +require'lspconfig'.tsserver.setup{ + capabilities = capabilities, +} diff --git a/lua/nv-closetag/init.lua b/lua/nv-closetag/init.lua new file mode 100644 index 00000000..8c116410 --- /dev/null +++ b/lua/nv-closetag/init.lua @@ -0,0 +1,3 @@ +vim.g.closetag_filenames = '*.html,*.xhtml,*.phtml' +vim.g.closetag_xhtml_filenames = '*.xhtml,*.jsx,*.js' +vim.g.closetag_filetypes = 'html,xhtml,phtml,javascript,javascriptreact' diff --git a/lua/nv-compe/init.lua b/lua/nv-compe/init.lua index 4dcfe26a..75fa9b55 100644 --- a/lua/nv-compe/init.lua +++ b/lua/nv-compe/init.lua @@ -1,3 +1,5 @@ +vim.o.completeopt = "menuone,noselect" + require'compe'.setup { enabled = true; autocomplete = true; diff --git a/lua/nv-gitblame/init.lua b/lua/nv-gitblame/init.lua new file mode 100644 index 00000000..12645a7f --- /dev/null +++ b/lua/nv-gitblame/init.lua @@ -0,0 +1,2 @@ +vim.cmd('highlight default link gitblame SpecialComment') +vim.g.gitblame_enabled = 0 diff --git a/lua/nv-kommentary/init.lua b/lua/nv-kommentary/init.lua index c64290ae..dea90f75 100644 --- a/lua/nv-kommentary/init.lua +++ b/lua/nv-kommentary/init.lua @@ -1,16 +1,6 @@ vim.g.kommentary_create_default_mappings = false vim.api.nvim_set_keymap("n", "<leader>/", "<Plug>kommentary_line_default", {}) ---vim.api.nvim_set_keymap("n", "<leader>c", "<Plug>kommentary_motion_default", {}) vim.api.nvim_set_keymap("v", "<leader>/", "<Plug>kommentary_visual_default", {}) ---[[vim.cmd([[ -function! Comment() - if (mode() == "n" ) - execute "Commentary" - else - execute "'<,'>Commentary" - endif - endfunction -vnoremap <silent> <space>/ :call Comment() -autocmd! BufRead,BufNewFile *.{jsx,jx,js} setlocal filetype=javascript.jsx -autocmd FileType javascript.jsx setlocal commentstring={/*\ %s\ */} -]] +require('kommentary.config').configure_language("default", { + prefer_single_line_comments = true, +}) diff --git a/lua/nv-startify/init.lua b/lua/nv-startify/init.lua index e0e341d0..8e05cdbd 100644 --- a/lua/nv-startify/init.lua +++ b/lua/nv-startify/init.lua @@ -20,3 +20,10 @@ vim.g.startify_session_dir = '~/.config/nvim/session' vim.api.nvim_exec('let startify_lists = [ { \'type\': \'files\', \'header\': [\' Files\'] }, { \'type\': \'sessions\', \'header\': [\' Sessions\'] }, { \'type\': \'bookmarks\', \'header\': [\' Bookmarks\'] }, ]',true) vim.api.nvim_exec('let startify_bookmarks = [ { \'b\': \'~/Blog\' }, { \'i\': \'~/.config/nvim/init.vim\' }, { \'z\': \'~/.zshrc\' }]', true) + +vim.cmd([[ +function! StartifyEntryFormat() + return 'WebDevIconsGetFileTypeSymbol(absolute_path) ." ". entry_path' +endfunction +]]) + diff --git a/lua/nv-vscode/init.vim b/lua/nv-vscode/init.vim new file mode 100644 index 00000000..9ca19a3b --- /dev/null +++ b/lua/nv-vscode/init.vim @@ -0,0 +1,105 @@ +" TODO there is a more contemporary version of this file +" TODO Also some of it is redundant +"VSCode +function! s:split(...) abort + let direction = a:1 + let file = a:2 + call VSCodeCall(direction == 'h' ? 'workbench.action.splitEditorDown' : 'workbench.action.splitEditorRight') + if file != '' + call VSCodeExtensionNotify('open-file', expand(file), 'all') + endif +endfunction + +function! s:splitNew(...) + let file = a:2 + call s:split(a:1, file == '' ? '__vscode_new__' : file) +endfunction + +function! s:closeOtherEditors() + call VSCodeNotify('workbench.action.closeEditorsInOtherGroups') + call VSCodeNotify('workbench.action.closeOtherEditors') +endfunction + +function! s:manageEditorSize(...) + let count = a:1 + let to = a:2 + for i in range(1, count ? count : 1) + call VSCodeNotify(to == 'increase' ? 'workbench.action.increaseViewSize' : 'workbench.action.decreaseViewSize') + endfor +endfunction + +function! s:vscodeCommentary(...) abort + if !a:0 + let &operatorfunc = matchstr(expand('<sfile>'), '[^. ]*$') + return 'g@' + elseif a:0 > 1 + let [line1, line2] = [a:1, a:2] + else + let [line1, line2] = [line("'["), line("']")] + endif + + call VSCodeCallRange("editor.action.commentLine", line1, line2, 0) +endfunction + +function! s:openVSCodeCommandsInVisualMode() + normal! gv + let visualmode = visualmode() + if visualmode == "V" + let startLine = line("v") + let endLine = line(".") + call VSCodeNotifyRange("workbench.action.showCommands", startLine, endLine, 1) + else + let startPos = getpos("v") + let endPos = getpos(".") + call VSCodeNotifyRangePos("workbench.action.showCommands", startPos[1], endPos[1], startPos[2], endPos[2], 1) + endif +endfunction + +function! s:openWhichKeyInVisualMode() + normal! gv + let visualmode = visualmode() + if visualmode == "V" + let startLine = line("v") + let endLine = line(".") + call VSCodeNotifyRange("whichkey.show", startLine, endLine, 1) + else + let startPos = getpos("v") + let endPos = getpos(".") + call VSCodeNotifyRangePos("whichkey.show", startPos[1], endPos[1], startPos[2], endPos[2], 1) + endif +endfunction + + +command! -complete=file -nargs=? Split call <SID>split('h', <q-args>) +command! -complete=file -nargs=? Vsplit call <SID>split('v', <q-args>) +command! -complete=file -nargs=? New call <SID>split('h', '__vscode_new__') +command! -complete=file -nargs=? Vnew call <SID>split('v', '__vscode_new__') +command! -bang Only if <q-bang> == '!' | call <SID>closeOtherEditors() | else | call VSCodeNotify('workbench.action.joinAllGroups') | endif + +" Better Navigation +nnoremap <silent> <C-j> :call VSCodeNotify('workbench.action.navigateDown')<CR> +xnoremap <silent> <C-j> :call VSCodeNotify('workbench.action.navigateDown')<CR> +nnoremap <silent> <C-k> :call VSCodeNotify('workbench.action.navigateUp')<CR> +xnoremap <silent> <C-k> :call VSCodeNotify('workbench.action.navigateUp')<CR> +nnoremap <silent> <C-h> :call VSCodeNotify('workbench.action.navigateLeft')<CR> +xnoremap <silent> <C-h> :call VSCodeNotify('workbench.action.navigateLeft')<CR> +nnoremap <silent> <C-l> :call VSCodeNotify('workbench.action.navigateRight')<CR> +xnoremap <silent> <C-l> :call VSCodeNotify('workbench.action.navigateRight')<CR> + +nnoremap gr <Cmd>call VSCodeNotify('editor.action.goToReferences')<CR> + +" Bind C-/ to vscode commentary since calling from vscode produces double comments due to multiple cursors +xnoremap <expr> <C-/> <SID>vscodeCommentary() +nnoremap <expr> <C-/> <SID>vscodeCommentary() . '_' + +nnoremap <silent> <C-w>_ :<C-u>call VSCodeNotify('workbench.action.toggleEditorWidths')<CR> + +nnoremap <silent> <Space> :call VSCodeNotify('whichkey.show')<CR> +xnoremap <silent> <Space> :<C-u>call <SID>openWhichKeyInVisualMode()<CR> + +xnoremap <silent> <C-P> :<C-u>call <SID>openVSCodeCommandsInVisualMode()<CR> + +xmap gc <Plug>VSCodeCommentary +nmap gc <Plug>VSCodeCommentary +omap gc <Plug>VSCodeCommentary +nmap gcc <Plug>VSCodeCommentaryLine diff --git a/lua/nv-whichkey/init.vim b/lua/nv-whichkey/init.vim index 313deada..54919914 100644 --- a/lua/nv-whichkey/init.vim +++ b/lua/nv-whichkey/init.vim @@ -31,9 +31,11 @@ let g:which_key_map['e'] = [ ':NvimTreeToggle' , 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['r'] = [ ':RnvimrToggle' , 'ranger' ] +" TODO create entire treesitter section let g:which_key_map['T'] = [ ':TSHighlightCapturesUnderCursor' , 'treesitter highlight' ] let g:which_key_map['v'] = [ '<C-W>v' , 'split right'] -let g:which_key_map['z'] = [ 'Goyo' , 'zen' ] +" Add Zen mode, play nice with status line +" let g:which_key_map['z'] = [ 'Goyo' , 'zen' ] " Group mappings diff --git a/lua/plugins.lua b/lua/plugins.lua index 01766f66..3dae1994 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -33,6 +33,10 @@ return require('packer').startup(function() -- Autocomplete use 'hrsh7th/nvim-compe' use 'hrsh7th/vim-vsnip' + use 'honza/vim-snippets' + use 'norcalli/snippets.nvim' + + -- use 'SirVer/ultisnips' -- Treesitter use { 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate' } @@ -41,6 +45,7 @@ return require('packer').startup(function() -- Icons use 'kyazdani42/nvim-web-devicons' + use 'ryanoasis/vim-devicons' -- Status Line and Bufferline use 'glepnir/galaxyline.nvim' @@ -64,6 +69,7 @@ return require('packer').startup(function() -- Git use 'TimUntersberger/neogit' use {'lewis6991/gitsigns.nvim', requires = { 'nvim-lua/plenary.nvim' } } + use 'f-person/git-blame.nvim' -- Easily Create Gists use 'mattn/vim-gist' |