emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Remove redundant tags of headlines
@ 2014-03-13 15:36 Sebastien Vauban
  2014-03-13 15:54 ` Bastien
  2014-03-14 12:05 ` Nicolas Richard
  0 siblings, 2 replies; 9+ messages in thread
From: Sebastien Vauban @ 2014-03-13 15:36 UTC (permalink / raw)
  To: emacs-orgmode-mXXj517/zsQ

Hello,

FYI, the code to "Remove redundant tags of headlines" (see
http://orgmode.org/worg/org-hacks.html#sec-1-8-1) is not functioning
anymore.

--8<---------------cut here---------------start------------->8---
(defun dmj/org-remove-redundant-tags ()
  "Remove redundant tags of headlines in current buffer.

A tag is considered redundant if it is local to a headline and
inherited by a parent headline."
  (interactive)
  (when (eq major-mode 'org-mode)
    (save-excursion
      (org-map-entries
       '(lambda ()
          (let ((alltags (split-string (or (org-entry-get (point) "ALLTAGS") "") ":"))
                local inherited tag)
            (dolist (tag alltags)
              (if (get-text-property 0 'inherited tag)
                  (push tag inherited) (push tag local)))
            (dolist (tag local)
              (if (member tag inherited) (org-toggle-tag tag 'off)))))
       t nil))))
--8<---------------cut here---------------end--------------->8---

The problem seems to be that `org-map-entries' return a sequence of
`nil'.

I tried Edebugging it, but Edebug does not jump into the execution of
the anonymous function...

Best regards,
  Seb

-- 
Sebastien Vauban

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Remove redundant tags of headlines
  2014-03-13 15:36 Remove redundant tags of headlines Sebastien Vauban
@ 2014-03-13 15:54 ` Bastien
  2014-03-14 11:31   ` Sebastien Vauban
  2014-03-14 12:05 ` Nicolas Richard
  1 sibling, 1 reply; 9+ messages in thread
From: Bastien @ 2014-03-13 15:54 UTC (permalink / raw)
  To: Sebastien Vauban; +Cc: public-emacs-orgmode-mXXj517/zsQ



Sebastien Vauban <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org>
writes:

> I tried Edebugging it, but Edebug does not jump into the execution of
> the anonymous function...

Just give a name to the anonymous function... and you're back on
edebugging.  :)

-- 
 Bastien

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Remove redundant tags of headlines
  2014-03-13 15:54 ` Bastien
@ 2014-03-14 11:31   ` Sebastien Vauban
  2014-03-14 14:49     ` Bastien
  0 siblings, 1 reply; 9+ messages in thread
From: Sebastien Vauban @ 2014-03-14 11:31 UTC (permalink / raw)
  To: emacs-orgmode-mXXj517/zsQ

Bastien wrote:
>> I tried Edebugging it, but Edebug does not jump into the execution of
>> the anonymous function...
>
> Just give a name to the anonymous function... and you're back on
> edebugging.  :)

OK, of course!  Thanks for the tip.

Back to the problem... The root cause is that, with the following
example:

--8<---------------cut here---------------start------------->8---
#+TITLE:     ECM Inherited tags
#+FILETAGS: :org:

* Test

** TODO Vérifier pourquoi les tags redondants ne sont plus effacés    :FLAGGED:

Lorsqu'ils correspondent à un tag hérité.

*** TODO Test                                                         :FLAGGED:
--8<---------------cut here---------------end--------------->8---

when point is somewhere on the outline-3 heading "TODO Test", the
following expression:

  (org-entry-get (point) "ALLTAGS")

returns

  #(":org:FLAGGED:" 1 4 (inherited t))

IOW, "FLAGGED" is not shown as inherited!  Hence, all the mechanics
which follows never removes it!

Best regards,
  Seb

-- 
Sebastien Vauban

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Remove redundant tags of headlines
  2014-03-13 15:36 Remove redundant tags of headlines Sebastien Vauban
  2014-03-13 15:54 ` Bastien
@ 2014-03-14 12:05 ` Nicolas Richard
  2014-03-14 14:53   ` Bastien
  1 sibling, 1 reply; 9+ messages in thread
From: Nicolas Richard @ 2014-03-14 12:05 UTC (permalink / raw)
  To: Sebastien Vauban; +Cc: public-emacs-orgmode-mXXj517/zsQ



Sebastien Vauban <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org>
> I tried Edebugging it, but Edebug does not jump into the execution of
> the anonymous function...

edebug can only jump to the anonymous function if it knows that it is a
function, which means : don't quote the lambda (or quote using #'). I
fixed it on worg.

(btw, I noticed that worg says
remote: No such file: "/home/emacs/git/worg/org-tutorials/"../code/awk/ical2org.awk" src awk"
when I push to it. I *guess* it comes from
org-tutorials/org-google-sync.org which tries to #+INCLUDE the above,
but I'm unsure how to fix it. I didn't touch that file.)

-- 
Nico.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Remove redundant tags of headlines
  2014-03-14 11:31   ` Sebastien Vauban
@ 2014-03-14 14:49     ` Bastien
  2014-03-14 15:03       ` Sebastien Vauban
  0 siblings, 1 reply; 9+ messages in thread
From: Bastien @ 2014-03-14 14:49 UTC (permalink / raw)
  To: Sebastien Vauban; +Cc: public-emacs-orgmode-mXXj517/zsQ



Hi Sébastien,

Sebastien Vauban <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org>
writes:

>   #(":org:FLAGGED:" 1 4 (inherited t))
>
> IOW, "FLAGGED" is not shown as inherited!

Because it is not inherited, it is present in the headline.

Am I missing something?

> Hence, all the mechanics which follows never removes it!

You mean the mechanics of the function on Worg?

Or is there any real Org bug hidden somewhere here?

-- 
 Bastien

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Remove redundant tags of headlines
  2014-03-14 12:05 ` Nicolas Richard
@ 2014-03-14 14:53   ` Bastien
  0 siblings, 0 replies; 9+ messages in thread
From: Bastien @ 2014-03-14 14:53 UTC (permalink / raw)
  To: Nicolas Richard; +Cc: public-emacs-orgmode-mXXj517/zsQ, Sebastien Vauban



Hi Nicolas,

Nicolas Richard <theonewiththeevillook@yahoo.fr> writes:

> (btw, I noticed that worg says
> remote: No such file: "/home/emacs/git/worg/org-tutorials/"../code/awk/ical2org.awk" src awk"
> when I push to it. I *guess* it comes from
> org-tutorials/org-google-sync.org which tries to #+INCLUDE the above,
> but I'm unsure how to fix it. I didn't touch that file.)

I've created a link to ical2org.awk, including such a big file
looks wrong.  This does not fix the problem, it only circumvent
it.

-- 
 Bastien

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Remove redundant tags of headlines
  2014-03-14 14:49     ` Bastien
@ 2014-03-14 15:03       ` Sebastien Vauban
  2014-03-14 15:28         ` Bastien
  0 siblings, 1 reply; 9+ messages in thread
From: Sebastien Vauban @ 2014-03-14 15:03 UTC (permalink / raw)
  To: emacs-orgmode-mXXj517/zsQ

Hi Bastien,

Bastien wrote:
> Sebastien Vauban writes:
>
>>   #(":org:FLAGGED:" 1 4 (inherited t))
>>
>> IOW, "FLAGGED" is not shown as inherited!
>
> Because it is not inherited, it is present in the headline.
>
> Am I missing something?

From my point of view and the point of that function (IIUC), yes.

Look again:

--8<---------------cut here---------------start------------->8---
#+FILETAGS: :org:

* List of projects
** TODO Project A                                       :FLAGGED:
*** TODO Task 1                                         :FLAGGED:
--8<---------------cut here---------------end--------------->8---

Of course, "FLAGGED" is present in the headline but, at the same time,
it is inherited.

IIUC, the goal of the function written by David was to remove redundant
tags. In the above case, "FLAGGED" should be removed from "Task 1"
because it is superfluous (redundant with its parent entry).

>> Hence, all the mechanics which follows never removes it!
>
> You mean the mechanics of the function on Worg?

Yes, as explicited above.

> Or is there any real Org bug hidden somewhere here?

I'd think that asking for all tags of "Task 1" should output both
a local "FLAGGED" tag and an inherited "FLAGGED" one.

Am I wrong?

Best regards,
  Seb

-- 
Sebastien Vauban

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Remove redundant tags of headlines
  2014-03-14 15:03       ` Sebastien Vauban
@ 2014-03-14 15:28         ` Bastien
       [not found]           ` <87bnx8re93.fsf-E3UqQZAQFPqWIDz0JBNUog@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: Bastien @ 2014-03-14 15:28 UTC (permalink / raw)
  To: Sebastien Vauban; +Cc: public-emacs-orgmode-mXXj517/zsQ



Hi Sébastien,

Sebastien Vauban <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org>
writes:

> ** TODO Project A                                       :FLAGGED:
> *** TODO Task 1                                         :FLAGGED:
>
> Of course, "FLAGGED" is present in the headline but, at the same time,
> it is inherited.

It means Org favors explicit tags over inherited ones when presenting
them through `org-entry-get'.

> IIUC, the goal of the function written by David was to remove redundant
> tags. In the above case, "FLAGGED" should be removed from "Task 1"
> because it is superfluous (redundant with its parent entry).

Can you find when David's function was still functional for you?

> I'd think that asking for all tags of "Task 1" should output both
> a local "FLAGGED" tag and an inherited "FLAGGED" one.

Well, ALLTAGS means all distinct tags for me, and I don't see how
outputting all duplicate tags would be useful.  You'll have to find
another use-case than just David's function to convince me :)

-- 
 Bastien

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Remove redundant tags of headlines
       [not found]           ` <87bnx8re93.fsf-E3UqQZAQFPqWIDz0JBNUog@public.gmane.org>
@ 2014-03-14 16:17             ` Sebastien Vauban
  0 siblings, 0 replies; 9+ messages in thread
From: Sebastien Vauban @ 2014-03-14 16:17 UTC (permalink / raw)
  To: Bastien; +Cc: David Maus,
	public-emacs-orgmode-mXXj517/zsQ-wOFGN7rlS/M9smdsby/KFg



Hi Bastien,

>> ** TODO Project A                                       :FLAGGED:
>> *** TODO Task 1                                         :FLAGGED:
>>
>> Of course, "FLAGGED" is present in the headline but, at the same time,
>> it is inherited.
>
> It means Org favors explicit tags over inherited ones when presenting
> them through `org-entry-get'.

Yes, that's what I thought. That makes sense.

>> IIUC, the goal of the function written by David was to remove redundant
>> tags. In the above case, "FLAGGED" should be removed from "Task 1"
>> because it is superfluous (redundant with its parent entry).
>
> Can you find when David's function was still functional for you?

No, and, honestly, I won't try, because I remember seeing that not
functioning for a very long time, certainly well above 1 year. And so
many things changed in my config (Emacs, Org mode) and in Org mode, that
I'm not sure at all to come back to a previously working state -- if it
did [1].

>> I'd think that asking for all tags of "Task 1" should output both
>> a local "FLAGGED" tag and an inherited "FLAGGED" one.
>
> Well, ALLTAGS means all distinct tags for me, and I don't see how
> outputting all duplicate tags would be useful.

Well, here, it would be useful that ALLTAGS would really report ALL
TAGS... (even if it wasn't its default behavior)

> You'll have to find another use-case than just David's function to
> convince me :)

Then, I won't.  But such a cleaning (in `before-save-hook') is not
possible, then?

Best regards,
  Seb

[1] I can't exclude that my mind would play me tricks.

-- 
Sebastien Vauban

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-03-14 16:17 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-13 15:36 Remove redundant tags of headlines Sebastien Vauban
2014-03-13 15:54 ` Bastien
2014-03-14 11:31   ` Sebastien Vauban
2014-03-14 14:49     ` Bastien
2014-03-14 15:03       ` Sebastien Vauban
2014-03-14 15:28         ` Bastien
     [not found]           ` <87bnx8re93.fsf-E3UqQZAQFPqWIDz0JBNUog@public.gmane.org>
2014-03-14 16:17             ` Sebastien Vauban
2014-03-14 12:05 ` Nicolas Richard
2014-03-14 14:53   ` Bastien

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).