loading...

Returns names of objects/arguments/namespaces matching a code fragment.

completion(
  code,
  pos = nchar(code),
  min.length = 2,
  print = FALSE,
  types = c("default", "scintilla"),
  addition = FALSE,
  sort = TRUE,
  what = c("arguments", "functions", "packages"),
  description = FALSE,
  max.fun = 100,
  skip.used.args = TRUE,
  sep = "\n",
  field.sep = "\t",
  name.or.addition = c("name", "addition", "both")
)

Arguments

code

A partial R code to be completed.

pos

The position of the cursor in this code.

min.length

The minimal length in characters of code required before the completion list is calculated.

print

Logical, print result and return invisibly. See details.

types

A named list giving names of types. Set to NA to give only names. See details.

addition

Should only addition string be returned?

sort

Do we sort the list of completions alphabetically?

what

What are we looking for? Allow to restrict search for faster calculation.

description

Do we describe items in the completion list (could be slow)?

max.fun

In the case where we describe items, the maximum number of functions to process (if longer, no description is returned for function) because it can be very slow otherwise.

skip.used.args

Logical, if completion is within function arguments, should the already used named arguments be omitted?

sep

The separator to use between returned items.

field.sep

Character string to separate fields for each entry.

name.or.addition

Should we return the completion name, addition string, or both?

Value

