--- /dev/null
+`swank:completions` <- function(slimeConnection, sldbState, prefix, package) {
+ bits <- strsplit(prefix, "(?=[A-Z._])", perl=TRUE)[[1]];
+ lrx <- literal2rx(bits)
+ ## FIXME: this includes slightly too much .*, because the strsplit
+ ## seems to split before /and/ after the match.
+ rx <- paste(lrx, collapse=".*")
+ matches <- apropos(sprintf("^%s", rx), ignore.case=FALSE)
+ nmatches <- length(matches)
+ if((nmatches == 0) && ((dollar <- regexpr("$", prefix, fixed=TRUE)) > -1)) {
+
+ symbolFieldsCompletion(globalenv(), prefix, prefix)
+ } else {
+ returnMatches(matches)
+ }
+}