[ESS] feature request : completion of available packages name

Martin Maechler m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Wed Jan 4 10:51:21 CET 2017

>>>>> Samuel BARRETO <samuel.barreto8 using gmail.com>
>>>>>     on Wed, 4 Jan 2017 08:53:10 +0000 writes:

    > Thanks to you all !
    > C-c C-e C-l is quite a time saver indeed !

with thanks to Chuck, indeed.
HOWEVER: I'm discouraging its use in favor of the completion
mechanism below:

Very early in ESS history, i.e., the early '90s, we agreed on

  "The source code is real. The objects are realizations of the source code."

etc, e.g., see at

and in the mean time, with reproducibility and literate
programing "every where", you should have been taught to work
with *.R (or *.Rnw, *.Rmd, ..) scripts rather than doodling away
in the R buffer aka R console. ... which is really what
C-c C-e C-l is about.

Rather you *do* want the correct  require() / library()
function calls in your *source* code, right, as I mentioned:
 "The source code is real ... "

    > And running `rc.settings(ipck = TRUE)` does provide the kind of completion
    > I was thinking of.

    > ESS rocks.

yes indeed, thank you!
In this respect not the least thanks to all the R-side
completion work by Deepayan Sarkar!! 


    > Le mer. 4 janv. 2017 à 08:09, Deepayan Sarkar <deepayan.sarkar using gmail.com> a
    > écrit :

    >> On Wed, Jan 4, 2017 at 1:52 AM, Martin Maechler
    >> <maechler using stat.math.ethz.ch> wrote:
    >> > On Tue, Jan 3, 2017 at 6:30 PM, Samuel BARRETO
    >> > <samuel.barreto8 using gmail.com> wrote:
    >> >> Hi,
    >> >>
    >> >> Do you think it would be difficult to add some kind of completion
    >> backend
    >> >> to complete the package names when typing `library(` ?
    >> >> I was thinking that the list of packages could be populated by calling
    >> >> something like :
    >> >>
    >> >> names(installed.packages()[,2])
    >> >>
    >> >> But I don't know enough elisp to implement it myself…
    >> >
    >> > Don't do it the way Rstudio does (it has very slow startup time, in
    >> > parts of its interface, because it not only wants to know the package
    >> > names of all my many thousand packages in my dozen of libraries in
    >> > .libPaths(), but it also want to prepare all the help pages ... or
    >> > something close to that).
    >> >
    >> > More seriously: We do something like that already in ESS for quite a
    >> > while now.... but I don't recall the details.
    >> > You also may want to give more details about the kind of completion..
    >> > notably as emacs / ESS have quite a few different completion
    >> > possibilities, as we have been told recently here.
    >> Try executing
    >> rc.settings(ipck = TRUE)
    >> in your R session or .Rprofile and see if it works. It should as long
    >> as ESS uses R's completion mechanism.
    >> It does require running installed.packages() to create the cache,
    >> which can be slow the first time for large/NFS libraries, which is why
    >> it's disabled by default.
    >> -Deepayan

    > [[alternative HTML version deleted]]

More information about the ESS-help mailing list