Simon very kindly wrote this function a couple of years ago when I noted how 
nice it would be if pressing tab on an already-completed unique name would 
write a $ sign and give a drop-down of $ elements.

I'd like to improve the function so that if the completion is a function name, 
then pressing tab adds "()" (preferably leaving the cursor in the brackets)

  
umx_complete_dollar <- function ()  {
    RGUI = as.environment("tools:RGUI")
    RGUI$rcompgen.completion <- function(x) {
        comp <- function(x) {
            utils:::.assignLinebuffer(x)
            utils:::.assignEnd(nchar(x))
            utils:::.guessTokenFromLine()
            utils:::.completeToken()
            utils:::.CompletionEnv[["comps"]]
        }
        res <- unique(comp(x))
        if (nzchar(x) && identical(res, x) && !identical(substr(x, 
            nchar(x), nchar(x) + 1L), "$")) {
            rc <- comp(paste0(x, "$"))
            if (!identical(substr(rc, nchar(rc), nchar(rc) + 
                1L), "$")) 
                res <- rc
        }
        res
    }
}


Also, I added the function to my  ~/.Rprofile, but this function can't execute 
then  ( as.environment("tools:RGUI") fails with  "tools:RGUI is not in the 
search list"

Any clues to improving these? The functionality is worth its weight in gold, 
IMHO.
_______________________________________________
R-SIG-Mac mailing list
R-SIG-Mac@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to