From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bastien Subject: Re: do not display certain TAGs in agenda Date: Fri, 24 Jan 2014 22:21:51 +0100 Message-ID: <871tzxm5xs.fsf@bzg.ath.cx> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53853) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W6oCQ-0004fs-JO for emacs-orgmode@gnu.org; Fri, 24 Jan 2014 16:22:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W6oCK-0001sJ-QA for emacs-orgmode@gnu.org; Fri, 24 Jan 2014 16:22:02 -0500 Received: from mail-wg0-x236.google.com ([2a00:1450:400c:c00::236]:36348) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W6oCK-0001rw-J4 for emacs-orgmode@gnu.org; Fri, 24 Jan 2014 16:21:56 -0500 Received: by mail-wg0-f54.google.com with SMTP id x13so3614147wgg.9 for ; Fri, 24 Jan 2014 13:21:54 -0800 (PST) In-Reply-To: (David Belohrad's message of "Fri, 24 Jan 2014 15:33:57 +0100") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: David Belohrad Cc: mailing-list-org-mode --=-=-= Content-Type: text/plain Hi David, David Belohrad 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, --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=org-agenda-remove-tags.patch 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) ?\ ) --=-=-= Content-Type: text/plain -- Bastien --=-=-=--