If you need rtags() in R to give you an output, I use:
rtags(path = "/path/to/R/library/base", recursive = T, ofile = "/home/whatever.tags")
On Thu, Nov 11, 2010 at 4:45 PM, Lex Trotman elextr@gmail.com wrote:
On 12 November 2010 02:32, Nick Treleaven nick.treleaven@btinternet.com wrote:
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.
Bah missed it :-)
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