Christophe
Weblog
Wiki
Code
Publications
Music
projects
/
swankr.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
implement `swank:operator-arglist` properly
[swankr.git]
/
swank.R
diff --git
a/swank.R
b/swank.R
index 20311847afef86a62468a50c58b0f1962cc7dc9b..49f73fff2b1dd3e61e4294140a03f31f727252a0 100644
(file)
--- a/
swank.R
+++ b/
swank.R
@@
-348,7
+348,16
@@
sendReplResultFunction <- sendReplResult
}
`swank:operator-arglist` <- function(slimeConnection, sldbState, op, package) {
}
`swank:operator-arglist` <- function(slimeConnection, sldbState, op, package) {
- list()
+ if(!exists(op, envir = globalenv())) {
+ return(list())
+ }
+ funoid <- get(op, envir = globalenv())
+ if(is.function(funoid)) {
+ args <- formals(funoid)
+ paste(sprintf("%s=%s", names(args), args), collapse=", ")
+ } else {
+ list()
+ }
}
`swank:throw-to-toplevel` <- function(slimeConnection, sldbState) {
}
`swank:throw-to-toplevel` <- function(slimeConnection, sldbState) {
@@
-601,12
+610,19
@@
resetInspector <- function(slimeConnection) {
}
inspectObject <- function(slimeConnection, object) {
}
inspectObject <- function(slimeConnection, object) {
+ vectorify <- function(x) {
+ if(is.vector(x)) {
+ x
+ } else {
+ list(x)
+ }
+ }
previous <- slimeConnection$istate
slimeConnection$istate <- new.env()
slimeConnection$istate$object <- object
slimeConnection$istate$previous <- previous
slimeConnection$istate$content <- emacsInspect(object)
previous <- slimeConnection$istate
slimeConnection$istate <- new.env()
slimeConnection$istate$object <- object
slimeConnection$istate$previous <- previous
slimeConnection$istate$content <- emacsInspect(object)
- if(!(
object
%in% slimeConnection$inspectorHistory)) {
+ if(!(
vectorify(object)
%in% slimeConnection$inspectorHistory)) {
slimeConnection$inspectorHistory <- c(slimeConnection$inspectorHistory, object)
}
if(!is.null(slimeConnection$istate$previous)) {
slimeConnection$inspectorHistory <- c(slimeConnection$inspectorHistory, object)
}
if(!is.null(slimeConnection$istate$previous)) {