From 37179bc46d079c4d0d553d5c134eea38d620291a Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 17 Mar 2021 02:19:25 -0400 Subject: add rich git support with hunks --- lua/nv-utils/init.lua | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++ lua/settings.lua | 4 +- lua/utils.lua | 168 ----------------------------------------- 3 files changed, 204 insertions(+), 170 deletions(-) create mode 100644 lua/nv-utils/init.lua delete mode 100644 lua/utils.lua (limited to 'lua') 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 lua require(\'jdtls\').code_action()'}, + + }, + } +) + + +-- 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 + diff --git a/lua/settings.lua b/lua/settings.lua index b4657987..5c5945cf 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -12,8 +12,8 @@ vim.o.termguicolors=true vim.o.splitright=true --Vertical splits will automatically be to the right vim.o.t_Co="256" --Support 256 colors vim.o.conceallevel=0 --So that I can see `` in markdown files -vim.bo.tabstop=2 --Insert 2 spaces for a tab -vim.bo.shiftwidth=2 --Change the number of space characters inserted for indentation +vim.cmd('set ts=4') --Insert 2 spaces for a tab +vim.cmd('set sw=4') --Change the number of space characters inserted for indentation vim.bo.expandtab=true --Converts tabs to spaces vim.bo.smartindent=true --Makes indenting smart vim.wo.number = true diff --git a/lua/utils.lua b/lua/utils.lua deleted file mode 100644 index cc5bd855..00000000 --- a/lua/utils.lua +++ /dev/null @@ -1,168 +0,0 @@ -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 lua require(\'jdtls\').code_action()'}, - - }, - } -) - - --- 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 - --- misc - - --- autoformat --- autocmd BufWritePre *.rs lua vim.lsp.buf.formatting_sync(nil, 1000) - -return function_wrapper -- cgit v1.2.3