If types == NA and description = FALSE, a character vector giving the completions, otherwise a data frame with two columns: 'completion', and 'type' when description = FALSE, or with four columns: 'completion', 'type', 'desc' and 'context' when description = TRUE. If name.or.addition == 'both', an 'addition' column is also returned.
Attributes:
attr(, "token") - a completed token.
attr(, "triggerPos") - number of already typed characters.
attr(, "fguess") - name of guessed function.
`attr(, "isFirstArg")“ - is this a first argument?

Details

The completion list is context-dependent, and it is calculated as if the code was entered at the command line.

If the code ends with $ or [[, then the function look for items in a list or data.frame whose name is the last identifier.

If the code ends with @, then the function look for slots of the corresponding S4 object.

If the code ends with ::, then it looks for objects in a namespace.

If the code ends with a partial identifier name, the function returns all matching keywords visible from .GlobalEnv.

If the code is empty or parses into an empty last token, the list of objects currently in the global environment is returned.

Note

Take care: depending on the context, the completion list could be incorrect (but it should work for code entered at the command line). For instance, inside a function call, the context is very different, and arguments and local variables should be returned instead. This may be implemented in the future, but for now, we focus on completion that should be most useful for novice useRs that are using R expressions entered one after the other at the R console or in a script (and considering the script is run or sourced line after line in R).

There are other situations where the completion can be calculated, see the help of rc.settings().

If print == TRUE, results are returned invisibly, and printed in a form: triggerPos newline completions separated by sep.

If types are supplied, a completion will consist of name and type, separated by type.sep. types may me a vector of length 5, giving the type codes for "function", "variable", "environment", "argument" and "keyword". If types == "default", above type names are given; types == "scintilla" will give numeric codes that can be used with "scintilla.autoCShow" function (e.g., with the SciViews-K Komodo Edit plugin).

See also

Author

Philippe Grosjean phgrosjean@sciviews.org & Kamil Barton kamil.barton@uni-wuerzburg.de

Examples

# A data frame
data(iris)
completion("item <- iris$")
#>          completion     type
#> 3 iris$Petal.Length variable
#> 4  iris$Petal.Width variable
#> 1 iris$Sepal.Length variable
#> 2  iris$Sepal.Width variable
#> 5      iris$Species variable
completion("item <- iris[[")
#>             completion     type
#> 3 iris[["Petal.Length" variable
#> 4  iris[["Petal.Width" variable
#> 1 iris[["Sepal.Length" variable
#> 2  iris[["Sepal.Width" variable
#> 5      iris[["Species" variable

# An S4 object
setClass("track", representation(x = "numeric", y = "numeric"))
t1 <- new("track", x = 1:20, y = (1:20)^2)
completion("item2 <- t1@")
#>   completion     type
#> 1        t1@ variable

# A namespace
completion("utils::", description = TRUE)
#>                                       completion     type desc context
#> 141                              utils::.AtNames variable        utils
#> 45                           utils::.DollarNames variable        utils
#> 189                     utils::.RtangleCodeLabel variable        utils
#> 202                            utils::.S3methods variable        utils
#> 117                              utils::.checkHT variable        utils
#> 10                                utils::.romans variable        utils
#> 72                                      utils::? variable        utils
#> 76                               utils::RShowDoc variable        utils
#> 35                            utils::RSiteSearch variable        utils
#> 146                                 utils::Rprof variable        utils
#> 105                              utils::Rprofmem variable        utils
#> 194                               utils::Rtangle variable        utils
#> 124                         utils::RtangleFinish variable        utils
#> 216                        utils::RtangleRuncode variable        utils
#> 95                           utils::RtangleSetup variable        utils
#> 127                       utils::RtangleWritedoc variable        utils
#> 89                      utils::RweaveChunkPrefix variable        utils
#> 207                     utils::RweaveEvalWithOpt variable        utils
#> 136                           utils::RweaveLatex variable        utils
#> 185                     utils::RweaveLatexFinish variable        utils
#> 173                    utils::RweaveLatexOptions variable        utils
#> 148                      utils::RweaveLatexSetup variable        utils
#> 29                    utils::RweaveLatexWritedoc variable        utils
#> 85                          utils::RweaveTryStop variable        utils
#> 66                                utils::Stangle variable        utils
#> 39                                 utils::Sweave variable        utils
#> 5                             utils::SweaveHooks variable        utils
#> 135                        utils::SweaveSyntConv variable        utils
#> 110                     utils::SweaveSyntaxLatex variable        utils
#> 109                     utils::SweaveSyntaxNoweb variable        utils
#> 152                             utils::URLdecode variable        utils
#> 230                             utils::URLencode variable        utils
#> 59                                   utils::View variable        utils
#> 228                                 utils::adist variable        utils
#> 44                                  utils::alarm variable        utils
#> 106                               utils::apropos variable        utils
#> 12                               utils::aregexec variable        utils
#> 203                          utils::argsAnywhere variable        utils
#> 17                              utils::as.person variable        utils
#> 118                         utils::as.personList variable        utils
#> 108                         utils::as.relistable variable        utils
#> 9                                utils::as.roman variable        utils
#> 104                           utils::asDateBuilt variable        utils
#> 52                               utils::askYesNo variable        utils
#> 19                                 utils::aspell variable        utils
#> 73                 utils::aspell_package_C_files variable        utils
#> 123                utils::aspell_package_R_files variable        utils
#> 214               utils::aspell_package_Rd_files variable        utils
#> 24               utils::aspell_package_vignettes variable        utils
#> 164 utils::aspell_write_personal_dictionary_file variable        utils
#> 23                    utils::assignInMyNamespace variable        utils
#> 51                      utils::assignInNamespace variable        utils
#> 163                    utils::available.packages variable        utils
#> 64                               utils::bibentry variable        utils
#> 96                              utils::browseEnv variable        utils
#> 77                              utils::browseURL variable        utils
#> 181                       utils::browseVignettes variable        utils
#> 20                             utils::bug.report variable        utils
#> 21                         utils::capture.output variable        utils
#> 3                            utils::changedFiles variable        utils
#> 94                              utils::charClass variable        utils
#> 65                              utils::checkCRAN variable        utils
#> 162                      utils::chooseBioCmirror variable        utils
#> 186                      utils::chooseCRANmirror variable        utils
#> 8                                utils::citEntry variable        utils
#> 57                              utils::citFooter variable        utils
#> 120                             utils::citHeader variable        utils
#> 119                              utils::citation variable        utils
#> 210                                  utils::cite variable        utils
#> 111                            utils::citeNatbib variable        utils
#> 47                           utils::close.socket variable        utils
#> 227                               utils::clrhash variable        utils
#> 169                                 utils::combn variable        utils
#> 155                        utils::compareVersion variable        utils
#> 229                           utils::contrib.url variable        utils
#> 156                          utils::count.fields variable        utils
#> 61                            utils::create.post variable        utils
#> 93                                   utils::data variable        utils
#> 115                            utils::data.entry variable        utils
#> 176                             utils::dataentry variable        utils
#> 188                                    utils::de variable        utils
#> 132                              utils::de.ncols variable        utils
#> 191                            utils::de.restore variable        utils
#> 113                              utils::de.setup variable        utils
#> 78                              utils::debugcall variable        utils
#> 36                               utils::debugger variable        utils
#> 37                                   utils::demo variable        utils
#> 87                          utils::download.file variable        utils
#> 183                     utils::download.packages variable        utils
#> 150                           utils::dump.frames variable        utils
#> 159                                  utils::edit variable        utils
#> 83                                  utils::emacs variable        utils
#> 218                               utils::example variable        utils
#> 133                             utils::file.edit variable        utils
#> 168                          utils::fileSnapshot variable        utils
#> 179                             utils::file_test variable        utils
#> 172                                  utils::find variable        utils
#> 122                        utils::findCRANmirror variable        utils
#> 70                            utils::findLineNum variable        utils
#> 60                            utils::findMatches variable        utils
#> 212                                   utils::fix variable        utils
#> 2                          utils::fixInNamespace variable        utils
#> 221                         utils::flush.console variable        utils
#> 149                              utils::formatOL variable        utils
#> 190                              utils::formatUL variable        utils
#> 165                           utils::getAnywhere variable        utils
#> 143                        utils::getCRANmirrors variable        utils
#> 226                      utils::getFromNamespace variable        utils
#> 147                          utils::getParseData variable        utils
#> 139                          utils::getParseText variable        utils
#> 100                           utils::getS3method variable        utils
#> 107                       utils::getSrcDirectory variable        utils
#> 177                        utils::getSrcFilename variable        utils
#> 220                        utils::getSrcLocation variable        utils
#> 205                             utils::getSrcref variable        utils
#> 31                      utils::getTxtProgressBar variable        utils
#> 80                                utils::gethash variable        utils
#> 196                               utils::glob2rx variable        utils
#> 62                        utils::globalVariables variable        utils
#> 30                                utils::hasName variable        utils
#> 125                               utils::hashtab variable        utils
#> 144                                  utils::head variable        utils
#> 58                            utils::head.matrix variable        utils
#> 137                                  utils::help variable        utils
#> 43                           utils::help.request variable        utils
#> 204                           utils::help.search variable        utils
#> 232                            utils::help.start variable        utils
#> 4                                 utils::history variable        utils
#> 166                            utils::hsearch_db variable        utils
#> 50                    utils::hsearch_db_concepts variable        utils
#> 75                    utils::hsearch_db_keywords variable        utils
#> 201                      utils::install.packages variable        utils
#> 7                      utils::installed.packages variable        utils
#> 79                             utils::is.hashtab variable        utils
#> 55                          utils::is.relistable variable        utils
#> 154                            utils::isS3method variable        utils
#> 38                         utils::isS3stdGeneric variable        utils
#> 54                          utils::limitedLabels variable        utils
#> 88                            utils::loadhistory variable        utils
#> 145                       utils::localeToCharset variable        utils
#> 27                                 utils::ls.str variable        utils
#> 208                               utils::lsf.str variable        utils
#> 18                             utils::maintainer variable        utils
#> 224                    utils::make.packages.html variable        utils
#> 91                            utils::make.socket variable        utils
#> 206             utils::makeRweaveLatexCodeRunner variable        utils
#> 222                               utils::maphash variable        utils
#> 25                           utils::memory.limit variable        utils
#> 131                           utils::memory.size variable        utils
#> 71                                   utils::menu variable        utils
#> 67                                utils::methods variable        utils
#> 160                           utils::mirror2html variable        utils
#> 41                             utils::modifyList variable        utils
#> 213                          utils::new.packages variable        utils
#> 32                                   utils::news variable        utils
#> 40                                    utils::nsl variable        utils
#> 153                               utils::numhash variable        utils
#> 84                            utils::object.size variable        utils
#> 74                           utils::old.packages variable        utils
#> 140                             utils::osVersion variable        utils
#> 130                      utils::package.skeleton variable        utils
#> 6                             utils::packageDate variable        utils
#> 178                    utils::packageDescription variable        utils
#> 195                           utils::packageName variable        utils
#> 170                         utils::packageStatus variable        utils
#> 116                        utils::packageVersion variable        utils
#> 174                                  utils::page variable        utils
#> 26                                 utils::person variable        utils
#> 167                            utils::personList variable        utils
#> 234                                  utils::pico variable        utils
#> 217                        utils::process.events variable        utils
#> 138                                utils::prompt variable        utils
#> 42                             utils::promptData variable        utils
#> 46                           utils::promptImport variable        utils
#> 192                         utils::promptPackage variable        utils
#> 126                          utils::rc.getOption variable        utils
#> 225                            utils::rc.options variable        utils
#> 231                           utils::rc.settings variable        utils
#> 103                             utils::rc.status variable        utils
#> 198                              utils::read.DIF variable        utils
#> 34                               utils::read.csv variable        utils
#> 48                              utils::read.csv2 variable        utils
#> 53                             utils::read.delim variable        utils
#> 28                            utils::read.delim2 variable        utils
#> 121                          utils::read.fortran variable        utils
#> 112                              utils::read.fwf variable        utils
#> 171                           utils::read.socket variable        utils
#> 151                            utils::read.table variable        utils
#> 128                      utils::readCitationFile variable        utils
#> 211                               utils::recover variable        utils
#> 161                                utils::relist variable        utils
#> 22                                utils::remhash variable        utils
#> 184                       utils::remove.packages variable        utils
#> 114                          utils::removeSource variable        utils
#> 16                                  utils::rtags variable        utils
#> 199                           utils::savehistory variable        utils
#> 209                           utils::select.list variable        utils
#> 134                           utils::sessionInfo variable        utils
#> 182                         utils::setBreakpoint variable        utils
#> 158                       utils::setRepositories variable        utils
#> 81                      utils::setTxtProgressBar variable        utils
#> 68                                utils::sethash variable        utils
#> 129                                 utils::stack variable        utils
#> 215                                   utils::str variable        utils
#> 102                            utils::strOptions variable        utils
#> 14                             utils::strcapture variable        utils
#> 90                           utils::summaryRprof variable        utils
#> 11                   utils::suppressForeignCheck variable        utils
#> 82                                   utils::tail variable        utils
#> 99                            utils::tail.matrix variable        utils
#> 157                                   utils::tar variable        utils
#> 223                             utils::timestamp variable        utils
#> 180                              utils::toBibtex variable        utils
#> 56                                utils::toLatex variable        utils
#> 13                         utils::txtProgressBar variable        utils
#> 69                           utils::type.convert variable        utils
#> 33                                utils::typhash variable        utils
#> 86                            utils::undebugcall variable        utils
#> 197                               utils::unstack variable        utils
#> 98                                  utils::untar variable        utils
#> 233                                 utils::unzip variable        utils
#> 97                        utils::update.packages variable        utils
#> 187                               utils::upgrade variable        utils
#> 142                              utils::url.show variable        utils
#> 63                                     utils::vi variable        utils
#> 200                              utils::vignette variable        utils
#> 219                           utils::warnErrList variable        utils
#> 175                             utils::write.csv variable        utils
#> 193                            utils::write.csv2 variable        utils
#> 1                            utils::write.socket variable        utils
#> 101                           utils::write.table variable        utils
#> 92                                  utils::xedit variable        utils
#> 15                                 utils::xemacs variable        utils
#> 49                                    utils::zip variable        utils

# A partial identifier
completion("item3 <- va", description = TRUE)
#>       completion     type                                            desc
#> 1       validEnc function  Check if a Character Vector is Validly Encoded
#> 2    validObject function                  Test the Validity of an Object
#> 3 validSlotNames function        Utilities for Managing Class Definitions
#> 4      validUTF8 function  Check if a Character Vector is Validly Encoded
#> 5         vapply function          Apply a Function over a List or Vector
#> 6            var function Correlation, Variance and Covariance (Matrices)
#> 7       var.test function                 F Test to Compare Two Variances
#> 8 variable.names function        Case and Variable Names of Fitted Models
#> 9        varimax function            Rotation Methods for Factor Analysis
#>   context
#> 1    base
#> 2 methods
#> 3 methods
#> 4    base
#> 5    base
#> 6   stats
#> 7   stats
#> 8   stats
#> 9   stats

# Otherwise, a list with the content of .GlobalEnv
completion("item4 <- ")
#>   completion     type
#> 1       iris variable

# TODO: directory and filename completion!
rm(iris, t1)
#> Warning: object 'iris' not found