The output from functions performing printing is sent to the
standard output of the process running swank()
, not to an emacs
stream.
Inspecting something and hitting l
causes the R debugger to pop
up from trying to send NULL
in a sexp to Emacs.
It would be good if we could associate the expressions in the string with a reference to the corresponding source. Unfortunately, emacs only passes the buffer position in bytes (or maybe characters), whereas R’s srcrefs work with lines and columns.
Not in all circumstances (e.g. "£"
is OK) but 1:£
fails in
slime-net-read-or-lose.
I think we can do this by calling .Internal(eval.with.vis(...))
instead of just regular eval()
Not sure yet when it happens, but it makes the terminal browser pop up.
at least in certain conditions
Requires the cwd to be the swankr directory to be able to find swank-presentations and swank-media
Not like ESS, though: that works by looking at the user’s input with a regexp. Use slime-media?
Entering 0 exprs (whitespace or the empty string) at the REPL gives an error from `swank:listener-eval`, which subscripts the parse tree with index 1. (Entering more than one simply ignores all after the first, assuming that they all parse). We should be a bit more like R’s repl, evaluating each of the exprs in turn and treating the results a bit like CL’s multiple values
Logged here so that I don’t forget it if I sort out #9 first: we need to be able to indicate “no repl result please” if we open a new temporary buffer to display the result.
Gets thoroughly confused on completing “read.” because the “.” is treated as a regexp “any character” pattern.
I think there’s an off-by-one in the association between frames and srcrefs. Test case is something like 1+”foo” at the repl, and then hitting “v” on the `swank:listener-eval` frame. Also the arglists seem weird to me; in a call like frob(foo), I would expect to see the value of foo in the locals.
This is a problem not least because it causes all sorts of problems in inspecting swank-internal frames in sldb; test case is 1+”foo”, then RET on the eval(expr, envir, enclos) frame just below `swank:listener-eval`.
org-mode is the future!
sorting out the function regexp at least, but generally reducing dependence might be good.
We declare ourselves capable of handling utf-8-unix encoding, but whether we actually do anything close to being correct is unclear. (Almost certainly not; I suspect we naïvely use nchar() in places). We could either declare our encoding as latin1-unix, or make the server utf8ly correct. To reproduce, simply type “ë” at the repl.
to reproduce: in a fresh emacs, type ?help
They can be made to by passing –interactive to R on startup, but I’m not sure what else that does.
reported by “Philipp Marek” <philipp@marek.priv.at> by private mail.
reported by “Philipp Marek” <philipp@marek.priv.at> by private mail.
To reproduce, C-c I globalenv() RET, or hit RET on environment presentations in the debugger (if presentations are on).
It is very nice in ESS to be able to type df$ TAB and get a completion list of the data frame’s columns. Supporting it in swankr should be really easy.
Local Variables: mode: org; End: