texmacs-dev
[Top][All Lists]
Advanced

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

Re: [Texmacs-dev] trees


From: Michael Lachmann
Subject: Re: [Texmacs-dev] trees
Date: Tue, 2 Oct 2012 11:29:27 +0200

Thank you!


On 1 October 2012 20:29, Miguel de Benito Delgado
<address@hidden> wrote:

> <assign|nf-chunk|<macro|name|code|arg|This is chunk: <arg|name>. It has
> second argument: <arg|code>>>
>
> Then, with
>
>   (select (buffer-tree) '(:* nf-chunk 0))
>
> you get the list of all names of all occurrences of such macro in your
> document. Since trees remember their paths, you can now use tree->path on
> each element of that list and compare with the cursor-path. You may also
> want to check the macro with-innermost in the documentation which will
> traverse the tree recursively upwards looking for a given tag.

Thank you! That would work.

I still don't understand trees and select...

I tried to select all nf-chunks that have name1 as the second
argument, and didn't manage to do
that... (or maybe I need to manually scan through select on nf-chunk?)

I also didn't totally manage to recreate what the documentation says.
:#n doesn't seem to work.
For example, the documentation (utils-match.en.tm) says:
--
Example 1. The tree
(define t '(foo (bar "x") (bar "y") (option "z")))

matches the pattern (foo (:repeat (bar :#1)) :*), but not (foo
(:repeat (bar 'x)) :*). The call (match t '(foo 'x 'y :*)) will return
(((x . (bar "x")) (y . (bar "y")))).
--
But when I do:
(define t '(foo (bar "x") (bar "y") (option "z")))
(select t '(foo (:repeat (bar :#1)) :*))
I get read-error, because of the :#1, I think.

thanks!
Michael


>
> However, you have the choice of redefining your nf-chunk macro to set an
> environment variable (say, "current-nf-chunk" to the value you want, then
> read that variable at any point in your document to decide where you are.
>

Oh, yes - that is much better!

Michael



reply via email to

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