diff --git a/.gitmodules b/.gitmodules index 6e9296e..d974e7a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,102 +1,102 @@ -[submodule ".vim/bundle/vim-argwrap"] - path = pack/plugins/start/vim-argwrap - url = https://git.foosoft.net/alex/vim-argwrap.git -[submodule ".vim/bundle/vim-sort-motion"] - path = pack/plugins/start/vim-sort-motion - url = https://github.com/christoomey/vim-sort-motion.git -[submodule ".vim/bundle/vim-go"] - path = pack/plugins/start/vim-go - url = https://github.com/fatih/vim-go.git -[submodule ".vim/bundle/vim-easy-align"] - path = pack/plugins/start/vim-easy-align - url = https://github.com/junegunn/vim-easy-align.git -[submodule ".vim/bundle/vim-indent-object"] - path = pack/plugins/start/vim-indent-object - url = https://github.com/michaeljsmith/vim-indent-object.git -[submodule ".vim/bundle/vim-better-whitespace"] - path = pack/plugins/start/vim-better-whitespace - url = https://github.com/ntpeters/vim-better-whitespace.git -[submodule ".vim/bundle/vim-abolish"] - path = pack/plugins/start/vim-abolish - url = https://github.com/tpope/vim-abolish.git -[submodule ".vim/bundle/vim-repeat"] - path = pack/plugins/start/vim-repeat - url = https://github.com/tpope/vim-repeat -[submodule ".vim/bundle/vim-surround"] - path = pack/plugins/start/vim-surround - url = https://github.com/tpope/vim-surround -[submodule ".vim/bundle/vim-unimpaired"] - path = pack/plugins/start/vim-unimpaired - url = https://github.com/tpope/vim-unimpaired.git -[submodule ".vim/bundle/vim-dirvish"] - path = pack/plugins/start/vim-dirvish - url = https://github.com/justinmk/vim-dirvish.git -[submodule ".vim/bundle/vim-signify"] - path = pack/plugins/start/vim-signify - url = https://github.com/mhinz/vim-signify.git -[submodule ".vim/bundle/vim-angry"] - path = pack/plugins/start/vim-angry - url = https://github.com/b4winckler/vim-angry.git -[submodule ".vim/pack/plugins/start/vim-fugitive"] - path = pack/plugins/start/vim-fugitive - url = https://github.com/tpope/vim-fugitive.git -[submodule "pack/plugins/start/vim-polyglot"] - path = pack/plugins/start/vim-polyglot - url = https://github.com/sheerun/vim-polyglot -[submodule "pack/plugins/opt/cmp-nvim-lsp"] - path = pack/plugins/start/cmp-nvim-lsp - url = https://github.com/hrsh7th/cmp-nvim-lsp.git -[submodule "pack/plugins/opt/nvim-lspconfig"] - path = pack/plugins/start/nvim-lspconfig - url = https://github.com/neovim/nvim-lspconfig.git -[submodule "pack/plugins/opt/nvim-cmp"] - path = pack/plugins/start/nvim-cmp - url = https://github.com/hrsh7th/nvim-cmp.git -[submodule "pack/plugins/opt/cmp-vsnip"] - path = pack/plugins/start/cmp-vsnip - url = https://github.com/hrsh7th/cmp-vsnip -[submodule "pack/plugins/opt/vim-vsnip"] - path = pack/plugins/start/vim-vsnip - url = https://github.com/hrsh7th/vim-vsnip -[submodule "pack/plugins/start/suda.vim"] - path = pack/plugins/start/suda.vim - url = https://github.com/lambdalisue/suda.vim.git -[submodule "pack/plugins/start/plenary.nvim"] - path = pack/plugins/start/plenary.nvim - url = https://github.com/nvim-lua/plenary.nvim.git -[submodule "pack/plugins/start/vim-rooter"] - path = pack/plugins/start/vim-rooter - url = https://github.com/airblade/vim-rooter.git -[submodule "pack/plugins/start/fzf.vim"] - path = pack/plugins/start/fzf.vim - url = https://github.com/junegunn/fzf.vim.git -[submodule "pack/plugins/start/fzf"] - path = pack/plugins/start/fzf - url = https://github.com/junegunn/fzf.git -[submodule "pack/plugins/start/neodev.nvim"] - path = pack/plugins/start/neodev.nvim - url = https://github.com/folke/neodev.nvim.git -[submodule "pack/plugins/start/cmp-nvim-lsp-signature-help"] - path = pack/plugins/start/cmp-nvim-lsp-signature-help - url = https://github.com/hrsh7th/cmp-nvim-lsp-signature-help.git -[submodule "pack/plugins/start/nightfox.nvim"] - path = pack/plugins/start/nightfox.nvim - url = https://github.com/EdenEast/nightfox.nvim.git -[submodule "pack/plugins/start/lualine.nvim"] - path = pack/plugins/start/lualine.nvim - url = https://github.com/nvim-lualine/lualine.nvim.git -[submodule "pack/plugins/start/Comment.nvim"] - path = pack/plugins/start/Comment.nvim - url = https://github.com/numToStr/Comment.nvim.git -[submodule "pack/plugins/start/guid.nvim"] - path = pack/plugins/start/guid.nvim - url = https://git.foosoft.net/alex/guid.nvim.git -[submodule "pack/plugins/start/revolver.nvim"] - path = pack/plugins/start/revolver.nvim - url = https://git.foosoft.net/alex/revolver.nvim.git -[submodule "pack/plugins/start/vim-quickhl"] - path = pack/plugins/start/vim-quickhl - url = https://github.com/t9md/vim-quickhl.git +[submodule ".vim/bundle/vim-argwrap"] + path = pack/plugins/start/vim-argwrap + url = https://git.foosoft.net/alex/vim-argwrap.git +[submodule ".vim/bundle/vim-sort-motion"] + path = pack/plugins/start/vim-sort-motion + url = https://github.com/christoomey/vim-sort-motion.git +[submodule ".vim/bundle/vim-go"] + path = pack/plugins/start/vim-go + url = https://github.com/fatih/vim-go.git +[submodule ".vim/bundle/vim-easy-align"] + path = pack/plugins/start/vim-easy-align + url = https://github.com/junegunn/vim-easy-align.git +[submodule ".vim/bundle/vim-indent-object"] + path = pack/plugins/start/vim-indent-object + url = https://github.com/michaeljsmith/vim-indent-object.git +[submodule ".vim/bundle/vim-better-whitespace"] + path = pack/plugins/start/vim-better-whitespace + url = https://github.com/ntpeters/vim-better-whitespace.git +[submodule ".vim/bundle/vim-abolish"] + path = pack/plugins/start/vim-abolish + url = https://github.com/tpope/vim-abolish.git +[submodule ".vim/bundle/vim-repeat"] + path = pack/plugins/start/vim-repeat + url = https://github.com/tpope/vim-repeat +[submodule ".vim/bundle/vim-surround"] + path = pack/plugins/start/vim-surround + url = https://github.com/tpope/vim-surround +[submodule ".vim/bundle/vim-unimpaired"] + path = pack/plugins/start/vim-unimpaired + url = https://github.com/tpope/vim-unimpaired.git +[submodule ".vim/bundle/vim-dirvish"] + path = pack/plugins/start/vim-dirvish + url = https://github.com/justinmk/vim-dirvish.git +[submodule ".vim/bundle/vim-signify"] + path = pack/plugins/start/vim-signify + url = https://github.com/mhinz/vim-signify.git +[submodule ".vim/bundle/vim-angry"] + path = pack/plugins/start/vim-angry + url = https://github.com/b4winckler/vim-angry.git +[submodule ".vim/pack/plugins/start/vim-fugitive"] + path = pack/plugins/start/vim-fugitive + url = https://github.com/tpope/vim-fugitive.git +[submodule "pack/plugins/start/vim-polyglot"] + path = pack/plugins/start/vim-polyglot + url = https://github.com/sheerun/vim-polyglot +[submodule "pack/plugins/opt/cmp-nvim-lsp"] + path = pack/plugins/start/cmp-nvim-lsp + url = https://github.com/hrsh7th/cmp-nvim-lsp.git +[submodule "pack/plugins/opt/nvim-lspconfig"] + path = pack/plugins/start/nvim-lspconfig + url = https://github.com/neovim/nvim-lspconfig.git +[submodule "pack/plugins/opt/nvim-cmp"] + path = pack/plugins/start/nvim-cmp + url = https://github.com/hrsh7th/nvim-cmp.git +[submodule "pack/plugins/opt/cmp-vsnip"] + path = pack/plugins/start/cmp-vsnip + url = https://github.com/hrsh7th/cmp-vsnip +[submodule "pack/plugins/opt/vim-vsnip"] + path = pack/plugins/start/vim-vsnip + url = https://github.com/hrsh7th/vim-vsnip +[submodule "pack/plugins/start/suda.vim"] + path = pack/plugins/start/suda.vim + url = https://github.com/lambdalisue/suda.vim.git +[submodule "pack/plugins/start/plenary.nvim"] + path = pack/plugins/start/plenary.nvim + url = https://github.com/nvim-lua/plenary.nvim.git +[submodule "pack/plugins/start/vim-rooter"] + path = pack/plugins/start/vim-rooter + url = https://github.com/airblade/vim-rooter.git +[submodule "pack/plugins/start/neodev.nvim"] + path = pack/plugins/start/neodev.nvim + url = https://github.com/folke/neodev.nvim.git +[submodule "pack/plugins/start/cmp-nvim-lsp-signature-help"] + path = pack/plugins/start/cmp-nvim-lsp-signature-help + url = https://github.com/hrsh7th/cmp-nvim-lsp-signature-help.git +[submodule "pack/plugins/start/nightfox.nvim"] + path = pack/plugins/start/nightfox.nvim + url = https://github.com/EdenEast/nightfox.nvim.git +[submodule "pack/plugins/start/lualine.nvim"] + path = pack/plugins/start/lualine.nvim + url = https://github.com/nvim-lualine/lualine.nvim.git +[submodule "pack/plugins/start/Comment.nvim"] + path = pack/plugins/start/Comment.nvim + url = https://github.com/numToStr/Comment.nvim.git +[submodule "pack/plugins/start/guid.nvim"] + path = pack/plugins/start/guid.nvim + url = https://git.foosoft.net/alex/guid.nvim.git +[submodule "pack/plugins/start/revolver.nvim"] + path = pack/plugins/start/revolver.nvim + url = https://git.foosoft.net/alex/revolver.nvim.git +[submodule "pack/plugins/start/vim-quickhl"] + path = pack/plugins/start/vim-quickhl + url = https://github.com/t9md/vim-quickhl.git +[submodule "pack/plugins/start/vim-jdaddy"] + path = pack/plugins/start/vim-jdaddy + url = https://github.com/tpope/vim-jdaddy.git +[submodule "pack/plugins/start/fzf-lua"] + path = pack/plugins/start/fzf-lua + url = https://github.com/ibhagwan/fzf-lua.git [submodule "pack/plugins/start/argonaut.nvim"] path = pack/plugins/start/argonaut.nvim url = https://git.foosoft.net/alex/argonaut.nvim.git diff --git a/lua/config/common.lua b/lua/config/common.lua index e4fb77e..3f5a157 100644 --- a/lua/config/common.lua +++ b/lua/config/common.lua @@ -36,7 +36,7 @@ vim.opt.writebackup = false -- common keymaps vim.keymap.set('i', '', '') -vim.keymap.set('n', '', 'bd') +vim.keymap.set('n', '', 'bp|bd #') vim.keymap.set('n', '', 'nohlsearch') vim.keymap.set('n', '', 'b#') vim.keymap.set('n', 'w', 'w') diff --git a/lua/config/ginit.lua b/lua/config/ginit.lua index 2fb686f..8796e69 100644 --- a/lua/config/ginit.lua +++ b/lua/config/ginit.lua @@ -1,13 +1,9 @@ vim.cmd.GuiTabline(0) vim.cmd.GuiPopupmenu(0) -local font -if vim.fn.has('unix') == 1 then - font = 'Terminus:h12' -elseif vim.fn.has('win32') == 1 then - font = 'Lucida Console:h8' -end - -if font then - vim.cmd.Guifont({args = {font}, bang = true}) +if vim.fn.has('win32') == 1 then + vim.cmd.Guifont({ + args = {'Cascadia Mono:h10'}, + bang = true + }) end diff --git a/lua/config/plugins.lua b/lua/config/plugins.lua index 378190b..5d63112 100644 --- a/lua/config/plugins.lua +++ b/lua/config/plugins.lua @@ -7,20 +7,25 @@ end) -- comment.nvim require('Comment').setup() --- fzf.vim +-- fzf-lua if vim.fn.executable('fzf') == 1 then - vim.cmd([[ - command! -bang -nargs=* Fs - \ call fzf#vim#grep( - \ 'git grep --line-number -- '.shellescape(), 0, - \ fzf#vim#with_preview({'dir': systemlist('git rev-parse --show-toplevel')[0]}), 0) - ]]) + local fzf_lua = require('fzf-lua') + fzf_lua.setup({ + winopts = { + preview = { + winopts = { + cursorline = false, + }, + }, + }, + }) - vim.keymap.set('n', 'fg', vim.cmd.GFiles) - vim.keymap.set('n', 'fs', vim.cmd.Fs) - vim.keymap.set('n', 'fh', vim.cmd.History) - vim.keymap.set('n', 'fb', vim.cmd.Buffers) - vim.keymap.set('n', 'fl', vim.cmd.Lines) + vim.keymap.set('n', 'fb', fzf_lua.buffers) + vim.keymap.set('n', 'fg', fzf_lua.git_files) + vim.keymap.set('n', 'fh', fzf_lua.oldfiles) + vim.keymap.set('n', 'fl', fzf_lua.lines) + vim.keymap.set('n', 'fp', fzf_lua.grep) + vim.keymap.set('n', 'fs', fzf_lua.live_grep_native) end -- guid.nvim diff --git a/lua/config/util.lua b/lua/config/util.lua index af917c6..f74efab 100644 --- a/lua/config/util.lua +++ b/lua/config/util.lua @@ -1,10 +1,34 @@ +-- UnAlign +vim.api.nvim_create_user_command( + 'UnAlign', + function(ctx) + vim.cmd(ctx.line1 .. ',' .. ctx.line2 .. 's/\\(\\S\\+\\)\\s\\{2,\\}/\\1 /g') + end, + {range = '%'} +) + local function invoke(args) - output = vim.fn.system(table.concat(args, ' ')) + local output = vim.fn.system(table.concat(args, ' ')) return string.gsub(output, '%s+$', '') end -local function get_branch_parent() +local function git_parent_branch(parent_branch) + for _, branch in ipairs({'master', 'main'}) do + local output = invoke({'git', 'rev-parse', '--verify', branch}) + if not string.find(output, 'fatal') then + parent_branch = branch + end + end + + if parent_branch ~= '' then + return parent_branch + end + local author = invoke({'git', 'config', 'user.name'}) + if #author == 0 then + print('User name is not set') + return + end local hash = invoke{ 'git', @@ -22,43 +46,42 @@ local function get_branch_parent() end end --- UnAlign -vim.api.nvim_create_user_command( - 'UnAlign', - function(ctx) - vim.cmd(ctx.line1 .. ',' .. ctx.line2 .. 's/\\(\\S\\+\\)\\s\\{2,\\}/\\1 /g') - end, - {range = '%'} -) +local function git_edit_paths(names) + local root_dir = invoke({'git', 'rev-parse', '--show-toplevel'}) + for name in string.gmatch(names, '[^\r\n]+') do + vim.cmd(string.format('e %s/%s', root_dir, name)) + end +end --- TopicEdit +-- GitConflicts vim.api.nvim_create_user_command( - 'TopicEdit', - function(ctx) - local hash = get_branch_parent() - if hash then - local names = invoke({'git', 'diff', '--name-only', hash}) - if #names == 0 then - print('No files changed since previous author') - else - local root_dir = invoke({'git', 'rev-parse', '--show-toplevel'}) - for name in string.gmatch(names, '[^\r\n]+') do - vim.cmd(string.format('e %s/%s', root_dir, name)) - end - end - end + 'GitConflicts', + function() + git_edit_paths(invoke({'git', 'diff', '--name-only', '--diff-filter=U'})) end, {} ) --- TopicDiff +-- GitTopicEdit vim.api.nvim_create_user_command( - 'TopicDiff', + 'GitTopicEdit', function(ctx) - local hash = get_branch_parent() + local hash = git_parent_branch(ctx.args) + if hash then + git_edit_paths(invoke({'git', 'diff', '--name-only', hash})) + end + end, + {nargs = '?'} +) + +-- GitTopicDiff +vim.api.nvim_create_user_command( + 'GitTopicDiff', + function(ctx) + local hash = git_parent_branch(ctx.args) if hash then invoke({'git', 'difftool', '-d', hash}) end end, - {} + {nargs = '?'} ) diff --git a/pack/plugins/start/fzf b/pack/plugins/start/fzf deleted file mode 160000 index 90b8187..0000000 --- a/pack/plugins/start/fzf +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 90b818788249bb080f9eddcc4b36ad4080b55c5c diff --git a/pack/plugins/start/fzf-lua b/pack/plugins/start/fzf-lua new file mode 160000 index 0000000..62cb8f3 --- /dev/null +++ b/pack/plugins/start/fzf-lua @@ -0,0 +1 @@ +Subproject commit 62cb8f37b3a017e6b2401726c96e02498f332b70 diff --git a/pack/plugins/start/fzf.vim b/pack/plugins/start/fzf.vim deleted file mode 160000 index f6cb5b1..0000000 --- a/pack/plugins/start/fzf.vim +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f6cb5b17897ff0c38f60fecd4b529678bcfec259 diff --git a/pack/plugins/start/lualine.nvim b/pack/plugins/start/lualine.nvim index 7d131a8..0a5a668 160000 --- a/pack/plugins/start/lualine.nvim +++ b/pack/plugins/start/lualine.nvim @@ -1 +1 @@ -Subproject commit 7d131a8d3ba5016229e8a1d08bf8782acea98852 +Subproject commit 0a5a66803c7407767b799067986b4dc3036e1983 diff --git a/pack/plugins/start/neodev.nvim b/pack/plugins/start/neodev.nvim index b49b976..ce9a2e8 160000 --- a/pack/plugins/start/neodev.nvim +++ b/pack/plugins/start/neodev.nvim @@ -1 +1 @@ -Subproject commit b49b976cf2c28cd8283e9d74cb10885f6dd9e3d0 +Subproject commit ce9a2e8eaba5649b553529c5498acb43a6c317cd diff --git a/pack/plugins/start/nightfox.nvim b/pack/plugins/start/nightfox.nvim index a408e6b..ce0cdf8 160000 --- a/pack/plugins/start/nightfox.nvim +++ b/pack/plugins/start/nightfox.nvim @@ -1 +1 @@ -Subproject commit a408e6bb101066952b81de9c11be367114bd561f +Subproject commit ce0cdf8538c8c0b9c8fb2884d3d1090c8faf515d diff --git a/pack/plugins/start/nvim-cmp b/pack/plugins/start/nvim-cmp index 04e0ca3..ce16de5 160000 --- a/pack/plugins/start/nvim-cmp +++ b/pack/plugins/start/nvim-cmp @@ -1 +1 @@ -Subproject commit 04e0ca376d6abdbfc8b52180f8ea236cbfddf782 +Subproject commit ce16de5665c766f39c271705b17fff06f7bcb84f diff --git a/pack/plugins/start/nvim-lspconfig b/pack/plugins/start/nvim-lspconfig index 41f40dc..9266dc2 160000 --- a/pack/plugins/start/nvim-lspconfig +++ b/pack/plugins/start/nvim-lspconfig @@ -1 +1 @@ -Subproject commit 41f40dc4b86f3e166cf08115f621001972565a20 +Subproject commit 9266dc26862d8f3556c2ca77602e811472b4c5b8 diff --git a/pack/plugins/start/plenary.nvim b/pack/plugins/start/plenary.nvim index 4f71c0c..8aad439 160000 --- a/pack/plugins/start/plenary.nvim +++ b/pack/plugins/start/plenary.nvim @@ -1 +1 @@ -Subproject commit 4f71c0c4a196ceb656c824a70792f3df3ce6bb6d +Subproject commit 8aad4396840be7fc42896e3011751b7609ca4119 diff --git a/pack/plugins/start/suda.vim b/pack/plugins/start/suda.vim index 8b0fc37..d0ccc1a 160000 --- a/pack/plugins/start/suda.vim +++ b/pack/plugins/start/suda.vim @@ -1 +1 @@ -Subproject commit 8b0fc3711760195aba104e2d190cff9af8267052 +Subproject commit d0ccc1a5172f6a26182238767e60e08b931d11fa diff --git a/pack/plugins/start/vim-dirvish b/pack/plugins/start/vim-dirvish index 0966b86..3851bed 160000 --- a/pack/plugins/start/vim-dirvish +++ b/pack/plugins/start/vim-dirvish @@ -1 +1 @@ -Subproject commit 0966b866580ec5cc8fbc26ee396a516d72600db5 +Subproject commit 3851bedb7f191b9a4a5531000b6fc0a8795cc9bb diff --git a/pack/plugins/start/vim-easy-align b/pack/plugins/start/vim-easy-align index 12dd631..9815a55 160000 --- a/pack/plugins/start/vim-easy-align +++ b/pack/plugins/start/vim-easy-align @@ -1 +1 @@ -Subproject commit 12dd6316974f71ce333e360c0260b4e1f81169c3 +Subproject commit 9815a55dbcd817784458df7a18acacc6f82b1241 diff --git a/pack/plugins/start/vim-fugitive b/pack/plugins/start/vim-fugitive index fab00f7..dac8e5c 160000 --- a/pack/plugins/start/vim-fugitive +++ b/pack/plugins/start/vim-fugitive @@ -1 +1 @@ -Subproject commit fab00f7c0f3a08e860e39c7adeb8fbe849921a98 +Subproject commit dac8e5c2d85926df92672bf2afb4fc48656d96c7 diff --git a/pack/plugins/start/vim-go b/pack/plugins/start/vim-go index 76cab33..feef9b3 160000 --- a/pack/plugins/start/vim-go +++ b/pack/plugins/start/vim-go @@ -1 +1 @@ -Subproject commit 76cab3355fee04e750f69ccd34787b2570c6de7a +Subproject commit feef9b31507f8e942bcd21f9e1f22d587c83c72d diff --git a/pack/plugins/start/vim-jdaddy b/pack/plugins/start/vim-jdaddy new file mode 160000 index 0000000..23b6775 --- /dev/null +++ b/pack/plugins/start/vim-jdaddy @@ -0,0 +1 @@ +Subproject commit 23b67752cb869dd9c8f3109173b69aa96a1f3acf diff --git a/pack/plugins/start/vim-signify b/pack/plugins/start/vim-signify index 7d538b7..8670143 160000 --- a/pack/plugins/start/vim-signify +++ b/pack/plugins/start/vim-signify @@ -1 +1 @@ -Subproject commit 7d538b77a5a8806e344b057f8846f6d0c035efa9 +Subproject commit 8670143f9e12ed1cd3c9b2c54f345cdd9a4baac3