Function: org-agenda-align-tags
org-agenda-align-tags is a byte-compiled function defined in
org-agenda.el.gz.
Signature
(org-agenda-align-tags &optional LINE)
Documentation
Align all tags in agenda items to org-agenda-tags-column.
When optional argument LINE is non-nil, align tags only on the current line.
Source Code
;; Defined in /usr/src/emacs/lisp/org/org-agenda.el.gz
(defun org-agenda-align-tags (&optional line)
"Align all tags in agenda items to `org-agenda-tags-column'.
When optional argument LINE is non-nil, align tags only on the
current line."
(let ((inhibit-read-only t)
(org-agenda-tags-column (if (eq 'auto org-agenda-tags-column)
(- (window-max-chars-per-line))
org-agenda-tags-column))
(end (and line (line-end-position)))
l c)
(org-fold-core-ignore-modifications
(save-excursion
(goto-char (if line (line-beginning-position) (point-min)))
(while (re-search-forward org-tag-group-re end t)
(add-text-properties
(match-beginning 1) (match-end 1)
(list 'face (delq nil (let ((prop (get-text-property
(match-beginning 1) 'face)))
(or (listp prop) (setq prop (list prop)))
(if (memq 'org-tag prop)
prop
(cons 'org-tag prop))))))
(setq l (string-width (match-string 1))
c (if (< org-agenda-tags-column 0)
(- (abs org-agenda-tags-column) l)
org-agenda-tags-column))
(goto-char (match-beginning 1))
(delete-region (save-excursion (skip-chars-backward " \t") (point))
(point))
(insert (org-add-props
(make-string (max 1 (- c (current-column))) ?\s)
(plist-put (copy-sequence (text-properties-at (point)))
'face nil))))
(goto-char (point-min))
(org-font-lock-add-tag-faces (point-max))))))