neovim

Personal neovim configuration files
git clone git://gtms.dev:neovim
Log | Files | Refs

commit a884f0d045aa28aad14db028a2ab823792245c3a
parent 59ea0f0a9a2407ae69de6cc755119197d92c561f
Author: Tomas Nemec <owl@gtms.dev>
Date:   Wed, 10 May 2023 08:52:51 +0200

update

Diffstat:
Mafter/plugin/dressing.lua | 12++++++++----
Mafter/plugin/hbac.lua | 8++++----
Mafter/plugin/lsp.lua | 2+-
Mafter/plugin/pubspec.lua | 4++++
Mafter/plugin/telescope.lua | 16++++++----------
Mcolors/base16.lua | 3+++
Mlua/plugins.lua | 2+-
Mplugin/bufonly.vim | 4++--
Mplugin/bufremove.lua | 79++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
Aplugin/match.lua | 3+++
10 files changed, 86 insertions(+), 47 deletions(-)

diff --git a/after/plugin/dressing.lua b/after/plugin/dressing.lua @@ -1,4 +1,8 @@ - if not pcall(require, 'dressing') then return end - require('dressing').setup({ - select = { backend = { 'telescope', 'builtin' }, telescope = require('telescope.themes').get_dropdown() }, - }) +if not pcall(require, 'dressing') then + return +end + +require('dressing').setup({ + input = { insert_only = false }, + select = { backend = { 'telescope', 'builtin' }, telescope = require('telescope.themes').get_dropdown() }, +}) diff --git a/after/plugin/hbac.lua b/after/plugin/hbac.lua @@ -1,5 +1,5 @@ -- BUG: Closes open windows! -require('tms.p.hbac').setup({ - autoclose = true, -- set autoclose to false if you want to close manually - threshold = 3, -- hbac will start closing unedited buffers once that number is reached -}) +-- require('tms.p.hbac').setup({ +-- autoclose = true, -- set autoclose to false if you want to close manually +-- threshold = 3, -- hbac will start closing unedited buffers once that number is reached +-- }) diff --git a/after/plugin/lsp.lua b/after/plugin/lsp.lua @@ -45,7 +45,7 @@ vim.api.nvim_create_autocmd('LspAttach', { vim.keymap.set({ 'n', 'v' }, 'ga', lb.code_action, opt('LSP Code Actions')) end if cap.documentHighlightProvider then - vim.keymap.set('n', 'gk', lb.document_highlight, opt('LSP Highlight')) + vim.keymap.set('n', '<leader>k', lb.document_highlight, opt('LSP Highlight')) vim.api.nvim_create_autocmd('CursorMoved', { group = lsp_group, buffer = buf, callback = vim.lsp.buf.clear_references }) end diff --git a/after/plugin/pubspec.lua b/after/plugin/pubspec.lua @@ -8,3 +8,7 @@ vim.api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { vim.keymap.set('n', '<leader>an', require('tms.ft.dart.analyze').qf2131, { buffer = true, desc = 'Dart Analyze' }) end, }) + +if pcall(require, 'pubspec-assist') then + require('pubspec-assist').setup() +end diff --git a/after/plugin/telescope.lua b/after/plugin/telescope.lua @@ -37,20 +37,16 @@ vim.keymap.set('n', '<space>t', builtin('treesitter'), { desc = 'Telescope Trees vim.keymap.set('n', '<space>p', require('telescope').extensions.packer.packer, { desc = 'Telescope Packer' }) vim.keymap.set('n', '<space>c', builtin('git_status', l.dd_large()), { desc = 'Telescope Git Status' }) vim.keymap.set('n', '<space>e', builtin('grep_string'), { desc = 'Telescope Grep String' }) -vim.keymap.set('n', '<space>l', builtin('current_buffer_fuzzy_find', l.dd_large_noprev()), - { desc = 'Telescope Buffer Lines' }) +vim.keymap.set('n', '<space>l', function() + require('telescope.builtin')['current_buffer_fuzzy_find'](l.dd_large_noprev()) +end, { desc = 'Telescope Buffer Lines' }) vim.keymap.set('n', '<space>b', builtin('buffers', l.dd_large()), { desc = 'Telescope Buffers' }) vim.keymap.set('n', '<space>h', builtin('help_tags'), { desc = 'Telescope Help Tags' }) vim.keymap.set('n', '<space>d', builtin('diagnostics', l.dd_large()), { desc = 'Telescope Diagnostics' }) -vim.keymap.set('n', '<space>f', - builtin('git_files', l.dd_large_noprev({ show_untracked = true, use_git_root = false })), - { desc = 'Telescope Find Files' }) +vim.keymap.set('n', '<space>f', builtin('find_files', l.dd_large_noprev()), { desc = 'Telescope Find Files' }) vim.keymap.set('n', '<space>F', function() - local opts = l.dd_large_noprev() - opts.no_ignore = true - opts.hidden = true - require('telescope.builtin').find_files(opts) -end, { desc = 'Telescope Find Files' }) + require('telescope.builtin').find_files(l.dd_large_noprev({ no_ignore = true, hidden = true })) +end, { desc = 'Telescope Find All Files' }) vim.keymap.set('n', '<space>P', function() require('telescope.builtin').reloader(l.dd_noprev()) diff --git a/colors/base16.lua b/colors/base16.lua @@ -331,6 +331,9 @@ vim.api.nvim_set_hl(0, 'GitGutterChangeDelete', { fg = gui0E, bg = gui00 }) -- vim.api.nvim_set_hl(0, group, {}) -- end +vim.api.nvim_set_hl(0, 'LspReferenceText', { underline = true }) +vim.api.nvim_set_hl(0, 'LspReferenceRead', { undercurl = true }) + -- relink @lsp to @treesitter local links = { ['@lsp.type.namespace'] = '@namespace', diff --git a/lua/plugins.lua b/lua/plugins.lua @@ -83,7 +83,7 @@ return packer.startup({ use 'baskerville/vim-sxhkdrc' -- use 'dart-lang/dart-vim-plugin' use 'mfussenegger/nvim-jdtls' - -- use 'akinsho/pubspec-assist.nvim' + use 'akinsho/pubspec-assist.nvim' -- snippets use 'L3MON4D3/luaSnip' diff --git a/plugin/bufonly.vim b/plugin/bufonly.vim @@ -75,6 +75,6 @@ function! BufOnly(buffer, bang) endfunction lua << EOF - vim.keymap.set('n', '<leader>bo', '<cmd>BufOnly<cr>') - vim.keymap.set('n', '<leader>bO', '<cmd>BufOnly!<cr>') + vim.keymap.set('n', '<leader>bo', '<cmd>BufOnly<cr>', {desc = 'Buffer Only'}) + vim.keymap.set('n', '<leader>bO', '<cmd>BufOnly!<cr>', {desc = 'Buffer Force Only'}) EOF diff --git a/plugin/bufremove.lua b/plugin/bufremove.lua @@ -28,24 +28,29 @@ local H = {} ---@param buf_id number: Buffer identifier (see |bufnr()|) to use. Default: 0 for current. ---@param force boolean: Whether to ignore unsaved changes (using `!` version of command). Default: `false`. ---@return boolean: Whether operation was successful. -function BufRemove.delete(buf_id, force) return H.unshow_and_cmd(buf_id, force, 'bdelete') end +function BufRemove.delete(buf_id, force) + return H.unshow_and_cmd(buf_id, force, 'bdelete') +end --- Wipeout buffer `buf_id` with |:bwipeout| after unshowing it. --- ---@param buf_id number: Buffer identifier (see |bufnr()|) to use. Default: 0 for current. ---@param force boolean: Whether to ignore unsaved changes (using `!` version of command). Default: `false`. ---@return boolean: Whether operation was successful. -function BufRemove.wipeout(buf_id, force) return H.unshow_and_cmd(buf_id, force, 'bwipeout') end +function BufRemove.wipeout(buf_id, force) + return H.unshow_and_cmd(buf_id, force, 'bwipeout') +end --- Stop showing buffer `buf_id` in all windows --- ---@param buf_id number: Buffer identifier (see |bufnr()|) to use. Default: 0 for current. ---@return boolean: Whether operation was successful. function BufRemove.unshow(buf_id) - buf_id = H.normalize_buf_id(buf_id) - if not H.is_valid_id(buf_id, 'buffer') then return false end + if not H.is_valid_id(buf_id, 'buffer') then + return false + end vim.tbl_map(BufRemove.unshow_in_window, vim.fn.win_findbuf(buf_id)) @@ -56,10 +61,11 @@ end ---@param win_id number: Window identifier (see |win_getid()|) to use. Default: 0 for current. ---@return boolean: Whether operation was successful. function BufRemove.unshow_in_window(win_id) - win_id = (win_id == nil) and 0 or win_id - if not H.is_valid_id(win_id, 'window') then return false end + if not H.is_valid_id(win_id, 'window') then + return false + end local cur_buf = vim.api.nvim_win_get_buf(win_id) @@ -74,7 +80,9 @@ function BufRemove.unshow_in_window(win_id) -- Try using previous buffer vim.cmd.bprevious() - if cur_buf ~= vim.api.nvim_win_get_buf(win_id) then return end + if cur_buf ~= vim.api.nvim_win_get_buf(win_id) then + return + end -- Create new listed scratch buffer local new_buf = vim.api.nvim_create_buf(true, true) @@ -89,10 +97,14 @@ function H.unshow_and_cmd(buf_id, force, cmd) buf_id = H.normalize_buf_id(buf_id) force = (force == nil) and false or force - if not H.is_valid_id(buf_id, 'buffer') then return false end + if not H.is_valid_id(buf_id, 'buffer') then + return false + end local fun_name = ({ ['bdelete'] = 'delete', ['bwipeout'] = 'wipeout' })[cmd] - if not H.can_remove(buf_id, force, fun_name) then return false end + if not H.can_remove(buf_id, force, fun_name) then + return false + end -- Unshow buffer from all windows BufRemove.unshow(buf_id) @@ -123,13 +135,17 @@ function H.is_valid_id(x, type) is_valid = vim.api.nvim_win_is_valid(x) end - if not is_valid then H.notify(string.format('%s is not a valid %s id.', tostring(x), type)) end + if not is_valid then + H.notify(string.format('%s is not a valid %s id.', tostring(x), type)) + end return is_valid end ---- Check if buffer can be removed with `Bufremove.fun_name` function function H.can_remove(buf_id, force, fun_name) - if force then return true end + if force then + return true + end if vim.api.nvim_buf_get_option(buf_id, 'modified') then H.notify(string.format('Buffer %d has unsaved changes. Use `Bufremove.%s(%d, true)` to force.', buf_id, fun_name, @@ -142,20 +158,33 @@ end ---- Compute 'true' buffer id (strictly positive integer). Treat `nil` and 0 as ---- current buffer. function H.normalize_buf_id(buf_id) - if buf_id == nil or buf_id == 0 or buf_id == '' then return vim.api.nvim_get_current_buf() end + if buf_id == nil or buf_id == 0 or buf_id == '' then + return vim.api.nvim_get_current_buf() + end return buf_id end -function H.notify(msg) vim.notify(string.format('(bufremove) %s', msg)) end - -vim.api.nvim_create_user_command('BufDelete', function(data) BufRemove.delete(data.args, data.bang) end, - { nargs = '?', bang = true }) -vim.api.nvim_create_user_command('BufWipeout', function(data) BufRemove.wipeout(data.args, data.bang) end, - { nargs = '?', bang = true }) -vim.api.nvim_create_user_command('BufUnshow', function(data) BufRemove.unshow(data.args) end, { nargs = '?' }) -vim.api.nvim_create_user_command('BufWinUnshow', function(data) BufRemove.unshow_in_window(data.args) end, - { nargs = '?' }) -vim.keymap.set('n', '<leader>bd', BufRemove.delete) -vim.keymap.set('n', '<leader>bw', BufRemove.wipeout) -vim.keymap.set('n', '<leader>bu', BufRemove.unshow) -vim.keymap.set('n', '<leader>bU', BufRemove.unshow_in_window) +function H.notify(msg) + vim.notify(string.format('(bufremove) %s', msg)) +end + +vim.api.nvim_create_user_command('BufDelete', function(data) + BufRemove.delete(data.args, data.bang) +end, { nargs = '?', bang = true }) +vim.api.nvim_create_user_command('BufWipeout', function(data) + BufRemove.wipeout(data.args, data.bang) +end, { nargs = '?', bang = true }) +vim.api.nvim_create_user_command('BufUnshow', function(data) + BufRemove.unshow(data.args) +end, { nargs = '?' }) +vim.api.nvim_create_user_command('BufWinUnshow', function(data) + BufRemove.unshow_in_window(data.args) +end, { nargs = '?' }) + +vim.keymap.set('n', '<leader>bd', BufRemove.delete, { desc = 'Buffer Delete' }) +vim.keymap.set('n', '<leader>bD', function() + BufRemove.delete(0, true) +end, { desc = 'Buffer Force Delete' }) +vim.keymap.set('n', '<leader>bw', BufRemove.wipeout, { desc = 'Buffer Wipeout' }) +vim.keymap.set('n', '<leader>bu', BufRemove.unshow, { desc = 'Buffer Unshow' }) +vim.keymap.set('n', '<leader>bU', BufRemove.unshow_in_window, { desc = 'Buffer Window Unshow' }) diff --git a/plugin/match.lua b/plugin/match.lua @@ -0,0 +1,3 @@ +-- vim.api.nvim_create_user_command('Match', function(args) +-- vim.cmd.match() +-- end, {})