[R-SIG-Mac] enhance completion function to add () as well as $ on tab
Simon Urbanek
@imon@urb@nek @ending from R-project@org
Mon Oct 1 16:44:09 CEST 2018
Tim,
if you want to experiemnt with this, the source for that function is in
/Applications/R.app/Contents/Resources/GUI-tools.R
and I will certainly entertain patches.
As for .Rprofile, it is run before the GUI adds its tools to the search path so you can't modify it there.
Cheers,
Simon
> On Oct 1, 2018, at 9:57 AM, Tim Bates <timothy.c.bates using gmail.com> wrote:
>
> 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 using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>
More information about the R-SIG-Mac
mailing list