X-Git-Url: http://christophe.rhodes.io/gitweb/?p=swankr.git;a=blobdiff_plain;f=swank.R;h=e9674bc7f175276229aec93e08d386a2375e4664;hp=3ab65ee02f1228d8b2c3423b41d33647f0fe4457;hb=8cfc9d8ac69ca55d48cc615de510c32fddad61da;hpb=8d84cee073ab58c2c858a6aac994a4f88d91ddb4 diff --git a/swank.R b/swank.R index 3ab65ee..e9674bc 100644 --- a/swank.R +++ b/swank.R @@ -533,6 +533,10 @@ emacsInspect <- function(object) { UseMethod("emacsInspect") } +emacsInspect.default <- function(thing) { + c(list(paste("a ", class(thing)[[1]], sep=""), list(quote(`:newline`)))) +} + emacsInspect.list <- function(list) { c(list("a list", list(quote(`:newline`))), mapply(function(name, value) { list(list(quote(`:line`), name, value)) }, @@ -587,3 +591,16 @@ emacsInspect.numeric <- function(numeric) { eval(expr, envir=globalenv()) } } + +`swank:inspect-current-condition` <- function(slimeConnection, sldbState) { + resetInspector(slimeConnection) + inspectObject(slimeConnection, sldbState$condition) +} + +`swank:inspect-frame-var` <- function(slimeConnection, sldbState, frame, var) { + resetInspector(slimeConnection) + frame <- sldbState$frames[[1+frame]] + name <- ls(envir=frame)[[1+var]] + object <- get(name, envir=frame) + inspectObject(slimeConnection, object) +}