[ESS] Failed match for ess-function-pattern

Vitalie Spinu spinuvit at gmail.com
Sat Jan 11 22:13:49 CET 2014


I would be happy to implement this. Then we would be able to inject the
source code reliably. 

A bit of an issue is the paragraph evaluation. A common pattern in R
interactive code is to have a bunch of one-liners to be evaluated at
once. Top-level-form evaluation will break this pattern unless we expand
the evaluated region to the whole paragraph containing the form.

Sometimes I need to evaluate an inner form as well. A natural thing
would be to put it on C-u, but C-u is historically taken for a not very
useful visual evaluation toggling.

Any ideas/proposals are welcome.

   Vitalie

 >>> Peter Meilstrup on Fri, 10 Jan 2014 23:25:01 -0800 wrote:

 > Over both eval-function (which doesn't usually do what I want when I
 > have inner functions) and eval-paragraph (which doesn't when I put a
 > line break in a function definition), I would prefer a command that
 > did "evaluate all lines that include the top-level bracket enclosing
 > point." That would be easy to implement using parse-partial-sexp and
 > cover the case discussed here.

 > On Fri, Jan 10, 2014 at 2:05 PM, Vitalie Spinu <spinuvit at gmail.com> wrote:
 >> 
 >> This is what I do:
 >> 
 >> foo <- function() ..
 >> environment(foo) <- new_env
 >> 
 >> It would be possible to treat this specially case separately but it
 >> would require re-factoring of a portion of ESS that is extremely
 >> brittle. I would avoid that for now.
 >> 
 >> Vitalie
 >> 
 >> >>> Andreas Yankopolus on Fri, 10 Jan 2014 15:52:06 -0500 wrote:
 >> 
 >> > C-c C-c fails if the function contains any blank lines.
 >> > —Andreas
 >> 
 >> > On Jan 10, 2014, at 15:48, Vitalie Spinu <spinuvit at gmail.com> wrote:
 >> 
 >> >> What is wrong with C-c C-c? Which automatically evaluates the paragraph
 >> >> when no function at point is found.
 >> >>
 >> >> Vitalie
 >> >>
 >> >>>>> Andreas Yankopolus on Fri, 10 Jan 2014 14:18:38 -0500 wrote:
 >> >>
 >> >>> I'm using R environments to organize groups of related values and defining functions like so:
 >> >>>
 >> >>> fooFunc1 <- local(function(args) {
 >> >>> ## Doo foo 1 things
 >> >>> }, env=fooEnv)
 >> >>>
 >> >>> fooFunc2 <- local(function(args) {
 >> >>> ## Doo foo 2 things
 >> >>> }, env=fooEnv)
 >> >>>
 >> >>> Unfortunately, the local() construct appears to break ESS's ability to recognizes these as functions. Putting the pointer in such a function and evaluating (C-c, C-f) fails with: "Point is not in a function according to 'ess-function-pattern'."
 >> >>>
 >> >>> Any suggestions or fixes? I took a look at the code in ess-mode.el and don't see an obvious solution given my limited knowledge of elisp.
 >> >>>
 >> >>> I'm running ess v13.05 in Aquamacs 3.0preview5 on OS X 10.9.1. Same story in Emacs 23.4.1 on Ubuntu 13.10.
 >> >>>
 >> >>> —Andreas
 >> >>> [[alternative HTML version deleted]]
 >> >>>
 >> >>> ______________________________________________
 >> >>> ESS-help at r-project.org mailing list
 >> >>> https://stat.ethz.ch/mailman/listinfo/ess-help>
 >> > ______________________________________________
 >> > ESS-help at r-project.org mailing list
 >> > https://stat.ethz.ch/mailman/listinfo/ess-help>
 >> ______________________________________________
 >> ESS-help at r-project.org mailing list
 >> https://stat.ethz.ch/mailman/listinfo/ess-help



More information about the ESS-help mailing list