X-Git-Url: http://christophe.rhodes.io/gitweb/?p=swankr.git;a=blobdiff_plain;f=swank.R;h=747696acdee909c21279cc53c190b2c7919c63ed;hp=5fe20bbefe633d6a9f1c1e0009f11e0cef32c9d6;hb=579190b3a2da212458bb12fedbadca6dad37e960;hpb=843d2b6fcbc794e06e2fb5e9b2842175ffcb7ec5 diff --git a/swank.R b/swank.R index 5fe20bb..747696a 100644 --- a/swank.R +++ b/swank.R @@ -377,7 +377,6 @@ computeRestartsForEmacs <- function (sldbState) { } `swank:frame-locals-and-catch-tags` <- function(slimeConnection, sldbState, index) { - str(sldbState$frames) frame <- sldbState$frames[[1+index]] objs <- ls(envir=frame) list(lapply(objs, function(name) { list(quote(`:name`), name, @@ -446,9 +445,16 @@ withRetryRestart <- function(description, expr) { list() } else { filename <- get("filename", srcfile) + ## KLUDGE: what this means is "is the srcfile filename + ## absolute?" + if(substr(filename, 1, 1) == "/") { + file <- filename + } else { + file <- sprintf("%s/%s", srcfile$wd, filename) + } list(list(sprintf("function %s", string), list(quote(`:location`), - list(quote(`:file`), sprintf("%s/%s", srcfile$wd, srcfile$filename)), + list(quote(`:file`), file), list(quote(`:line`), srcref[[2]][[1]], srcref[[2]][[2]]-1), list()))) } @@ -622,3 +628,13 @@ emacsInspect.numeric <- function(numeric) { setwd(directory) `swank:default-directory`(slimeConnection, sldbState) } + +`swank:load-file` <- function(slimeConnection, sldbState, filename) { + source(filename, local=FALSE) + TRUE +} + +`swank:compile-file-for-emacs` <- function(slimeConnection, sldbState, filename, loadp, ...) { + times <- system.time(parse(filename)) + list(quote(`:compilation-result`), list(), TRUE, times[3], substitute(loadp), filename) +}