If you need rtags() in R to give you an output, I use:
On 12 November 2010 02:32, Nick Treleaven <nick.treleaven@btinternet.com> wrote:Bah missed it :-)
> On Thu, 11 Nov 2010 09:11:30 +1100
> Lex Trotman <elextr@gmail.com> wrote:
>
>> > However, even if geany -g worked on .R files, the approach would be
>> > difficult to apply in practice. It requires the user to specify .R
>> > files, and given the structure of R packages this could be a quickly
>> > become tedious. It would have been much easier if Geany accepted a
>> > path in which it could recursively scan (and parse) R files. The
>> > rtags() function can do that, so it might make sense to find a
>> > conversion route for etags files.
>> >
>>
>> Whats the structure of R packages?
>>
>> Presuming from the above that it is lot of files in nested directories
>> you could use find to run geany -g on them all. Whilst that gives you
>> lots of tag files to open, I don't expect it to be too much slower
>> than one huge file.
>>
>> Otherwise patches are welcome.
>
> I'm not sure that reimplementing Unix find is something Geany should be
> doing really. But documenting how to do that in the manual would
> be a good idea.
>
> Supporting CTags format is something on the TODO list.
>
> You can 'see' the format in tagmanager/tm_tag.c in the tm_tag_write()
> function. That is just called repeatedly for each tag entry in the file.
The R source reveals
write.etags <-
function(src,
tokens, startlines, lines, nchars,
...,
shorten.lines = c("token", "simple", "none"))
{
## extra 1 for newline
shorten.lines <- match.arg(shorten.lines)
offsets <- (cumsum(nchars + 1L) - (nchars + 1L))[startlines]
lines <-
switch(shorten.lines,
none = lines,
simple = sapply(strsplit(lines, "function", fixed =
TRUE), "[", 1),
token = mapply(shorten.to.string, lines, tokens))
tag.lines <-
paste(sprintf("%s\x7f%s\x01%d,%d",
lines, tokens, startlines,
as.integer(offsets)),
collapse = "\n")
## simpler format: tag.lines <- paste(sprintf("%s\x7f%d,%d",
lines, startlines, as.integer(offsets)), collapse = "\n")
tagsize <- nchar(tag.lines, type = "bytes") + 1L
cat("\x0c\n", src, ",", tagsize, "\n", tag.lines, "\n", sep = "", ...)
}
So someone who reads C and R can write a converter :-)
Cheers
Lex
>
> Nick
> _______________________________________________
> Geany-devel mailing list
> Geany-devel@uvena.de
> http://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
>
_______________________________________________
Geany-devel mailing list
Geany-devel@uvena.de
http://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel