diff options
| author | Robert Günzler <r@gnzler.io> | 2024-05-15 09:00:31 +0200 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2024-05-15 09:00:31 +0200 |
| commit | 3dbe74f2eef627e2dc19b79fe06753d5dc09003f (patch) | |
| tree | b78d1cdab62cec9ed4bbe35447108547b935ef03 /.vim/after/ftplugin | |
| parent | 0ab72c1113139c196115c974eadaded449002c32 (diff) | |
update nvim
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '.vim/after/ftplugin')
| -rw-r--r-- | .vim/after/ftplugin/dirbuf.lua | 2 | ||||
| -rw-r--r-- | .vim/after/ftplugin/gitmessengerpopup.lua | 1 | ||||
| -rw-r--r-- | .vim/after/ftplugin/gitrebase.lua | 80 | ||||
| -rw-r--r-- | .vim/after/ftplugin/go.lua | 2 | ||||
| -rw-r--r-- | .vim/after/ftplugin/mail.lua | 4 | ||||
| -rw-r--r-- | .vim/after/ftplugin/markdown.lua | 57 | ||||
| -rw-r--r-- | .vim/after/ftplugin/rust.lua | 1 | ||||
| -rw-r--r-- | .vim/after/ftplugin/tex.lua | 8 | ||||
| -rw-r--r-- | .vim/after/ftplugin/todofile.lua | 23 |
9 files changed, 90 insertions, 88 deletions
diff --git a/.vim/after/ftplugin/dirbuf.lua b/.vim/after/ftplugin/dirbuf.lua index 109e3a4..4f41efc 100644 --- a/.vim/after/ftplugin/dirbuf.lua +++ b/.vim/after/ftplugin/dirbuf.lua @@ -1 +1,3 @@ vim.opt_local.list = false + +vim.keymap.set('n', '/', ':Telescope current_buffer_fuzzy_find<cr>', { buffer = vim.api.nvim_get_current_buf() }) diff --git a/.vim/after/ftplugin/gitmessengerpopup.lua b/.vim/after/ftplugin/gitmessengerpopup.lua new file mode 100644 index 0000000..ab4688f --- /dev/null +++ b/.vim/after/ftplugin/gitmessengerpopup.lua @@ -0,0 +1 @@ +vim.keymap.set('n', 'gd', require('internal.commit-preview').under_cursor, { buffer = 0, desc = 'commit preview' }) diff --git a/.vim/after/ftplugin/gitrebase.lua b/.vim/after/ftplugin/gitrebase.lua index e48b296..6b9e5dc 100644 --- a/.vim/after/ftplugin/gitrebase.lua +++ b/.vim/after/ftplugin/gitrebase.lua @@ -1,59 +1,33 @@ -local commit_preview = function() +local function commit_preview() + local beforewin = vim.api.nvim_get_current_win() local commit = vim.api.nvim_get_current_line():match([[ ([0-9a-f]+) ]]) - local result = require('internal.job') - .jobstart({ - command = 'git', - args = { 'show', commit }, - format_title = function(_, _) - return 'git-show' - end, - populate_quickfix = false, - }) - :wait() - :result() - - -- create buffer - local bufnr = vim.api.nvim_create_buf(false, true) - assert(bufnr, 'Failed to create buffer') - vim.api.nvim_buf_set_name(bufnr, commit) - vim.api.nvim_buf_set_option(bufnr, 'filetype', 'git') - -- add lines - vim.api.nvim_buf_set_option(bufnr, 'modifiable', true) - vim.api.nvim_buf_set_lines(bufnr, 0, -1, true, result) - vim.api.nvim_buf_set_option(bufnr, 'modifiable', false) + if not commit then + return + end + require('internal.commit-preview').commit_preview(commit, function(bufnr, winid) + -- keymaps: + local close = function() + pcall(vim.api.nvim_win_close, winid, true) + pcall(vim.api.nvim_buf_delete, bufnr, { force = true }) + end + vim.keymap.set('n', 'q', close, { buffer = bufnr }) - -- create window - local winpos = 'belowright' - local winheight = #result <= 25 and #result or 25 - vim.cmd(string.format('%s %dsplit', winpos, winheight)) - local winid = vim.api.nvim_get_current_win() - -- vim.cmd(string.format("buffer %d", bufnr)) - vim.api.nvim_win_set_buf(winid, bufnr) - vim.cmd('wincmd p') + local goup = function() + vim.api.nvim_set_current_win(beforewin) + vim.cmd('normal k') + vim.cmd('normal cp') + end + vim.keymap.set('n', '<up>', goup, { buffer = bufnr }) + vim.keymap.set('n', '<C-p>', goup, { buffer = bufnr }) - local close = function() - pcall(vim.api.nvim_win_close, winid, true) - pcall(vim.api.nvim_buf_delete, bufnr, { force = true }) - end - -- close with q - vim.keymap.set('n', 'q', close, { buffer = bufnr }) - -- close on CursorMoved - local old_cursor = vim.api.nvim_win_get_cursor(0) - local group = vim.api.nvim_create_augroup('gitcommit_win_' .. winid, {}) - vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, { - group = group, - callback = function() - local cursor = vim.api.nvim_win_get_cursor(0) - if - (old_cursor[1] ~= cursor[1] or old_cursor[2] ~= cursor[2]) - and vim.api.nvim_get_current_win() ~= winid - then - close() - return - end - old_cursor = cursor - end, - }) + local godown = function() + vim.api.nvim_set_current_win(beforewin) + vim.cmd('normal j') + vim.cmd('normal cp') + end + vim.keymap.set('n', '<down>', godown, { buffer = bufnr }) + vim.keymap.set('n', '<C-n>', godown, { buffer = bufnr }) + end) end vim.keymap.set('n', 'cp', commit_preview, { buffer = 0, desc = 'commit preview' }) diff --git a/.vim/after/ftplugin/go.lua b/.vim/after/ftplugin/go.lua index 94eaa0e..cda6a34 100644 --- a/.vim/after/ftplugin/go.lua +++ b/.vim/after/ftplugin/go.lua @@ -5,7 +5,7 @@ vim.keymap.set('n', '<leader>i', function() if not iface or iface == '' then return end - require('misc').word_under_cursor(function(word) + require('internal.cursor').word(function(word) vim.cmd('normal ][o') local args = { 'impl', diff --git a/.vim/after/ftplugin/mail.lua b/.vim/after/ftplugin/mail.lua index 1aa5caf..6e0fa20 100644 --- a/.vim/after/ftplugin/mail.lua +++ b/.vim/after/ftplugin/mail.lua @@ -1,2 +1,4 @@ require('internal.spell') -vim.opt.cursorline = false + +vim.opt_local.cursorline = false +vim.opt_local.commentstring = '> %s' diff --git a/.vim/after/ftplugin/markdown.lua b/.vim/after/ftplugin/markdown.lua index 87fe69d..7e6b22e 100644 --- a/.vim/after/ftplugin/markdown.lua +++ b/.vim/after/ftplugin/markdown.lua @@ -1,4 +1,4 @@ -require('internal.spell') +-- require('internal.spell') vim.opt_local.foldenable = false vim.opt_local.foldlevel = 1 @@ -8,9 +8,7 @@ vim.fn.matchadd('Conceal', '- \\[ \\]\\&- \\zs\\[ ', 0, -1, { conceal = '☐ ' } vim.fn.matchadd('Conceal', '- \\[x\\]\\&- \\zs\\[x', 0, -1, { conceal = '🞕 ' }) vim.fn.matchadd('Conceal', '- \\[[ x]\\zs\\]', 0, -1, { conceal = ' ' }) -vim.keymap.set('n', '<Plug>Markdown_OpenUrlUnderCursor', function() - require('internal.misc').open_under_cursor('url-launcher') -end) +vim.keymap.set('n', '<Plug>Markdown_OpenUrlUnderCursor', vim.ui.open) vim.keymap.set( 'n', @@ -45,31 +43,26 @@ end vim.keymap.set('n', '<space><space>', toggle_checkbox, { desc = 'toggle checkbox', buffer = true }) vim.keymap.set('i', '<c-space>', toggle_checkbox, { desc = 'toggle checkbox', buffer = true }) --- vim.keymap.set('n', '<leader>zn', function() require('zk').new() end, {buffer=true}) --- vim.keymap.set('n', '<leader>zi', function() require('zk').index() end, {buffer=true}) --- vim.cmd [[ command! -nargs=* ZettelkastenNew lua require('zk').new(nil, <f-args>) ]] - -vim.keymap.set('n', 'gt', function() - require('telescope._extensions.todo-comments').exports.todo({ cwd = vim.env.ZK_NOTEBOOK_DIR }) -end, { desc = 'show zk todos', buffer = true }) - -vim.keymap.set('n', 'o', function() - local cursor = vim.api.nvim_win_get_cursor(0) - -- need to decrement the row number here, to account for 0 indexing - local node = vim.treesitter.get_node_at_pos(0, cursor[1] - 1, cursor[2], {}) - while node do - if node:type() == 'list_item' then - local ln = vim.treesitter.get_node_text(node:child(0), 0, {}) - local ln_start = string.match(ln, '^(%d+)%.') - if ln_start ~= nil then - ln = ln:gsub(ln_start, tonumber(ln_start) + 1) - end - vim.api.nvim_buf_set_lines(0, cursor[1], cursor[1], false, { ln }) - vim.api.nvim_feedkeys('jA', 'n', false) - return - end - node = node:parent() - end - - vim.api.nvim_feedkeys('o', 'n', false) -end, { desc = 'smart-o', buffer = true }) +-- vim.keymap.set('n', 'o', function() +-- local cursor = vim.api.nvim_win_get_cursor(0) +-- -- need to decrement the row number here, to account for 0 indexing +-- local node = vim.treesitter.get_node({ +-- bufnr = 0, +-- pos = { cursor[1] - 1, cursor[2] }, +-- }) +-- while node do +-- if node:type() == 'list_item' then +-- local ln = vim.treesitter.get_node_text(node:child(0), 0, {}) +-- local ln_start = string.match(ln, '^(%d+)%.') +-- if ln_start ~= nil then +-- ln = ln:gsub(ln_start, tonumber(ln_start) + 1) +-- end +-- vim.api.nvim_buf_set_lines(0, cursor[1], cursor[1], false, { ln }) +-- vim.api.nvim_feedkeys('jA', 'n', false) +-- return +-- end +-- node = node:parent() +-- end +-- +-- vim.api.nvim_feedkeys('o', 'n', false) +-- end, { desc = 'smart-o', buffer = true }) diff --git a/.vim/after/ftplugin/rust.lua b/.vim/after/ftplugin/rust.lua new file mode 100644 index 0000000..a26bebe --- /dev/null +++ b/.vim/after/ftplugin/rust.lua @@ -0,0 +1 @@ +vim.opt_local.makeprg = [[cargo run]] diff --git a/.vim/after/ftplugin/tex.lua b/.vim/after/ftplugin/tex.lua index 740ad48..bf62d26 100644 --- a/.vim/after/ftplugin/tex.lua +++ b/.vim/after/ftplugin/tex.lua @@ -1,2 +1,8 @@ -vim.opt_local.makeprg = 'latexmk -1 -n %' +local find_doc_root = require('lspconfig.util').root_pattern('Tectonic.toml') +if find_doc_root(vim.fn.expand('%:p:h')) then + vim.opt_local.makeprg = 'latextbx mk -1' +else + vim.opt_local.makeprg = 'latextbx mk -1 %' +end + vim.opt_local.textwidth = 80 diff --git a/.vim/after/ftplugin/todofile.lua b/.vim/after/ftplugin/todofile.lua new file mode 100644 index 0000000..2080d39 --- /dev/null +++ b/.vim/after/ftplugin/todofile.lua @@ -0,0 +1,23 @@ +local function toggle_todo() + local ln, n = vim.api.nvim_get_current_line(), 0 + ln, n = string.gsub(ln, 'TODO', 'DONE', 1) + if n > 0 then + goto set_line + end + ln, n = string.gsub(ln, 'DONE', 'TODO', 1) + if n > 0 then + goto set_line + end + ln, n = string.gsub(ln, '^(-|*) ', '%1 TODO ') + if n > 0 then + goto set_line + end + + goto exit -- skip over set_current_line + + ::set_line:: + vim.api.nvim_set_current_line(ln) + + ::exit:: +end +vim.keymap.set('n', '<space><space>', toggle_todo, { desc = 'toggle todo', buffer = true }) |