X-Git-Url: http://christophe.rhodes.io/gitweb/?p=swankr.git;a=blobdiff_plain;f=swank.R;h=ddd1a0e5b64df12104370a3851e55cf3e9981379;hp=fa910b2abd5d3d918cbaa729ed291df2479e76da;hb=d572642da5a5405c20f54a83e438f95e7d2556d8;hpb=f72481f72e2ef308ed8594ef7421a5824a2c1293 diff --git a/swank.R b/swank.R index fa910b2..ddd1a0e 100644 --- a/swank.R +++ b/swank.R @@ -295,3 +295,18 @@ printToString <- function(val) { quote(`:value`), paste(printToString(eval(parse(text=name), envir=frame)), sep="", collapse="\n")) }), list()) } + +`swank:simple-completions` <- function(io, sldbState, prefix, package) { + ## fails multiply if prefix contains regexp metacharacters + matches <- apropos(sprintf("^%s", prefix), ignore.case=FALSE) + nmatches <- length(matches) + if(nmatches == 0) { + list(list(), "") + } else { + longest <- matches[order(nchar(matches))][1] + while(length(grep(sprintf("^%s", longest), matches)) < nmatches) { + longest <- substr(longest, 1, nchar(longest)-1) + } + list(as.list(matches), longest) + } +}