Przeglądaj źródła

add rich git support with hunks

Chris 4 lat temu
rodzic
commit
37179bc46d
5 zmienionych plików z 71 dodań i 40 usunięć
  1. 1 1
      init.lua
  2. 34 0
      lua/nv-utils/init.lua
  3. 2 2
      lua/settings.lua
  4. 25 17
      vimscript/functions.vim
  5. 9 20
      vimscript/nv-whichkey/init.vim

+ 1 - 1
init.lua

@@ -7,7 +7,7 @@ else
   require('keymappings')
   require('settings')
   require('colorscheme')
-  require('utils')
+  require('nv-utils')
 
   -- Plugins
   require('nv-compe')

+ 34 - 0
lua/utils.lua → lua/nv-utils/init.lua

@@ -159,6 +159,39 @@ 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
 
 
@@ -166,3 +199,4 @@ end
 -- autocmd BufWritePre *.rs lua vim.lsp.buf.formatting_sync(nil, 1000)
 
 return function_wrapper
+

+ 2 - 2
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

+ 25 - 17
vimscript/functions.vim

@@ -1,17 +1,25 @@
-command! LspCodeAction lua require 'function-wrapper'.code_action()
-command! LspDeclaration lua require 'function-wrapper'.declaration()
-command! LspDefinition lua require 'function-wrapper'.definition()
-command! LspDocumentSymbol lua require 'function-wrapper'.document_symbol()
-command! LspFormatting lua require 'function-wrapper'.formatting()
-command! LspFormattingSync lua require 'function-wrapper'.formatting_sync()
-command! LspHover lua require 'function-wrapper'.hover()
-command! LspImplementation lua require 'function-wrapper'.implementation()
-command! LspRangeCodeAction lua require 'function-wrapper'.range_code_action()
-command! LspRangeFormatting lua require 'function-wrapper'.range_formatting()
-command! LspReferences lua require 'function-wrapper'.references()
-command! LspRename lua require 'function-wrapper'.rename()
-command! LspTypeDefinition lua require 'function-wrapper'.type_definition()
-command! LspWorkspaceSymbol lua require 'function-wrapper'.workspace_symbol()
-command! LspGotoNext lua require 'function-wrapper'.goto_next()
-command! LspGotoPrev lua require 'function-wrapper'.goto_prev()
-command! LspShowLineDiagnostics lua require 'function-wrapper'.show_line_diagnostics()
+command! LspCodeAction lua require 'nv-utils'.code_action()
+command! LspDeclaration lua require 'nv-utils'.declaration()
+command! LspDefinition lua require 'nv-utils'.definition()
+command! LspDocumentSymbol lua require 'nv-utils'.document_symbol()
+command! LspFormatting lua require 'nv-utils'.formatting()
+command! LspFormattingSync lua require 'nv-utils'.formatting_sync()
+command! LspHover lua require 'nv-utils'.hover()
+command! LspImplementation lua require 'nv-utils'.implementation()
+command! LspRangeCodeAction lua require 'nv-utils'.range_code_action()
+command! LspRangeFormatting lua require 'nv-utils'.range_formatting()
+command! LspReferences lua require 'nv-utils'.references()
+command! LspRename lua require 'nv-utils'.rename()
+command! LspTypeDefinition lua require 'nv-utils'.type_definition()
+command! LspWorkspaceSymbol lua require 'nv-utils'.workspace_symbol()
+command! LspGotoNext lua require 'nv-utils'.goto_next()
+command! LspGotoPrev lua require 'nv-utils'.goto_prev()
+command! LspShowLineDiagnostics lua require 'nv-utils'.show_line_diagnostics()
+command! NextHunk lua require 'nv-utils'.next_hunk()
+command! PrevHunk lua require 'nv-utils'.prev_hunk()
+command! StageHunk lua require 'nv-utils'.stage_hunk()
+command! UndoStageHunk lua require 'nv-utils'.undo_stage_hunk()
+command! ResetHunk lua require 'nv-utils'.reset_hunk()
+command! ResetBuffer lua require 'nv-utils'.reset_buffer()
+command! PreviewHunk lua require 'nv-utils'.preview_hunk()
+command! BlameLine lua require 'nv-utils'.blame_line()

+ 9 - 20
vimscript/nv-whichkey/init.vim

@@ -35,6 +35,7 @@ let g:which_key_map['h'] = [ '<C-W>s'                                          ,
 let g:which_key_map['m'] = [ ':MarkdownPreviewToggle'                          , 'markdown preview']
 let g:which_key_map['n'] = [ ':let @/ = ""'                                    , 'no highlight' ]
 let g:which_key_map['r'] = [ ':RnvimrToggle'                                   , 'ranger' ]
+let g:which_key_map['p'] = [ '"0p'                                             , 'paste' ]
 " 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']
@@ -140,30 +141,18 @@ let g:which_key_map.g = {
       \ 'b' : [':GitBlameToggle'                   , 'blame'],
       \ 'B' : [':GBrowse'                          , 'browse'],
       \ 'd' : [':Git diff'                         , 'diff'],
-      \ 'i' : [':Gist -b'                          , 'post gist'],
+      \ 'j' : [':NextHunk'                         , 'next hunk'],
+      \ 'k' : [':PrevHunk'                         , 'prev hunk'],
       \ 'l' : [':Git log'                          , 'log'],
+      \ 'p' : [':PreviewHunk'                      , 'preview hunk'],
+      \ 'r' : [':ResetHunk'                        , 'reset hunk'],
+      \ 'r' : [':ResetBuffer'                      , 'reset buffer'],
+      \ 's' : [':StageHunk'                        , 'stage hunk'],
       \ 'S' : [':Gstatus'                          , 'status'],
+      \ 'u' : [':UndoStageHunk'                    , 'undo stage hunk'],
       \ }
-      " set these up for git signs
-      "     ['n ]c'] = { expr = true, "&diff ? ']c' : '<cmd>lua require\"gitsigns\".next_hunk()<CR>'"},
-      "     ['n [c'] = { expr = true, "&diff ? '[c' : '<cmd>lua require\"gitsigns\".prev_hunk()<CR>'"},
-
-      "     ['n <leader>hs'] = '<cmd>lua require"gitsigns".stage_hunk()<CR>',
-      "     ['n <leader>hu'] = '<cmd>lua require"gitsigns".undo_stage_hunk()<CR>',
-      "     ['n <leader>hr'] = '<cmd>lua require"gitsigns".reset_hunk()<CR>',
-      "     ['n <leader>hR'] = '<cmd>lua require"gitsigns".reset_buffer()<CR>',
-      "     ['n <leader>hp'] = '<cmd>lua require"gitsigns".preview_hunk()<CR>',
-      "     ['n <leader>hb'] = '<cmd>lua require"gitsigns".blame_line()<CR>',
-      " \ 'p' : [':Git push'                         , 'push'],
-      " \ 'P' : [':Git pull'                         , 'pull'],
-      " \ 'g' : [':GGrep'                            , 'git grep'],
-      " \ 'D' : [':Gdiffsplit'                       , 'diff split'],
-      " \ 'c' : [':Git commit'                       , 'commit'],
-      " \ 'A' : [':CocCommand fzf-preview.GitStatus' , 'actions'],
-      " \ 'a' : [':Git add .'                        , 'add all'],
-      " \ 'A' : [':Git add %'                        , 'add current'],
-      " \ 'S' : [':!git status'                      , 'status'],
 
+" G is for gist
 let g:which_key_map.G = {
       \ 'name' : '+gist' ,
       \ 'b' : [':Gist -b'                          , 'post gist browser'],