summary refs log tree commit diff
path: root/.vim/after/ftplugin
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2024-05-15 09:00:31 +0200
committerRobert Günzler <r@gnzler.io>2024-05-15 09:00:31 +0200
commit3dbe74f2eef627e2dc19b79fe06753d5dc09003f (patch)
treeb78d1cdab62cec9ed4bbe35447108547b935ef03 /.vim/after/ftplugin
parent0ab72c1113139c196115c974eadaded449002c32 (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.lua2
-rw-r--r--.vim/after/ftplugin/gitmessengerpopup.lua1
-rw-r--r--.vim/after/ftplugin/gitrebase.lua80
-rw-r--r--.vim/after/ftplugin/go.lua2
-rw-r--r--.vim/after/ftplugin/mail.lua4
-rw-r--r--.vim/after/ftplugin/markdown.lua57
-rw-r--r--.vim/after/ftplugin/rust.lua1
-rw-r--r--.vim/after/ftplugin/tex.lua8
-rw-r--r--.vim/after/ftplugin/todofile.lua23
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 })