If I follow you correctly, I think you can work the other way around:
select the trees that interest you and compare their paths to the current
one:

If you have some macro like this one:

<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.

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.

Best,
________________
Miguel de  Benito.


On Mon, Oct 1, 2012 at 4:56 PM, Michael Lachmann <lachm...@eva.mpg.de>wrote:

> Hi!
>
> I'm having problems with trees. Where is the best documentation of how
> to handle them?
>
> I'm trying to do the following:
>
> My document uses the fangle package, so it includes in it things like this
> <nf-chunk | name_of_chunk1 | code1 |  cpp | >
> <nf-chunk | name_of_chunk2 | code2 |  cpp | >
>
> What I am trying to calculate is the name of the chunk I am on, or
> that I'm after.
>
> (This means that after or in the 2nd chunk, I want to get
> name_of_chunk2, and in the 1st chunk , or between 1 and 2 I want to
> get name_of_chunk1)
>
> The easiest way I found to do this is to take (cursor-path), and
> first, go over all its possible heads (0...m), and then check if
> (object->string  (car (tree->list( path->tree HEAD-OF-CURSOR_PATH) )) )
> contains "nf-chunk".
> If not, then go up the same heads, and check if (select Tree
> '(nf-chunk)) sees something.
>
> This, in the end will be very complicated....
>
> Is there an easier way to do this? I don't think I'm using 'select',
> trees, and the cursor correctly...
>
> Thanks!
> Michael
>
> --
>
> Michael Lachmann, Max Planck Institute for Evolutionary Anthropology
> Deutscher Platz 6, 04107 Leipzig, Germany.
>
> _______________________________________________
> Texmacs-dev mailing list
> Texmacs-dev@gnu.org
> https://lists.gnu.org/mailman/listinfo/texmacs-dev
>
_______________________________________________
Texmacs-dev mailing list
Texmacs-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/texmacs-dev

Reply via email to