- May 01, 2012
-
-
Christophe Rhodes authored
I don't yet know what's right, but it's fairly nonsensical to have "[1] " prepending every label and value, so use prin1ToString
-
- Apr 29, 2012
-
-
Christophe Rhodes authored
In the process, implement looking up foo$bar$baz, and passing those completions back. It's not completely robust to somewhat exotic syntax, as it assumes that the text being completed can be used directly as character vectors naming objects or fields; it is good enough to get started, and now a lot less annoying to use (particularly when lots of fields have underscores in them...)
-
- Apr 24, 2012
-
-
Christophe Rhodes authored
Useful both for me, to track what slime version is most likely to be maximally compatible, and for SLIMV users, which dispatch on the version to know whether the protocol is byte-count-based or character-count-based.
-
Christophe Rhodes authored
Now that slime-operator-at-point is overrideable, I can even test this from within Emacs -- but thanks to Philipp Marek for implementing this in his SLIMV-based environment first.
-
- Apr 23, 2012
-
-
Christophe Rhodes authored
%in% needs a `vector' first argument, so make it so, listifying anything that isn't already a vector. (Note: there seem to be plenty of non-vector first arguments that work, such as as.Date("2012-01-01"), which returns FALSE to is.vector() -- but the new code seems to get that right anyway, based on very limited testing.
-
- Dec 15, 2011
-
-
Christophe Rhodes authored
Check for a zero-element character vector return from readChar. (This is not documented as the EOF return value, no, but it makes sense). Also commit bug reports #18 and #19, and some README rearrangement.
-
- Dec 09, 2011
-
-
Christophe Rhodes authored
Calculate the length of the output to emacs using nchar(type="bytes") This makes help files sort-of work again
-
Christophe Rhodes authored
Allows slime-repl to start again. I've said "utf-8-unix" but that is almost certainly a lie; I have no real idea how R handles encodings of text. Simply passing in "ë" to the R slime repl breaks things without too much effort.
-
- Oct 23, 2011
-
-
Christophe Rhodes authored
This is important because e.g. the repl evaluation happens in the global environment, so errors on code called from the repl will pull up a backtrace with that evaluation frame, which can be inspected for locals. But printing out all the locals is a hugely expensive and not helpful thing to do.
-
Christophe Rhodes authored
editing thinko: need tmp$value (not just value)
-
- Sep 19, 2011
-
-
Christophe Rhodes authored
tryCatch is R's handler-case. (Spent some time wondering why withCallingHandlers wasn't working, but that's handler-bind.)
-
- Sep 13, 2011
-
-
Christophe Rhodes authored
otherwise extended regexp metacharacters, particularly ".", get interpreted as those metacharacters rather than literals. (bug #12)
-
- Sep 10, 2011
-
-
Christophe Rhodes authored
It's easy really; just iterate over expressions. Resolves bug #10.
-
Christophe Rhodes authored
Makes C-c C-r substantially less painful, and also produces slightly fewer surprises at the REPL. (resolves #5)
-
- Aug 20, 2011
-
-
Christophe Rhodes authored
depends on swank.R itself being source()d with chdir=TRUE, but doesn't break any previously-working use case.
-
- Apr 06, 2011
-
-
Christophe Rhodes authored
There's a race condition, I think, in between writing the socket port and running the socket server; it might be as simple as reordering the writing and the socket opening, but strange things happened once when I did that.
-
Christophe Rhodes authored
Because of our vaguely dodgy heuristic for finding the "defun" to evaluate, C-c C-c is not terribly useful. This allows at least C-c C-r to be used without thinking.
-
Christophe Rhodes authored
also retain source information in swank:load-file for maximum emacs goodness.
-
Christophe Rhodes authored
Parse them into TRUE and FALSE in the lisp->R translator
-
Christophe Rhodes authored
-
Christophe Rhodes authored
-
- Oct 08, 2010
-
-
Christophe Rhodes authored
This fixes bug #1. It is somewhat on the risky side given that there are current known protocol problems in the presence of non-ASCII encodings, but it does make working in the slime repl much more pleasant.
-
Christophe Rhodes authored
Wow, this was hard. parse() constructs a vector with mode "expression", consisting of multiple, possibly nested calls. Scattered throughout this structure are srcrefs with absolute locations. This means that we need to walk the parsed data structure and adjust every srcref that we can find, giving it an offset based on the location information passed to compile-string-for-emacs (which requires bleeding-edge 2010-10-08 slime, because earlier versions don't pass line/column information in the position argument). But we can't simply adjust the "srcref" attribute on our parsed data structure, because R tries very hard to be pure. Instead we need to return a copy with the right modifications (but preserving everything else of importance). It's straightforward once you know how, but there were many painful missteps to get to this point. Still, now M-. works on function names assigned with C-c C-c in source buffers.
-
- Oct 07, 2010
-
-
Christophe Rhodes authored
In particular, include enough of a kludge to be able to handle both relative and absolute paths.
-
Christophe Rhodes authored
-
Christophe Rhodes authored
Firstly, only parse, don't source, as that seems to be the protocol (the emacs side is responsible for requesting a load if desired). Secondly, the protocol is also to return a compilation-result structure rather than just TRUE, so do that too.
-
- Oct 01, 2010
-
-
Christophe Rhodes authored
Easy, peasy. The only trick here is to use parse() in the case that compile-file-for-emacs is not being asked to load the `compiled' file.
-
Christophe Rhodes authored
It was surprisingly hard to intuit getwd() and setwd(), what with apropos("dir") and apropos("cwd") failing. Nevertheless, they exist and function, so use them for the interface (but not slimefun) functions.
-
Christophe Rhodes authored
R has capture.output as equivalent to with-output-to-string, so use it. printToString, used by the slime-repl, now reverts back to calling print. New function prin1ToString, used by swank:interactive-eval and swank:eval-and-grab-output, uses deparse.
-
- Sep 16, 2010
-
-
Christophe Rhodes authored
default makeReplResult function doing the standard (:write-string value :repl-result) thing for the REPL.
-
- Sep 12, 2010
-
-
Christophe Rhodes authored
Reified environments make quite a lot of this fairly easy...
-
Christophe Rhodes authored
-
Christophe Rhodes authored
Stands a chance of making the inspector not utterly annoying
-
- Sep 11, 2010
-
-
Christophe Rhodes authored
It took me quite some time to remember that parse returns a list of expressions rather than just a single expression...
-
- Sep 10, 2010
-
-
Christophe Rhodes authored
Wow, nearly working. There's some way of causing R to get into the proper debugger; not sure how to reproduce it yet.
-
- Sep 09, 2010
-
-
Christophe Rhodes authored
-
Christophe Rhodes authored
Use an environment for istate rather than a list implement swank:inspector-nth-part and swank:inspect-nth-part
-
Christophe Rhodes authored
-
Christophe Rhodes authored
Implement enough that C-c I begins to work, at least for values like list(1,2,3). The resulting inspector on the emacs side apparently has no features, and an error message results on quitting the inspector because I've only implemented `swank:init-inspector`, and not `swank:quit-inspector`. Still, good enough to checkpoint.
-
- Sep 07, 2010
-
-
Christophe Rhodes authored
Use it in swank:interactive-eval and swank:eval-and-grab-output
-