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