feat: org-agenda cursor na název úkolu (za TODO + prioritou)

This commit is contained in:
2026-02-21 00:01:39 +01:00
parent 184b204a95
commit a881bedbf1

View File

@@ -780,6 +780,39 @@
;; Zaregistruj hook — spustí se před každým exportem
(add-hook 'org-export-before-processing-hook #'my/org-auto-tabularx)
;;
;; Org Agenda: kurzor na název úkolu (za TODO keyword a prioritou)
;; Po každém n/p (nebo j/k v evil mode) přeskočí TODO keyword a [#A] prioritu.
;;
(defun my/org-agenda-goto-task-name (&rest _)
"Přesune kurzor na název úkolu — za TODO keyword a prioritu [#A]."
(when (get-text-property (line-beginning-position) 'org-hd-marker)
(beginning-of-line)
(let* ((bol (point))
(eol (line-end-position))
(todo-end nil)
(pos bol))
;; Najdi konec TODO keyword podle face (org-todo nebo org-agenda-done)
(while (< pos eol)
(let* ((face (get-text-property pos 'face))
(next (or (next-single-property-change pos 'face nil eol) eol)))
(when (and face
(or (and (symbolp face)
(memq face '(org-todo org-agenda-done)))
(and (listp face)
(cl-intersection face '(org-todo org-agenda-done)))))
(setq todo-end next))
(setq pos next)))
;; Přesuň se za TODO keyword a volitelnou prioritu [#X]
(when todo-end
(goto-char todo-end)
(skip-chars-forward " \t")
(when (looking-at "\\[#.\\][ \t]+")
(goto-char (match-end 0)))))))
(advice-add 'org-agenda-next-line :after #'my/org-agenda-goto-task-name)
(advice-add 'org-agenda-previous-line :after #'my/org-agenda-goto-task-name)
;; Volitelně: zapni booktabs styl (horizontal rules v tabulkách)
;; (setq org-latex-tables-booktabs t)