[Top][All Lists]
[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