summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/keymappings.lua2
-rw-r--r--lua/lsp/init.lua2
-rw-r--r--lua/lsp/js-ts-ls.lua8
-rw-r--r--lua/nv-closetag/init.lua3
-rw-r--r--lua/nv-compe/init.lua2
-rw-r--r--lua/nv-gitblame/init.lua2
-rw-r--r--lua/nv-kommentary/init.lua16
-rw-r--r--lua/nv-startify/init.lua7
-rw-r--r--lua/nv-vscode/init.vim105
-rw-r--r--lua/nv-whichkey/init.vim4
-rw-r--r--lua/plugins.lua6
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'