-`swank:simple-completions` <- function(slimeConnection, sldbState, prefix, package) {
- literal2rx <- function(string) {
- ## list of ERE metacharacters from ?regexp
- gsub("([.\\|()[{^$*+?])", "\\\\\\1", string)
+symbolFieldsCompletion <- function(object, prefix, rest) {
+ ## FIXME: this is hacky, ignoring several syntax issues (use of
+ ## and/or necessity for backquoting identifiers: e.g. fields
+ ## containing hyphens)
+ if((dollar <- regexpr("$", rest, fixed=TRUE)) == -1) {
+ matches <- grep(sprintf("^%s", literal2rx(rest)), names(object), value=TRUE)
+ matches <- sprintf("%s$%s", gsub("\\$[^$]*$", "", prefix), matches)
+ returnMatches(matches)
+ } else {
+ if(exists(substr(rest, 1, dollar-1), object)) {
+ symbolFieldsCompletion(get(substr(rest, 1, dollar-1), object), prefix, substr(rest, dollar+1, nchar(rest)))
+ } else {
+ returnMatches(character(0))
+ }