[ESS] font-lock behaviour
maechler at stat.math.ethz.ch
Mon Aug 20 11:20:17 CEST 2007
>>>>> "DD" == Dan Davison <davison at stats.ox.ac.uk>
>>>>> on Sat, 18 Aug 2007 15:11:37 +0100 writes:
DD> With ess 5.3.5 in (.R and *R* buffers), there's a minor
DD> difference in the font-lock behaviour which has a
DD> slightly undesirable consequence: briefly, whereas
DD> previously (5.3.4) the two characters `' were considered
DD> as a pair of opening and closing quotes and thus marked
DD> some characters as a string, the ' no longer seems to
DD> close the quote opened by `. I'm not putting forward an
DD> opinion as to whether that's appropriate or not, but one
DD> example of it having slightly annoying consequences is
DD> the following: if you create a shared library from
DD> within R with a command like system("R CMD SHLIB tmp.c")
DD> then you get output in the *R* buffer like
DD> make: `tmp.so' is up to date.
DD> which leaves the font-lock thinking that you're in the
DD> middle of a string, my most elegant solution to which is
DD> ` <ctrl-c> <ctrl-c>
DD> to get correct font-lock back... So if possible, perhaps
DD> `' should be allowed as a opening-closing pair?
If one could do this easily for *output* only, and given the
following, we probably would.
Note that the change in ESS has been very much intentional :
R's NEWS file for R version 1.8.0 (Oct 2003 !) has had
CHANGES TO THE LANGUAGE
o Non-syntactic variable names can now be specified by inclusion
between backticks `Like This`. The deparse() code has been
changed to output non-syntactical names with this convention,
when they occur as operands in expressions. This is controlled
by a `backtick' argument, which is by default TRUE for
composite expressions and FALSE for single symbols. This
should give minimal interference with existing code.
and consequently, for four years now (if you work with the prerelease
"R-devel" as I do), `name` has been wrongly fontified in ESS.
Hence it seems overdue to make `...` correctly behave as a
quoting pair rather than `...'
I agree that it sometimes is a pain if you get such `...' in
*R* output and ideally we'd find a way to prevent the font-lock
misbehavior in such situation.
I'm not an expert in Emacs' Syntax setup (which really is the
basic ingredient to font-lock behavior), but maybe someone else ?
DD> While I'm making trivial complaints about such nice and
DD> sophisticated software, one more question: the following
DD> code is evaluated at start-up by the default ess
DD> installation, but is there any way to prevent it
DD> printing to screen?
>> if(!exists("baseenv", mode="function")) baseenv <-
>> function() NULL options(STERM='iESS',
I'm sure there is,
use 'fortune(109)' in R after having installed and loaded the
>>> This is R. There is no if. Only how.
but am less sure if it's worth it ;-)
DD> Thanks a lot,
DD> _ platform i686-redhat-linux-gnu arch
DD> i686 os linux-gnu system i686, linux-gnu status major 2
DD> minor 5.1 year 2007 month 06 day 27 svn rev 42083
DD> language R version.string R version 2.5.1 (2007-06-27)
More information about the ESS-help