emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] do not display certain TAGs in agenda


From: David Belohrad
Subject: Re: [O] do not display certain TAGs in agenda
Date: Tue, 28 Jan 2014 23:09:18 +0100
User-agent: Notmuch/0.17+15~gb65ca8e (http://notmuchmail.org) Emacs/24.3.50.1 (x86_64-unknown-linux-gnu)

fantastic Bastien.
thanks, it works
.d.

Bastien <address@hidden> writes:

> Hi David,
>
> David Belohrad <address@hidden> writes:
>
>> Now, tags MARS, 2013 and REFILABLE are 'common' tags I use when
>> filtering for them, but generally I don't want to see them in the
>> agenda. I'd like to see only tags starting with '#' or '@' as those
>> identify to me projects and people involved. If I would be able to do
>> it, my agenda view would become less messy.
>>
>> Is this possible?
>
> See `org-agenda-hide-tags-regexp'.
>
> If you want to hide "write" and "read",
> you can set it like this
>
> (setq org-agenda-hide-tags-regexp
>    (regexp-opt '("write" "read")))
>
> I also attach a patch that extends `org-agenda-remove-tags'
> to accept a list of tags to remove.  This is a first step
> in removing org-agenda-hide-tags-regexp, as I think both
> options are somewhat redundant and we could make the users'
> life easier here.
>
> If other can test it and say if they use one of these options,
> that'd be nice.
>
> HTH,
>
> diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
> index 84b2a76..15d776f 100644
> --- a/lisp/org-agenda.el
> +++ b/lisp/org-agenda.el
> @@ -1845,14 +1845,16 @@ Nil means don't hide any tags."
>         (string :tag "Regexp   ")))
>  
>  (defcustom org-agenda-remove-tags nil
> -  "Non-nil means remove the tags from the headline copy in the agenda.
> +  "Non-nil means remove tags from the headline in the agenda.
>  When this is the symbol `prefix', only remove tags when
> -`org-agenda-prefix-format' contains a `%T' specifier."
> +`org-agenda-prefix-format' contains a `%T' specifier.
> +When this is a list, only remove the listed tags."
>    :group 'org-agenda-line-format
>    :type '(choice
>         (const :tag "Always" t)
> -       (const :tag "Never" nil)
> -       (const :tag "When prefix format contains %T" prefix)))
> +       (repeat (string :tag "Remove this tag"))
> +       (const :tag "When prefix format contains %T" prefix)
> +       (const :tag "Never" nil)))
>  
>  (org-defvaralias 'org-agenda-remove-tags-when-in-prefix
>    'org-agenda-remove-tags)
> @@ -3705,7 +3707,9 @@ generating a new one."
>         (while (org-activate-plain-links (point-max))
>           (add-text-properties (match-beginning 0) (match-end 0)
>                                '(face org-link))))
> -     (unless (eq org-agenda-remove-tags t)
> +     (unless (or (eq org-agenda-remove-tags t)
> +                 (and (listp org-agenda-remove-tags)
> +                      (stringp (car org-agenda-remove-tags))))
>         (org-agenda-align-tags))
>       (unless org-agenda-with-colors
>         (remove-text-properties (point-min) (point-max) '(face nil)))
> @@ -6529,8 +6533,13 @@ Any match of REMOVE-RE will be removed from TXT."
>                           txt)
>         ;; Tags are in the string
>         (if (or (eq org-agenda-remove-tags t)
> +               (and (symbolp org-agenda-remove-tags)
> +                    org-prefix-has-tag)
>                 (and org-agenda-remove-tags
> -                    org-prefix-has-tag))
> +                    (let ((case-fold-search t))
> +                      (save-match-data
> +                        (string-match (regexp-opt org-agenda-remove-tags)
> +                                      (match-string 0 txt))))))
>             (setq txt (replace-match "" t t txt))
>           (setq txt (replace-match
>                      (concat (make-string (max (- 50 (length txt)) 1) ?\ )
>
> -- 
>  Bastien



reply via email to

[Prev in Thread] Current Thread [Next in Thread]