[ESS] how to leverage ESS parsing to find current module in Julia buffer
Tamas Papp
tkpapp at gmail.com
Wed Feb 25 10:37:03 CET 2015
Hi,
I am still working on improving ESS/Julia, especially the evaluation
context. The problem I am facing is finding the relevant module for
evaluation --- I thought I can simply search backwards with a regexp,
but submodules complicate this.
For example, if a buffer contains
--8<---------------cut here---------------start------------->8---
module Parent
module Child1
f(x) = x+1
end
module Child2
g(x) = x+1 # eval here
end
end
--8<---------------cut here---------------end--------------->8---
and the user presses C-c C-c on the line that contains
g(x) = x+1 # eval here
then the relevant module for eval is Parent.Child2. If I naively search
backwards and collect all module lines that match a regexp, I get
Parent, Child1, and Child2.
So it seems I would have to parse the file somehow in Emacs. But I
notice that ESS already does some of that, since it indents everything
correctly. Can I somehow use that to extract a list of open (ie not
terminated with an "end") module expressions up to a given position?
Thanks,
Tamas
More information about the ESS-help
mailing list