summaryrefslogtreecommitdiff
path: root/lua/nv-utils/init.lua
diff options
context:
space:
mode:
authorChris <[email protected]>2021-03-17 02:19:25 -0400
committerChris <[email protected]>2021-03-17 02:19:25 -0400
commit37179bc46d079c4d0d553d5c134eea38d620291a (patch)
tree62a915e205b0ba3c58ae067db66a816d313b8199 /lua/nv-utils/init.lua
parent4308a669776cf1ea2703f4ad26dc39c622e847bb (diff)
add rich git support with hunks
Diffstat (limited to 'lua/nv-utils/init.lua')
-rw-r--r--lua/nv-utils/init.lua202
1 files changed, 202 insertions, 0 deletions
diff --git a/lua/nv-utils/init.lua b/lua/nv-utils/init.lua
new file mode 100644
index 00000000..fff4ded7
--- /dev/null
+++ b/lua/nv-utils/init.lua
@@ -0,0 +1,202 @@
+local function_wrapper = {}
+
+function function_wrapper.define_augroups(definitions) -- {{{1
+ -- Create autocommand groups based on the passed definitions
+ --
+ -- The key will be the name of the group, and each definition
+ -- within the group should have:
+ -- 1. Trigger
+ -- 2. Pattern
+ -- 3. Text
+ -- just like how they would normally be defined from Vim itself
+ for group_name, definition in pairs(definitions) do
+ vim.cmd('augroup ' .. group_name)
+ vim.cmd('autocmd!')
+
+ for _, def in pairs(definition) do
+ local command = table.concat(vim.tbl_flatten {'autocmd', def}, ' ')
+ vim.cmd(command)
+ end
+
+ vim.cmd('augroup END')
+ end
+end
+function_wrapper.define_augroups(
+ {_general_settings = {
+ {'TextYankPost', '*', 'lua require(\'vim.highlight\').on_yank({higroup = \'IncSearch\', timeout = 200})'},
+ {'BufWinEnter', '*', 'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'},
+ {'BufRead', '*', 'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'},
+ {'BufNewFile', '*', 'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'},
+ {'FileType', 'java', 'luafile ~/.config/nvim/lua/lsp/java-ls.lua'},
+ {'FileType', 'java', 'nnoremap ca <Cmd>lua require(\'jdtls\').code_action()<CR>'},
+
+ },
+ }
+)
+
+
+-- Add this to lightbulb, java makes this annoying tho
+-- autocmd CursorHold,CursorHoldI * lua require'nvim-lightbulb'.update_lightbulb()
+
+-- lsp
+
+function function_wrapper.add_to_workspace_folder()
+ vim.lsp.buf.add_workspace_folder()
+end
+
+function function_wrapper.clear_references()
+ vim.lsp.buf.clear_references()
+end
+
+function function_wrapper.code_action()
+ vim.lsp.buf.code_action()
+end
+
+function function_wrapper.declaration()
+ vim.lsp.buf.declaration()
+ vim.lsp.buf.clear_references()
+end
+
+function function_wrapper.definition()
+ vim.lsp.buf.definition()
+ vim.lsp.buf.clear_references()
+end
+
+function function_wrapper.document_highlight()
+ vim.lsp.buf.document_highlight()
+end
+
+function function_wrapper.document_symbol()
+ vim.lsp.buf.document_symbol()
+end
+
+function function_wrapper.formatting()
+ vim.lsp.buf.formatting()
+end
+
+function function_wrapper.formatting_sync()
+ vim.lsp.buf.formatting_sync()
+end
+
+function function_wrapper.hover()
+ vim.lsp.buf.hover()
+end
+
+function function_wrapper.implementation()
+ vim.lsp.buf.implementation()
+end
+
+function function_wrapper.incoming_calls()
+ vim.lsp.buf.incoming_calls()
+end
+
+function function_wrapper.list_workspace_folders()
+ vim.lsp.buf.list_workspace_folders()
+end
+
+function function_wrapper.outgoing_calls()
+ vim.lsp.buf.outgoing_calls()
+end
+
+function function_wrapper.range_code_action()
+ vim.lsp.buf.range_code_action()
+end
+
+function function_wrapper.range_formatting()
+ vim.lsp.buf.range_formatting()
+end
+
+function function_wrapper.references()
+ vim.lsp.buf.references()
+ vim.lsp.buf.clear_references()
+end
+
+function function_wrapper.remove_workspace_folder()
+ vim.lsp.buf.remove_workspace_folder()
+end
+
+function function_wrapper.rename()
+ vim.lsp.buf.rename()
+end
+
+function function_wrapper.signature_help()
+ vim.lsp.buf.signature_help()
+end
+
+function function_wrapper.type_definition()
+ vim.lsp.buf.type_definition()
+end
+
+function function_wrapper.workspace_symbol()
+ vim.lsp.buf.workspace_symbol()
+end
+
+-- diagnostic
+
+function function_wrapper.get_all()
+ vim.lsp.diagnostic.get_all()
+end
+
+function function_wrapper.get_next()
+ vim.lsp.diagnostic.get_next()
+end
+
+function function_wrapper.get_prev()
+ vim.lsp.diagnostic.get_prev()
+end
+
+function function_wrapper.goto_next()
+ vim.lsp.diagnostic.goto_next()
+end
+
+function function_wrapper.goto_prev()
+ vim.lsp.diagnostic.goto_prev()
+end
+
+function function_wrapper.show_line_diagnostics()
+ vim.lsp.diagnostic.show_line_diagnostics()
+end
+
+-- git signs
+
+function function_wrapper.next_hunk()
+ require('gitsigns').next_hunk()
+end
+
+function function_wrapper.prev_hunk()
+ require('gitsigns').prev_hunk()
+end
+
+function function_wrapper.stage_hunk()
+ require('gitsigns').stage_hunk()
+end
+
+function function_wrapper.undo_stage_hunk()
+ require('gitsigns').undo_stage_hunk()
+end
+
+function function_wrapper.reset_hunk()
+ require('gitsigns').reset_hunk()
+end
+
+function function_wrapper.reset_buffer()
+ require('gitsigns').reset_buffer()
+end
+
+function function_wrapper.preview_hunk()
+ require('gitsigns').preview_hunk()
+end
+
+function function_wrapper.blame_line()
+ require('gitsigns').blame_line()
+end
+
+
+-- misc
+
+
+-- autoformat
+-- autocmd BufWritePre *.rs lua vim.lsp.buf.formatting_sync(nil, 1000)
+
+return function_wrapper
+