From 2bc201f2bcf2e49a34529aedcf0650d85b7f0cea Mon Sep 17 00:00:00 2001 From: David Reitter Date: Fri, 13 May 2011 14:04:27 -0400 Subject: [PATCH] Update ESS to version 5.13 --- aquamacs/build/update-ess | 2 +- aquamacs/doc/latex/changelog.tex | 1 + .../ess-mode/etc/ess-sas-sh-command | 0 .../edit-modes/ess-mode/etc/icons/README | 17 +- .../edit-modes/ess-mode/etc/pkg-Maintainers | 2 +- .../edit-modes/ess-mode/lisp/ess-arc-d.el | 2 +- .../edit-modes/ess-mode/lisp/ess-arc-d.elc | Bin 1843 -> 1849 bytes .../edit-modes/ess-mode/lisp/ess-bugs-d.el | 4 +- .../edit-modes/ess-mode/lisp/ess-bugs-d.elc | Bin 6818 -> 6823 bytes .../edit-modes/ess-mode/lisp/ess-bugs-l.el | 16 +- .../edit-modes/ess-mode/lisp/ess-bugs-l.elc | Bin 7648 -> 7654 bytes .../edit-modes/ess-mode/lisp/ess-comp.el | 2 +- .../edit-modes/ess-mode/lisp/ess-comp.elc | Bin 1175 -> 1181 bytes .../edit-modes/ess-mode/lisp/ess-compat.el | 2 +- .../edit-modes/ess-mode/lisp/ess-compat.elc | Bin 5383 -> 5389 bytes .../edit-modes/ess-mode/lisp/ess-custom.el | 214 +- .../edit-modes/ess-mode/lisp/ess-custom.elc | Bin 53420 -> 56398 bytes .../edit-modes/ess-mode/lisp/ess-dde.el | 4 +- .../edit-modes/ess-mode/lisp/ess-dde.elc | Bin 4349 -> 4355 bytes .../edit-modes/ess-mode/lisp/ess-eldoc.el | 34 +- .../edit-modes/ess-mode/lisp/ess-eldoc.elc | Bin 2457 -> 2429 bytes .../edit-modes/ess-mode/lisp/ess-font-lock.el | 40 +- .../ess-mode/lisp/ess-font-lock.elc | Bin 4700 -> 4387 bytes .../edit-modes/ess-mode/lisp/ess-help.el | 72 +- .../edit-modes/ess-mode/lisp/ess-help.elc | Bin 14764 -> 15790 bytes .../edit-modes/ess-mode/lisp/ess-inf.el | 74 +- .../edit-modes/ess-mode/lisp/ess-inf.elc | Bin 62499 -> 63107 bytes .../edit-modes/ess-mode/lisp/ess-jags-d.el | 2 +- .../edit-modes/ess-mode/lisp/ess-jags-d.elc | Bin 6727 -> 6733 bytes .../edit-modes/ess-mode/lisp/ess-lsp-l.el | 2 +- .../edit-modes/ess-mode/lisp/ess-lsp-l.elc | Bin 1412 -> 1418 bytes .../edit-modes/ess-mode/lisp/ess-menu.el | 2 +- .../edit-modes/ess-mode/lisp/ess-menu.elc | Bin 2017 -> 2023 bytes .../edit-modes/ess-mode/lisp/ess-mode.el | 60 +- .../edit-modes/ess-mode/lisp/ess-mode.elc | Bin 29370 -> 29961 bytes .../edit-modes/ess-mode/lisp/ess-mouse.el | 2 +- .../edit-modes/ess-mode/lisp/ess-mouse.elc | Bin 6293 -> 6299 bytes .../edit-modes/ess-mode/lisp/ess-noweb.el | 2 +- .../edit-modes/ess-mode/lisp/ess-noweb.elc | Bin 2318 -> 2324 bytes .../edit-modes/ess-mode/lisp/ess-omg-d.el | 2 +- .../edit-modes/ess-mode/lisp/ess-omg-d.elc | Bin 2700 -> 2706 bytes .../edit-modes/ess-mode/lisp/ess-omg-l.el | 2 +- .../edit-modes/ess-mode/lisp/ess-omg-l.elc | Bin 4952 -> 4958 bytes .../edit-modes/ess-mode/lisp/ess-r-args.el | 2 +- .../edit-modes/ess-mode/lisp/ess-r-args.elc | Bin 4012 -> 4032 bytes .../edit-modes/ess-mode/lisp/ess-r-d.el | 163 +- .../edit-modes/ess-mode/lisp/ess-r-d.elc | Bin 15082 -> 16962 bytes .../edit-modes/ess-mode/lisp/ess-rd.el | 38 +- .../edit-modes/ess-mode/lisp/ess-rd.elc | Bin 12874 -> 13048 bytes .../edit-modes/ess-mode/lisp/ess-rdired.el | 78 +- .../edit-modes/ess-mode/lisp/ess-rdired.elc | Bin 9091 -> 10034 bytes .../edit-modes/ess-mode/lisp/ess-roxy.el | 182 +- .../edit-modes/ess-mode/lisp/ess-roxy.elc | Bin 15481 -> 17023 bytes .../edit-modes/ess-mode/lisp/ess-rutils.el | 451 +++ .../edit-modes/ess-mode/lisp/ess-s-l.el | 72 +- .../edit-modes/ess-mode/lisp/ess-s-l.elc | Bin 17351 -> 18160 bytes .../edit-modes/ess-mode/lisp/ess-s3-d.el | 2 +- .../edit-modes/ess-mode/lisp/ess-s3-d.elc | Bin 1935 -> 1941 bytes .../edit-modes/ess-mode/lisp/ess-s4-d.el | 2 +- .../edit-modes/ess-mode/lisp/ess-s4-d.elc | Bin 2073 -> 2079 bytes .../edit-modes/ess-mode/lisp/ess-sas-a.el | 21 +- .../edit-modes/ess-mode/lisp/ess-sas-a.elc | Bin 38882 -> 38969 bytes .../edit-modes/ess-mode/lisp/ess-sas-d.el | 2 +- .../edit-modes/ess-mode/lisp/ess-sas-d.elc | Bin 6574 -> 6580 bytes .../edit-modes/ess-mode/lisp/ess-sas-l.el | 50 +- .../edit-modes/ess-mode/lisp/ess-sas-l.elc | Bin 39541 -> 39766 bytes .../edit-modes/ess-mode/lisp/ess-site.el | 134 +- .../edit-modes/ess-mode/lisp/ess-site.elc | Bin 8438 -> 9287 bytes .../edit-modes/ess-mode/lisp/ess-sp3-d.el | 2 +- .../edit-modes/ess-mode/lisp/ess-sp3-d.elc | Bin 2147 -> 2153 bytes .../edit-modes/ess-mode/lisp/ess-sp4-d.el | 2 +- .../edit-modes/ess-mode/lisp/ess-sp4-d.elc | Bin 10812 -> 10818 bytes .../edit-modes/ess-mode/lisp/ess-sp5-d.el | 6 +- .../edit-modes/ess-mode/lisp/ess-sp5-d.elc | Bin 2167 -> 2173 bytes .../edit-modes/ess-mode/lisp/ess-sp6-d.el | 6 +- .../edit-modes/ess-mode/lisp/ess-sp6-d.elc | Bin 6668 -> 6674 bytes .../edit-modes/ess-mode/lisp/ess-sp6w-d.el | 38 +- .../edit-modes/ess-mode/lisp/ess-sp6w-d.elc | Bin 17294 -> 17755 bytes .../edit-modes/ess-mode/lisp/ess-sta-d.el | 2 +- .../edit-modes/ess-mode/lisp/ess-sta-d.elc | Bin 2615 -> 2621 bytes .../edit-modes/ess-mode/lisp/ess-sta-l.el | 2 +- .../edit-modes/ess-mode/lisp/ess-sta-l.elc | Bin 24649 -> 24655 bytes .../edit-modes/ess-mode/lisp/ess-swv.el | 38 +- .../edit-modes/ess-mode/lisp/ess-swv.elc | Bin 5391 -> 5795 bytes .../edit-modes/ess-mode/lisp/ess-toolbar.el | 7 +- .../edit-modes/ess-mode/lisp/ess-toolbar.elc | Bin 6231 -> 6336 bytes .../edit-modes/ess-mode/lisp/ess-trns.el | 42 +- .../edit-modes/ess-mode/lisp/ess-trns.elc | Bin 8311 -> 8606 bytes .../edit-modes/ess-mode/lisp/ess-utils.el | 2 +- .../edit-modes/ess-mode/lisp/ess-utils.elc | Bin 15062 -> 15068 bytes .../edit-modes/ess-mode/lisp/ess-vst-d.el | 2 +- .../edit-modes/ess-mode/lisp/ess-vst-d.elc | Bin 1785 -> 1791 bytes .../edit-modes/ess-mode/lisp/ess-xls-d.el | 2 +- .../edit-modes/ess-mode/lisp/ess-xls-d.elc | Bin 2446 -> 2452 bytes .../site-lisp/edit-modes/ess-mode/lisp/ess.el | 22 +- .../edit-modes/ess-mode/lisp/ess.elc | Bin 5196 -> 5198 bytes .../edit-modes/ess-mode/lisp/essd-els.el | 2 +- .../edit-modes/ess-mode/lisp/essd-els.elc | Bin 6509 -> 6515 bytes .../edit-modes/ess-mode/lisp/make-regexp.elc | Bin 3419 -> 3425 bytes .../edit-modes/ess-mode/lisp/mouseme.elc | Bin 9554 -> 9560 bytes .../edit-modes/ess-mode/lisp/msdos.el | 2 +- .../edit-modes/ess-mode/lisp/msdos.elc | Bin 4343 -> 4349 bytes .../ess-mode/lisp/noweb-font-lock-mode.el | 2 +- .../ess-mode/lisp/noweb-font-lock-mode.elc | Bin 7700 -> 7706 bytes .../edit-modes/ess-mode/lisp/noweb-mode.el | 2 +- .../edit-modes/ess-mode/lisp/noweb-mode.elc | Bin 44562 -> 44568 bytes .../src/site-lisp/edit-modes/info/ess.info | 2747 +++++++++++------ 107 files changed, 3133 insertions(+), 1552 deletions(-) mode change 100644 => 100755 aquamacs/src/site-lisp/edit-modes/ess-mode/etc/ess-sas-sh-command create mode 100644 aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-rutils.el diff --git a/aquamacs/build/update-ess b/aquamacs/build/update-ess index 39b68c49e058..ff9904847ee5 100755 --- a/aquamacs/build/update-ess +++ b/aquamacs/build/update-ess @@ -2,7 +2,7 @@ # run from within build directory -FILE=ess-5.8 +FILE=ess-5.13 DEST=../src/site-lisp/edit-modes/ess-mode INFODEST=../src/site-lisp/edit-modes/info EMACS="../../nextstep/Aquamacs.app/Contents/MacOS/Aquamacs -nw -Q" diff --git a/aquamacs/doc/latex/changelog.tex b/aquamacs/doc/latex/changelog.tex index 9c9eeefd3314..01df35b80a3e 100644 --- a/aquamacs/doc/latex/changelog.tex +++ b/aquamacs/doc/latex/changelog.tex @@ -11,6 +11,7 @@ \subsection{Changes--- 2.3} Reported by Konrad Podczeck. \item Fix insertion of the Euro sign with Option-e under emulate-mac-*-keyboard-mode. Reported by Viktor Rosenfeld. +\item Updated ESS (Emacs Speaks Statistics) to version 5.13. \end{itemize} \subsection{Changes--- 2.2} diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/etc/ess-sas-sh-command b/aquamacs/src/site-lisp/edit-modes/ess-mode/etc/ess-sas-sh-command old mode 100644 new mode 100755 diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/etc/icons/README b/aquamacs/src/site-lisp/edit-modes/ess-mode/etc/icons/README index b13b7df6f69e..0d077c7b98ff 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/etc/icons/README +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/etc/icons/README @@ -11,6 +11,21 @@ Need to add backgrounToolBarColor for XEmacs to show okay. e.g. /usr/share/xemacs-21.4.12/etc/toolbar/folder-cap-up.xpm has header: "X c Gray75 s backgroundToolBarColor", -whereas I have set "c None" to indicate the background pixel; this line +whereas I have set "c None" to indicate the background pixel; this line seems to work for both toolbars: ". c None s backgroundToolBarColor", + +* splus_letters_small.xpm + +2010-05-18 & -21: SJE made this new Splus icon from the +splus_letters_large.xpm (then image001.png from Louis Bajuk-Yorgan +@tibco.com) file that Rich provided. I had to move the +cross over to the left by one pixel, to then allow the image to be +cropped to 48x48 (cropping performed in gimp). kiconedit was then +used to rescale the icon to 24x24. Finally, background transparency +added manually to the file, as noted above. + +2010-05-21: updated file based on new image from TIBCO. Original +51x38 cropped to 50x38 in xv, then shrunk to 25x19 in kiconedit. +Transparency added, and removed a lot of the extra white pixels into +background colours manually in kiconedit. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/etc/pkg-Maintainers b/aquamacs/src/site-lisp/edit-modes/ess-mode/etc/pkg-Maintainers index 14625f8f7494..f02bd2306bdc 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/etc/pkg-Maintainers +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/etc/pkg-Maintainers @@ -1,4 +1,4 @@ Xemacs: Rodney Sparapani -- no longer -Debian: Camm Maguire +Debian: Dirk Eddelbuettel RPM: Tom Moertel SuSe: Detlef Steuer diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-arc-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-arc-d.el index cb540bbdd92a..f65f32cb8790 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-arc-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-arc-d.el @@ -6,7 +6,7 @@ ;; Original Author: A.J. Rossini ;; Created: 30 Jun 2000 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-arc-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-arc-d.elc index f21fa735ede1372904f0ab623cccbd8dd9b8256d..38cfbc39310de17e83bc97068319f94cf096a25b 100644 GIT binary patch delta 117 zcmdnYx07#zjCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%ssk%Ezd zp&^&GwY5T8QGTvMT4qkFf__PEfqrUnv976}q4CB<4JIZ_qs`q+RZL7~rjyxOw=o+V S7;Zkms>H}-X*l@_n?C?gnIc&L delta 89 zcmdnVx0!E(j8<`SVo^?NNr_%gesW@tLVlh?aA}@`Z(^l_f{}uuv6ZQrm654}k%6JX tL~kiZi;d|TOiUJLnEu^z{s77A8KwXL diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-bugs-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-bugs-d.el index 07e40abfe758..856a4462e854 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-bugs-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-bugs-d.el @@ -4,7 +4,7 @@ ;; Original Author: Rodney Sparapani ;; Created: 13 March 2008 -;; Maintainers: ESS-help +;; Maintainers: ESS-help ;; This file is part of ESS @@ -71,7 +71,7 @@ "dexp\\|dirch\\|exp\\|gamma\\|lnorm\\|logis\\|" "mnorm\\|multi\\|negbin\\|norm\\|par\\|pois\\|" "t\\|unif\\|weib\\|wish\\)[ \t\n]*(") - font-lock-reference-face) + font-lock-constant-face) (cons (concat "\\<\\(for\\|cloglog\\|equals\\|exp\\|inprod\\|" "inverse\\|log\\(det\\|fact\\|gam\\|it\\)?\\|max\\|" diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-bugs-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-bugs-d.elc index 751273e8498233780ef3b9a702aaf841398176ea..5546a1158e60291ccc74e4fa443436935e6228a1 100644 GIT binary patch delta 170 zcmZ2vy4-YvjCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnV2gW z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOyp)}G@I%DvS6q^qSF+iHEs}}Z#K2_p6plyCjFywjd44mRZZ76^U}7>e+`N^) RfCI=?laOQrn&u#t1ORObWI-;4&ED|j84m`u$!@8U1u0CKe@B$ +;; Maintainers: ESS-help ;; This file is part of ESS @@ -189,22 +189,22 @@ and `ess-bugs-file-dir'." (ess-bugs-replacement-9 0) (ess-bugs-replacement-diff 0)) (while (search-forward-regexp "-?[0-9][.][0-9][0-9][0-9]E[+-][0-9]" nil t) - (setq ess-bugs-replacement-string + (setq ess-bugs-replacement-string (int-to-string (string-to-number (match-string 0)))) (setq ess-bugs-replacement-diff (- (match-end 0) (match-beginning 0))) (save-match-data - (setq ess-bugs-replacement-9 + (setq ess-bugs-replacement-9 (string-match "99999999999$" ess-bugs-replacement-string)) (if (not ess-bugs-replacement-9) - (setq ess-bugs-replacement-9 + (setq ess-bugs-replacement-9 (string-match "000000000001$" ess-bugs-replacement-string)))) - - (if ess-bugs-replacement-9 - (setq ess-bugs-replacement-string + + (if ess-bugs-replacement-9 + (setq ess-bugs-replacement-string (substring ess-bugs-replacement-string 0 ess-bugs-replacement-9))) - (setq ess-bugs-replacement-diff + (setq ess-bugs-replacement-diff (- ess-bugs-replacement-diff (string-width ess-bugs-replacement-string))) (while (> ess-bugs-replacement-diff 0) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-bugs-l.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-bugs-l.elc index a51357dd56f84f9f28220bf8fd829324b5140208..9f16451495d6019ac4ddc14d1f3b144dc3085912 100644 GIT binary patch delta 364 zcmaE0{mgoTjCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnV2gW z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOkB*$XgQgc?KG3Q(c}USmC4`O z9s&glC4?vQa|%uV%U;N2Y66t#Vm2}`1uIbGEMPR7Jc-kr$;@Q(eNI0n6T`{+TtQ4m zhLfAQ0-4Q$%C2+y0nJe3&Y7Igp*DF3cN&mZo$Sn04Wy+f-{dI+8W6x+%4B3T`8cmP zqse4Le#OZqe193uCyVeYY!2c#W@fb9+$JQ?2ozZ+T*hQ#x>-&n6DT;jL;NL+xu$~E z3|D!a?&2Q*QKJBQH-tYt5EI+W$fQw?TG zO}@`l1~ev&x0K1yZ1P!NZ=f-orTAnSCrk1vZjRtLW@a?r+#@8<$Y?lujc^&0vE^nJ zkxZcAbBVasZfyR_Xu% diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-comp.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-comp.el index 32af0a5837d3..7a33585c7d51 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-comp.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-comp.el @@ -6,7 +6,7 @@ ;; Original Author: A.J. Rossini ;; Created: 25 July 1997 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-comp.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-comp.elc index ca4acba6f9fc6e3777975749e15aecca8a7179c0..04bf36ef75a9fba74605bf8b7cf8789319c2d491 100644 GIT binary patch delta 95 zcmbQvIhS*SjCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tv8Jj8? x85kOJSzB8xq!s1oDx_uRq$=o_KPhuOjKfKHa9TX+{P@(2mpob8>IjM delta 67 zcmbQsIh}KYj8<`SVo^?NNr_%gesW@tLVlh?aA}@`Z(^l_f{}uuv6ZQrm7%$Uk%6JX WL~kiZi;d|@%* ;; Created: 07 June 2000 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-compat.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-compat.elc index 6cb82229fbc787e82c89143d5235aea7ced4efd5..a0c9db477d86bb66d4960963bf12c92831511e6c 100644 GIT binary patch delta 114 zcmZqI>eZScu!V5DGZY-MU@WoV&bWMF78 z(OZhqVq>}xGn1kD ;; Created: 05 June 2000 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: editing and process modes. @@ -117,9 +117,14 @@ :prefix "ess-" ;; << -- added for ESS integration FIXME?? :group 'tools) +(defgroup ess-sweave nil + "Mode for editing Sweave (*.[SR]nw) files." + :group 'ess-S + :prefix "ess-") + ;; Variables (not user-changeable) -(defvar ess-version "5.8" +(defvar ess-version "5.13" "Version of ESS currently loaded.") (defvar no-doc @@ -176,7 +181,7 @@ as `ess-imenu-use-S'." :type 'boolean) (defcustom ess-display-buffer-reuse-frames t - "Non-nil means \[[display-buffer] reuses existing frames; see + "Non-nil means \\[display-buffer] reuses existing frames; see `display-buffer-reuse-frames'." :group 'ess :type 'boolean) @@ -367,45 +372,31 @@ regardless of where in the line point is when the TAB command is used." :type 'boolean :group 'ess-edit) -(defcustom ess-indent-level 2 - "Indentation of S statements with respect to containing block." - :type 'integer - :group 'ess-edit) +(defvar ess-indent-level 2 + "Indentation of S statements with respect to containing block.") -(defcustom ess-brace-imaginary-offset 0 - "Imagined indentation of an open brace following a statement." - :type 'integer - :group 'ess-edit) +(defvar ess-brace-imaginary-offset 0 + "Imagined indentation of an open brace following a statement.") -(defcustom ess-brace-offset 0 +(defvar ess-brace-offset 0 "Extra indentation for open braces. -Compares with other text in same context." - :type 'integer - :group 'ess-edit) +Compares with other text in same context.") -(defcustom ess-continued-statement-offset 2 - "Extra indent for lines not starting new statements." - :type 'integer - :group 'ess-edit) +(defvar ess-continued-statement-offset 2 + "Extra indent for lines not starting new statements.") -(defcustom ess-continued-brace-offset 0 +(defvar ess-continued-brace-offset 0 "Extra indent for substatements that start with open-braces. -This is in addition to ess-continued-statement-offset." - :type 'integer - :group 'ess-edit) +This is in addition to ess-continued-statement-offset.") -(defcustom ess-arg-function-offset 2 +(defvar ess-arg-function-offset 2 "Extra indent for internal substatements of function `foo' that called in `arg=foo(...)' form. -If not number, the statements are indented at open-parenthesis following foo." - :type 'integer - :group 'ess-edit) +If not number, the statements are indented at open-parenthesis following foo.") ;;added rmh 2Nov97 at request of Terry Therneau -(defcustom ess-close-brace-offset 0 - "Extra indentation for closing braces." - :type 'integer - :group 'ess-edit) +(defvar ess-close-brace-offset 0 + "Extra indentation for closing braces.") ;;added rmh 2Nov97 at request of Terry Therneau (defcustom ess-fancy-comments t @@ -417,24 +408,17 @@ If not number, the statements are indented at open-parenthesis following foo." ;; PeterDalgaard, 1Apr97 : ;;The default ess-else-offset should be 0, not 2 IMHO (try looking at ;;the ls() function, for instance). Was 2. -(defcustom ess-else-offset 0 - "Extra indent for `else' lines." - :type 'integer - :group 'ess-edit) +(defvar ess-else-offset 0 + "Extra indent for `else' lines.") -(defcustom ess-expression-offset 4 +(defvar ess-expression-offset 4 "Extra indent for internal substatements of `expression' that specified in `obj <- expression(...)' form. If not number, the statements are indented at open-parenthesis following -`expression'." - :type 'integer - :group 'ess-edit) +`expression'.") ;;;*;;; Editing styles -;;; **FIXME** The following NEEDS to be customized. -;; SJE: I disagree; this variable should not be customized; individual vars, -;; such as ess-indent-level are already customizable. (defvar ess-default-style-list (list 'DEFAULT (cons 'ess-indent-level ess-indent-level) @@ -495,16 +479,35 @@ If not number, the statements are indented at open-parenthesis following (ess-else-offset . 0) (ess-close-brace-offset . 2)))) "Predefined formatting styles for ESS code. -Values for all groups, except DEFAULT, are fixed. -To change the value of variables in the DEFAULT group, change -the corresponding variables, e.g. `ess-indent-level'. -The default style in use is controlled by `ess-default-style'.") +Values for all groups, except OWN, are fixed. To change the +value of variables in the OWN group, customize the variable +`ess-own-style-list'. The default style in use is controlled by +`ess-default-style'.") + +(defun ess-add-style (key entries) + "Add a new style to `ess-style-list', with the key KEY. +Remove any existing entry with the same KEY before adding the new one. +This can be used" + (setq ess-style-alist (assq-delete-all key ess-style-alist)) + (add-to-list 'ess-style-alist (cons key entries))) + +(defcustom ess-own-style-list (cdr ess-default-style-list) + "Indentation variables for your own style that can be changed. +Set `ess-default-style' to 'OWN to use these values. To change +these values, use the customize interface." + :group 'ess-edit + :type '(repeat (cons symbol integer)) + :initialize 'custom-initialize-set + :set (lambda (symbol value) + (set symbol value) + (ess-add-style 'OWN value))) (defcustom ess-default-style 'DEFAULT "The default value of `ess-style'. See the variable `ess-style-alist' for how these groups (DEFAULT, -GNU, BSD, ...) map onto different settings for variables." +OWN, GNU, BSD, ...) map onto different settings for variables." :type '(choice (const DEFAULT) + (const OWN) (const GNU) (const BSD) (const K&R) @@ -607,6 +610,11 @@ Good for evaluating ESS code." :group 'ess-hooks :type 'hook) +(defcustom R-mode-hook nil + "Hook run when entering R mode." + :type 'hook + :group 'ess-R) + (defcustom Rnw-mode-hook nil "Hook run when entering Rnw mode." :type 'hook @@ -628,27 +636,31 @@ If nil, ESS will try finding one from a list." ;; ---- ./ess-roxy.el : ------------ -(defcustom ess-roxy-tags-noparam '("export") +(defcustom ess-roxy-tags-noparam '("export" "nord") "The tags used in roxygen fields that can be used alone. Used to decide highlighting and tag completion." :group 'ess-roxy :type '(repeat string)) (defcustom ess-roxy-tags-param '("author" "aliases" "concept" - "examples" "format" "keywords" - "method" "exportMethod" + "examples" "format" "keywords" + "method" "exportMethod" "name" "note" "param" - "include" "references" "return" - "seealso" "source" "docType" - "title" "TODO" "usage") - "The tags used in roxygen fields that require a parameter. + "include" "references" "return" + "seealso" "source" "docType" + "title" "TODO" "usage" "import" + "exportClass" "exportPattern" "S3method" + "importFrom" "importClassesFrom" + "importMethodsFrom" "useDynLib" + "rdname" "slot") + "The tags used in roxygen fields that require a parameter. Used to decide highlighting and tag completion." :group 'ess-roxy :type '(repeat string)) -(defcustom ess-roxy-template-alist - (list (cons "description" "") - (cons "details" "
") +(defcustom ess-roxy-template-alist + (list (cons "description" ".. content for \\description{} (no empty lines) ..") + (cons "details" ".. content for \\details{} ..") (cons "title" "") (cons "param" "") (cons "return" "") @@ -662,6 +674,12 @@ syntactically correct roxygen entries)" :group 'ess-roxy :type '(alist :value-type (group string))) +(defcustom ess-roxy-fill-param-p nil + "Non-nil causes parameter descriptions to be filled (word-wrapped) upon `ess-roxy-update-entry'." + :group 'ess-roxy + :type '(choice (const :tag "Off" nil) + (const :tag "On" t))) + (defcustom ess-roxy-hide-show-p nil "Non-nil means ess-roxy uses hs-minor-mode for block hiding with TAB." :group 'ess-roxy @@ -675,10 +693,17 @@ syntactically correct roxygen entries)" (const :tag "On" t))) (defcustom ess-roxy-str "##'" - "String to insert before each line in a roxygen block." + "Prefix string to insert before each line in a roxygen block." :group 'ess-roxy :type 'string) +(defcustom ess-swv-pdflatex-commands '("texi2pdf" "pdflatex" "make") + "Commands to run a version of pdflatex in \\[ess-swv-PDF]; +the first entry is the default command." + :group 'ess-sweave + :type 'list) + + ; System variables ;; SJE -- this should not be defcustom - user does not set it. @@ -776,14 +801,23 @@ Used in e.g., \\[ess-execute-objects] or \\[ess-display-help-on-object]." :type 'string) -(defcustom ess-program-files +(defcustom ess-program-files ;; 32 bit version (if ess-microsoft-p - (w32-short-file-name (getenv "ProgramFiles")) + (if (getenv "ProgramW6432") + (w32-short-file-name (getenv "ProgramFiles(x86)"));; always 32 on 64 bit OS + (w32-short-file-name (getenv "ProgramFiles"))) ;; always 32 on 32 bit OS nil) - "Safe (no embedded blanks) 8.3 name that works across internationalization." + "Safe (no embedded blanks) 8.3 name for 32-bit programs that works across internationalization." :group 'ess :type 'string) +(defcustom ess-program-files-64 ;; 64 bit version + (if (and ess-microsoft-p (getenv "ProgramW6432")) + (w32-short-file-name (getenv "ProgramW6432")) + nil) + "Safe (no embedded blanks) 8.3 name for 64-bit programs that works across internationalization." + :group 'ess + :type 'string) (defcustom ess-rterm-version-paths nil "Stores the full path file names of Rterm versions, computed via @@ -817,6 +851,7 @@ file." "/Insightful/splus8.0.4" "/Insightful/splus80" "/TIBCO/splus81" + "/TIBCO/splus82" )) "List of possible values of the environment variable SHOME for recent releases of S-Plus. These are the default locations for several @@ -833,6 +868,27 @@ menu." :group 'ess-SPLUS :type '(repeat string)) +(defcustom ess-SHOME-versions-64 + ;; ess-program-files-64 ~= "c:/progra~1" for typical locales/languages + (mapcar + '(lambda (ch) (concat ess-program-files-64 ch)) + '("/TIBCO/splus82" +)) + "List of possible values of the environment variable SHOME for recent +releases of 64-bit S-Plus. These are the default locations for several +current and recent releases of S-Plus. If any of these pathnames +correspond to a directory on your machine, running the function +`ess-sqpe-versions-create' will create a function, for example, `M-x +splus70', that will start the corresponding version Sqpe inside an +emacs buffer in iESS[S] mode. If you have versions of 64-bit S-Plus in +locations other than these default values, redefine this variable with +a `custom-set-variables' statement in your site-start.el or .emacs +file. The list of functions actually created appears in the *ESS* +buffer and should appear in the \"ESS / Start Process / Other\" +menu." + :group 'ess-SPLUS + :type '(repeat string)) + (defcustom inferior-S3-program-name "/disk05/s/S" "Program name for invoking an inferior ESS with S3()." :group 'ess-S @@ -921,7 +977,7 @@ different computer." (if ess-microsoft-p (defcustom inferior-S+6-program-name - (concat ess-program-files "/TIBCO/splus81/cmd/Splus.exe") + (concat ess-program-files "/TIBCO/splus82/cmd/Splus.exe") "Program name to invoke an external GUI S+6 for Windows. The default value is correct for a default installation of S-Plus 8.1 and with bash as the shell. @@ -960,13 +1016,13 @@ in S+6 for Windows Commands window and in Sqpe+6 for Windows buffer." :type 'string) (defcustom inferior-Sqpe+6-program-name - (concat ess-program-files "/TIBCO/splus81/cmd/Sqpe.exe") + (concat ess-program-files "/TIBCO/splus82/cmd/Sqpe.exe") "Program name for invoking an inferior ESS with Sqpe+6() for Windows." :group 'ess-S :type 'string) (defcustom inferior-Sqpe+6-SHOME-name - (if ess-microsoft-p (concat ess-program-files "/TIBCO/splus81" "")) + (if ess-microsoft-p (concat ess-program-files "/TIBCO/splus82" "")) "SHOME name for invoking an inferior ESS with Sqpe+6() for Windows. The default value is correct for a default installation of S-Plus 8.1. For any other version or location, @@ -1046,7 +1102,7 @@ order for it to work right. And Emacs is too smart for it." ;;; ess-editor and ess-pager, ;;; and inferior-ess-language-start ;;; apply in principle to the 15 files essd[s-]*.el -;;; Several of the files (essd-sp4.el and essd-sp6w.el) have more +;;; Several of the files (ess-sp4-d.el and ess-sp6w-d.el) have more ;;; than one *-customize-alist. ;;; These variables are currently used only with the S language files for ;;; S S-Plus R. @@ -1157,6 +1213,10 @@ corresponding program.") (setq-default inferior-ess-program inferior-S-program-name) +(defvar inferior-R-version "R (newest)" + "A (short) name of the current R version. A global variable for +ESS internal communication.") + (defvar inferior-ess-start-args "" "String of arguments passed to the ESS process. If you wish to pass arguments to a process, see e.g. `inferior-R-args'.") @@ -1204,14 +1264,16 @@ Otherwise, they get their own temporary buffer." :type 'boolean) (defcustom ess-eval-visibly-p t - "Non-nil means ess-eval- commands display commands in the process buffer." + "Non-nil means ess-eval- commands display commands in the process buffer. +Experienced users often change / customize it to 'nil'." :group 'ess-proc :type 'boolean) -(defcustom ess-eval-deactivate-mark nil +(defcustom ess-eval-deactivate-mark (fboundp 'deactivate-mark); was nil till 2010-03-22 "Non-nil means that after ess-eval- commands the mark is deactivated, - (see \[[deactivate-mark]). This only affects the situation where -`transient-mark-mode' is non-nil." + (see \\[deactivate-mark]). The default is true since ESS version 5.9, + except on XEmacs which doesn't have \\[deactivate-mark] and friends: + only affects the situation where `transient-mark-mode' is non-nil." :group 'ess-proc :type 'boolean) @@ -1237,7 +1299,7 @@ of Emacs until the code has been successfully evaluated." (defcustom ess-eval-ddeclient-sleep 0.06 "If non-nil, a number specifying *seconds* to wait after certain -\[[ess-eval-linewise-ddeclient] calls, such as those at startup." +\\[ess-eval-linewise-ddeclient] calls, such as those at startup." ;; i.e this currently only applies to (if microsoft-p ...) ! :group 'ess-proc :type '(choice (const nil) number)) @@ -1413,6 +1475,12 @@ session.") (make-variable-buffer-local 'ess-object-list) +(defvar ess-help-topics-list nil + ;; List of currently known help topics. + "Cache of help topics") + +(make-variable-buffer-local 'ess-help-topics-list) + ;;*;; Miscellaneous system variables (defvar ess-temp-point nil @@ -1464,7 +1532,7 @@ dialects' alists. Increase this, if you have a fast(er) machine." :type 'integer) ;; NOTA BENE: Other languages/dialect currently set `ess-loop-timeout' -;; **directly** in their essd-*.el alist !! +;; **directly** in their ess-*-d.el alist !! ;;;*;;; Font-lock support @@ -1737,7 +1805,7 @@ Defaults to `ess-S-non-functions'." ; ess-mode: editing S source ;;; This syntax table is required by ess-mode.el, ess-inf.el and -;;; ess-trans.el, so we provide it here. +;;; ess-trns.el, so we provide it here. (defvar ess-mode-syntax-table nil "Syntax table for `ess-mode'.") (make-variable-buffer-local 'ess-mode-syntax-table) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-custom.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-custom.elc index 98134a40ce940d40164b77bb0f198b4dd51ddb8a..4d5418b5bb96cb339a31e6523e1cb04698daae75 100644 GIT binary patch delta 5289 zcmaJ_3vg4{nI2i!U}PR9HaP3Ba4g$c3P`^1s|z7K93T!PfC(g942djV+lr+tMOS`^ zkT?)%2?Rp;>5`_Un8HGu2bA2IwrQ4S6S6dE8xp$HExUb$OsC!HraPI;?Cf-=(`3JM zWf_xpmNE8u{^vjc=ZjHd~cXv3ui1 zCMoz?q^gS)mC2$c1r{$}%zE!>|VC9G!eQzx@BYM zR(mMy9q2@Z)H(UC>5>v;p{8aQWs(_F>Ez@eR>&fys~n$9*Q=iKtD;F80*s!Wa?z*J zy1?EF!=R62pbZq{kPuBj8oD(RngPoaIY5BXwLQ(I4;PpzgU^_Tp*sL{;Y*2_@ zOrg+sCy(h$KIzu!W&I>kl8rDe4Y!r|o`}@X7(Z7M5rSd565a)ms@~m)Z*N{O;nr5# z`3r3&QJ2JUIMB2Vu8W2u6k2d}{PgGAW=~hk;V0^`SlFGr@QiP&XezR|N7f{|8o6iQ zx(DuC$l`efc52v4Mj5+5%MyKYyVqicJ}W>=q75e2u-<%jAh(bu2Ao1RliKdhGB_m_ z?@n8Rhq-IALw3X|6w_8DopK7TkVPk>VPC*~FZ!7R@y39k$5`I zb&C|Tp0T#Fac9Y~m>Aybxz!L^hZpYgLJD|SwzlJeP%%4@XE1r$gnjWs`A#MOC8L3j z2yV}?No!kAd>~yYDb~sj-paj-zc2u|GJX%n(*u?>F$4k=Cl;2MP6&dOU9j>!NF{o% zs-f*u2Azq4!}J+f?z z-!wF|e^qG!fA|%e=)L8yRT_#4EGqSGq1RWOnZ<&3HlGaMaFe0w8a=%FHhQ|f4ygRi z_C@Z$w=>@e3#Kx;Y`zd=L2H;d+S3T?@!tA)0pVbyzfs9pg}!VO&C-rlD97U+Zt1D-j|3*8N#W6Wc4zn zt1D?aiF_)@v*)qLS;)>ZE0Ze}8TbTG=4cesN)Z@LT7`Hj&F}J8qk7N9BKrhG`f0^ zV9L7WIj=OhfF8elP%u@)oG=)w)@8OnZvpg~Lu)(If{Dn%f(FY0(%HQne@v6LXEPZP zFYgBV0UMw_XyqLaM%f;gOZKFp>oD?`v92vVrJSL`$ojihZC%Wf0~gMZ;a`yfarqF( zS>O=O8E&ELGlc}-P?i%(luv7I4Fw@MC1VO6DK9`X6YsYsgaC+@3bgQwQwh4q$l9Vp zF$d`208GE^c(hU$MHpb@R5P8sGKqHF^SoacWst6Vu&n^a)(i@=2r|Wa%qM|q^s_Zj zVT%Sr#yQa^fhu?V+G-z$Vn{zebo}1)0$@g^<(p@t6QII<2L*{2)k*8F36d%*bak|W zM)ys1tJY8P36id9e8g?run;{{7suwSX?N#W1z9#Fs<|Abr5isLWYqw}LT63COH(#2 z6=VY}>G}(;K9dTYT5353Rpdx_s=#vjY%e0tq31WH8&W+i)QjM=2U&1^Y2pE0Rpelp zDmE{u3Ju5fa1ac!Vso@M%n(Q82`_^Nb6Ux-8klg3u72^9P17Q}iumJaAu#B_jD{IE zpT*_RZx}oHi^nKP*|B5X_~vUqLD2!2HJ9s2e5cm!eek-#Sg`H>juq|e+MHZ^z==Wo z8)|~2iga$_^E8xIco%5CXO9X>x4rR`g!+quGtK2OU3BU;lW zy)2q`Z+*(Is~V-dn<%pF2|?Fo)jhZE4?aOROofg=`~$&2oyPhW+7Heu; z7%G?2;`SvD_yofQjPf;et*;6(6#>U%;-NhO`h|5&h-vV7d0@0>NQfB_nduJFlHMIc z%mnD4+tx(ad;h~HyKnUMR0yUKGdy|s^#5KkP4H|41#L@@R^mCMmDCAkJ`>M{`!x8lI3liiqlv?hd*}_6c8|jNF=FX+<=>>&Gq?7VoKvdMlV110xC2}N5_topejm?zPqDe0LwP$;=8Tx+Q%38 z1XagXN{*<4xu?>d6?J$*{Th!XPLe&BRnfjDZ>Nt(ih?FX+KoXxVIb?Hb+^$=yX%N6 zXzzSo&F%`C)g`7SVO(X?psX$PUh>3xGo>#2SGPHt#EoZ&y zYq6mD|VuOoE%tsdHQ8KeS^DPQ@9fpq%go*C|U zzFdn)mk=(0ZN<{Pzel3RAZkAS`RSR|{d8V1VmOd520Ho_IRWaKg%TAt@4!qzwDOarZ6fz9cr+F`M!sV~YCAY>2FhchTpSgokTcHi2O zt}RI`o+zXSd3nvm^Zi@Hoa)}FNnVM{4_M4e;dsWaUACYWH5Uf(=15q%0{`;x;L1!q z;jp2;RHBb1vzBAy+&=!1;4e?Xb0vwd5tDJLq_ZeMb^9BAjP(5vw1#@RvjcV#N`FDK zallhx_>xOT_f@-Z?FV4SbY*;mE*;ok0T6kAbPjA;O+yDqKqh7SVDvU_TVl_){{4kYRZ=ALwWHt1xTFJ7E;{swsSZ3w58|!xLTi zIyI;I!OVdz_q5Q-Q$IwaONJ-)@IP!sf&XU&jrnl$<+U14$lHnq7PsE-6UPU=_AjqmtGKbpsMS>REOfE$2>2)zkNA~9x4P+ zGq>f{JA8gakvy)#zuN3Md%gl7c79F0yYAd`lMx-FPCH+3rmFA#76BpZ?x)||@2k|n znKXCj>s7p|qIvKK{S{~$s_K6BkGv@D_1G!=L9n;mG%urqCX>nvIZP^9Y8 z$7q3o(jPB93Ev{{cD#L`pvX}6%G+Oqk9AIW8tIvT!L){|UUT_h1qI(?I5BWPyIjx1 zQBrviG~o~&tnv-@^ow@}0p)mpZF;u{o<@nf`0iVRYG9iC@7q5*AgD1^$wfat#$8;- zumFAj<0t(ZKE`c0IGH^V_9gkOrB6Wd~5D5#5R)mG01y&1!EJ(^UO`j%df-Fkn z*7-S{d7$wg=3HbiCed3X=8Q56gtEdSp;C}cQ=<{d$CD(B29smFr0dj{El@+sGESjW zDVKOvlf0RaQX6>PaKC2Jwd!Q58M%Qo>C(s-nQR%R=hB;&!PU^aY1=r7#F}hcGk&BK z9+k#nC)aEpb1U_qzQySsy)}s`mSj@kqdXeytRUecqbD;i@~WKJzje&loKEYq-8K16 z-`JTPQ!Q2W&i*Q^kjk>&;1xvd#`0Cx30~7wZ`?X2i!P7b&KX$y8LwFywPxp2`}j^? zG8L){%D5b5tl#gtd{A#VC*(K7lbb<)&exZV!OD?;{4J0z6KLTMtymSU-XVOo53 zi!GD}!*RROj?x}Ii`Es-cGuCTQ?nbW6FDZ;Hya%wgR>Em`fk*Og}H-Pm0cMSa-qlO%(V`YY&A>3aHh^90(R z!f39TnRnwPNtDguj|!JfO++S+{lB9$T^}~I6J=|8L$tiqNBl)zHtbMrm}E$zX=ual zaoGPJUEVr@s-N@G*~*N(QgtZt67D$c8t1^2m$)=Z5hcGrwQ#0vDD+_YUF+t|y<^sr z1&hmtK-3l*f~)NM%GAXXp{^+qZnTAXlP#qyd9yFz`^wjtRlA_vQLpp)nd+ z(NcbWO{%-5E)tE}v6e`Q)yy_pA(!rDz34S zh9Y`FN}5HLnoZlaN0@9#eiC+OQ-z*Rcj_mYqN}De&WNB04b7vr^ODt{#H$i2-Q)R6 zUXm4BKBJIE&ZtX5nVhOBqOKVmc~#WC>6uke^BSt&b@`_12*x_K%qXC9KiSQTN@8ix z%wKwC=lWF5itvi6dj1P$*YK*PP{r&#Ix+jGPuC^O4R9jWt{*}Dw;%NBrmo#QGlq7~ z=^gF=5h+7NHE&&zOC9sZ@W7g$pHo8n=Vl@cznLp=H+w3$6Fi-cd3(7j)9dY6T{PGd z4@SaO1%9EdE)tFj1@(435Ddi%gaSBt!z$WwX9I5-GA*Ask@D^;rfKsxY`ZIu{ye{* znVM!`&wH7s35)1&3qs5^AR1d2MM7h#= z?4DJak%7^Wm_AV5&Lm5fpjYFZYt>^peAi)KT9`-L!d_UWslwWyCSs!m#HvQs-I?_I zqQgv-6^mwdl{j6CQ#dB7mgMYNatB6+rDMLB((mhLk|Y~6u(W_axbGiKQY6(GSenT( zP(`8qo>I=(c7HK#saZ@N_h-}B_m__m!okpwNtY$lQ+ZGPo#+D>I3`Py;Z)bA`fl~# zaFcZfs@s%HjkRNGN#lA5z3NJD0bOfc%Rn*7X>IxvdM=wHwJbZtRKsu=6w{*SD^Pj# zpQ_MlrpaItW*zI{4vuN6CVM_t!`)0XO^fy{$)Uc^WZE0q#dHyo4NVNR`6%8JXS$4S z-D5{Df0XH}g48w@Qn)>hjx0aPNzRkeh9q zv&0#Aq@DB0pofb1veA7qY1N}WKG{-`k(@OzW2B+y=Bz2AD{CHwWytP)5fUiV(Y1GC z22I;ZTUQ8xMHKMW)?!-PN=#H#9Y!A$HAQuHwWYcQKy?g}?Dvl~GSM=IT4g5c?Vn%; zQgg#2i`J}9r>l>Z)3L{&1xu_OtbJs|^9;`eg>p6qnPkcuZQ9rj)+#Fcc&RgK(^Qud zxI+SpTB>LtO{d#;Fj-TE@JXQup77J*&8wkG*eT)ZPVU7k0?@k?ZbE9;r_h<+Nz}i2 z6g6+@U}*Lh{jlW-Qxrv}BTu%|pE_QFkZC$?dMeBm6D@jZZRyi4=`8j7?#VRx^idEG zMGFt7ud@~81HG<)uBEhX8T9V9^WdJWdc|^x)-z4Q)^6n-q73?edoEE|9=+Q<5sf2* zvb#qyO_5Evh1-2_w;mU7X@Q@h=o=QfrbXVE*|s5J{F9x2)L3X{G!Q@+Nm_> znfuaFT0^{1G)+|8vz#l>oaa1Q-P)N;{gg(ZZ+`+r##P)%o_}r~hz$5}D$U(-JC5AE zqmAhx_w~DnnQn;^?bvxQ2Bzg)-C4;oLo_rezh?^PQw(GQ6fdJyFI<538xjdUC8&uS z=iIIb@!bR&yzljU4#QFbNPbT-9DeTXesPBDV9GN6<)!mJyxt_YTFRU&FHgV+3sAr; zrSeyvf`u@=eXhLn87$K{o$fx(AW9;9@Bo$Jam>5Oh?r#ER zO?Pb(ZG3$rXp3aIhT0!uvWVNb#{2!pd0Ema@Om-5{l+3DyPXgpZizg!3^3AL2bw`* zXhqS%nG6D_Qq#eog2AFpZysET0rV%;`7cvMQKeCDwt%kSSKFJHnIhxWdh;vy*Ka+; z6blm7Cr!04qflx@#SOXF4p!d+-*J|4=_u-AlA(Pj>!&sC@)jAe+v{ zV<{XurEL1?yMaRI?cX+XX^=20(H)=!{~4G>^M3bNA1GrPj`&`45{8DZJG~Mva!RIgl=mSghsqz#)YY;oP*PJF--RDy$9M_s83gq6&vrm;M2#+ ;; Copyright (C) 2000--2006 A.J. Rossini, Rich M. Heiberger, Martin @@ -6,7 +6,7 @@ ;; Original Author: Richard M. Heiberger ;; Created: 9 Dec 1998 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-dde.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-dde.elc index b60dafa2508b5fdb44ac579c4d192fd1f91cce87..9a453aa7b061eec0c5a71a1f5c5d9eee95a81f7c 100644 GIT binary patch delta 157 zcmeyX*sL@`#yd49GfyuuFQq88TrWAdR4+B9R3Sf4!L2A$!8fr|!O$3ptV~R-jLj5` z3=9pqtgWpT(u(qP71AaVIbWr5E!oVP-Nloa`wuThhWrGggyJqo63iEHfolK^#AI%{`3I*TBa^A=W)JQJMxgXco+ZpoCZ?19 h1!hZ{TWH2=a%mJ4<(Flqq$;SV78mQLq@-$c0RSW$CX4_8 diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-eldoc.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-eldoc.el index e1be4eed537b..bf1c3b738386 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-eldoc.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-eldoc.el @@ -5,7 +5,7 @@ ;; Original Author: Stephen Eglen ;; Created: 2007-06-30 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS @@ -29,16 +29,16 @@ ;; buffers. Eldoc is used in Emacs lisp buffers to show the function ;; arglist and docstrings for variables. To try it, view an emacs ;; lisp buffer, and then do M-x turn-on-eldoc-mode, and move over -;; function and variable namess. +;; function and variable names. ;; This file extends eldoc to work in R buffers. It currently uses -;; Sven's essd-r-args.el file to retrieve args for a given R function +;; Sven's ess-r-args.el file to retrieve args for a given R function ;; (via ess-r-args-get). Note that it works slightly different to ;; Sven's code, in that you just need to have the point over the name ;; of an R function, or inside its arguments list, for eldoc to show ;; the arg list. -;; To use this functionality, simply add +;; To use this functionality, simply add ;; ;; (require 'ess-eldoc) ;; @@ -69,6 +69,11 @@ ;; undesirable behaviour, in which case a solution would be to only ;; look up the function name if it is followed by (. +;; If you want to use this feature in *R* buffers, add the following +;; to .emacs: +;; (add-hook 'inferior-ess-mode-hook 'ess-use-eldoc) + + ;; In the current version, I do not cache the arg list, but that was ;; done in an earlier version, to save repeated calls to ;; ess-r-args-get. @@ -104,7 +109,7 @@ ;; following two defvars are not currently used. (defvar ess-eldoc-last-name nil "Name of the last function looked up in eldoc. -We remember this to see whether we need to look up documentation, or used +We remember this to see whether we need to look up documentation, or used the cached value in `ess-eldoc-last-args'.") (defvar ess-eldoc-last-args nil @@ -119,15 +124,15 @@ to look up any doc strings." name) (when ess-local-process-name (setq name (ess-guess-fun)) ;guess the word at point. - (unless (= (length name) 0) + (unless (= (length name) 0) ;; look up function name at point. (setq doc (ess-r-args-get name))) (unless doc ;; no function found at point; see if we are in a arg-list ;; of a function. (save-excursion - (condition-case nil - (progn + (condition-case nil + (progn (up-list -1) (setq name (ess-guess-fun)) (setq doc (ess-r-args-get name))) @@ -136,7 +141,7 @@ to look up any doc strings." (if doc (concat name ": " doc) doc))) - + (defun ess-eldoc-2 () ;; simple, old version. (interactive) @@ -155,9 +160,9 @@ This is the first version; works only on function name, not within arg list." (if ess-current-process-name (progn (setq name (ess-guess-fun)) ;guess the word at point. - (if (equal (length name) 0) + (if (equal (length name) 0) nil - ;; else + ;; else (unless (equal name ess-eldoc-last-name) ;; name is different to the last name we lookedup, so get ;; new args from R and store them. @@ -183,12 +188,11 @@ This is the first version; works only on function name, not within arg list." (defun ess-use-eldoc () "Switch on eldoc for ESS (R mode only)." (interactive) - (when (equal ess-dialect "R") - (set (make-local-variable 'eldoc-documentation-function) 'ess-eldoc) - (eldoc-mode t))) + (set (make-local-variable 'eldoc-documentation-function) 'ess-eldoc) + (eldoc-mode t)) ;; For now, while testing, switch on ess-eldoc. Later, ths could be removed ;; and instead ask user to add it. -(add-hook 'ess-mode-hook 'ess-use-eldoc) +(add-hook 'R-mode-hook 'ess-use-eldoc) (provide 'ess-eldoc) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-eldoc.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-eldoc.elc index 78d24828db95e7dfe34b168e68e1101b809e4ab1..5df6118efbb57c6bdc6c0c57c9bcfd05e9d71e65 100644 GIT binary patch delta 185 zcmbO!{8wm#jCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnOG_q z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOyp-`G?`q;R5AG#QwWo>(PRha zR7TUy%a|`PGFogdXWhWaWMnj1ll>}_so^A!NlG!s28KXvpcrFhXaHmw2>=OWAT|Mt e7?>+5L{C1?Av^g4hdHD9WDQPx#-PbrocaJrk~I$i delta 193 zcmew>G*ftjj8<`SVo^?NNr_%gesW@tLVlh?aA}@`Z(^l_f{}uuv6ZQrm64@_k%6JX zL~kiZi;e00OpKg0m4NUnNfIMR$HdKr;GBf}(Oay_1DG-|hMGVZ96rxj$i*-{n k6LV6NOB5#W" + "Set font-lock colors (leave fore-/back-ground alone) courtesy David Brahm " (interactive) (set-face-foreground 'font-lock-comment-face "Firebrick") ; #... %... (set-face-foreground 'font-lock-string-face "SeaGreen") ; "..." "..." @@ -157,9 +149,7 @@ (set-face-foreground 'font-lock-function-name-face "VioletRed") ; talk<- {center} (set-face-foreground 'font-lock-variable-name-face "Blue") ; xv (set-face-foreground 'font-lock-type-face "Goldenrod") ; T,F ? - (if (eq font-lock-reference-face 'font-lock-constant-face ) - (set-face-foreground 'font-lock-constant-face "Magenta") ; <- {eq1} - (set-face-foreground 'font-lock-reference-face "Magenta")) + (set-face-foreground 'font-lock-constant-face "Magenta") ; <- {eq1} ) (provide 'ess-font-lock) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-font-lock.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-font-lock.elc index 9b45c9862c244a5a25d3ab4ffed9cfb4f8506344..69ad57340203035e68a059e0436e7ea41c27a220 100644 GIT binary patch literal 4387 zcmds4O>g5i5Y4Tqk45jDDn(-hm10Rw94Cuyn*Hiw0~DL0J!}G$mMDveB)XIo!~ON0 z5p9!noa|<|mu(OM=5Y8p96k;o&tAQK@$KH;UhnMe3|`1`E()H)bP1_C=Y^;OR;7wB zf~0H%p0*$>c&!9nvL%Eu{-2IUr|}q~VHkE0nUW=B2m*&qIX~oe?H>hUd{~HDw=!8Z zej$_FfEV2eQNgQ{B{ke}RSU$Aq96=3+Cnrru%ZAtZ$v5nVGTOeL9ZM5doF4{Ra^5K z(q+X;kw7Ywx>2H<)jwgcsvBTwifh`;6HbC?67>2agFdbf`cv6f=^PF?h2gKl81%k| z{xkGYJOif(`k@c~f>$#P&gmHp2JrJQ-AJjn!RIo`PfyqAz}+^^Mt^-Bx?f=8<}NsR zUEm&0((7EgQaFqE7vH#cR4as^hGj!4k?#2T)3)XOjKwTbj<3H`M*X#AC%ZB@j zOgVVh@oM6^g@VEilLASCFmt zr_SZV?@WG4Gln-14SM_MM-#Z>jWsNhg;X^(65fdwr*JgNiIdg zgYSC%lxM6En6U#Vk-jQ(*neM%;{MVi3_o6n->n4=$JgF!XpwEV=c7I;Z%{ z?JUGBZ;~aev_r-cZg~OaABzL-dgoZ*E~iDyEnhPoc%?`yg3~UW-NiV{l4CI-aPVH^ z)=!n7kc>;#RtX(>ACER)IbL)#8J}CeTu7C!dVg!xyue6Ie}WaGVVij_lw9DdO#kY{ z=_vjXvf#}-p4uMGa=xDYO7N;;cIO>af=vr*^-yRC_g)#xB&yMLlBX*F#{(TGYf$BbDpRpI+g zn{8Fknj~N8I7&!_3F*>yLTR(qzo^SC*U`|sfs>W&ipJrQsU(x}?t2YiaO{p=8;bjf zv=_dX!1&&j6(8W$)~bfrOL)odL<$#*fm&B#=)U8qhAw-*IUxa?8!%5D>f;-E6(01&K)J~ zkj%T}sc6e>Rkeeq-cHfIgIM@vp+|-Z+7QxvBa4(*N;<;brMGvcb-b#7gtgr${PoQ2 z+VMI~14VZaTqUdV?6)(!v)_)tIe-23(E=z&#ec$mMPmQfal>kdI>ar4<_={BtD4l^C{527!j#QVtglL_! zOoR{>VOdF$FUoImRF)O6D8k)r;&?O1pE-k}h+)X`2!`{b&Z8w9aaxAmEMqkI42CZd zA$bhF5g2+l3{##jaB;nn(P#ue{HSIYa@+Z`2$Qq3);sY2J4U0wpm*`045s&=8{S5|#;e1_jJ1im& z)@|Ur_;_F4`X2qD$8TQ(d>P}58+?91Kk=EgV=kJf7QB=E&ss;Ex7}7n2#>@XDAL7HJ_%s0z3iVZvktKXWnXa>3Ai-mcxKeNJ%X1fS`xrFX8ZXz@JL;`wL^dKS!rH|beu zR^#W>+rW3fql_J6#>l5nPwUfn{c&TbOmFNOiLv}%EFWX}y;wf2*{A3#`J1HM$ajuu z54jz)kVDBUWS8U%Nw);g8gmQQWy->POAXHPSAQ@Si=+zIEY|>XV|OT^!%Ibulu^L) zemzfXZeY7`U}Yl8$(@FDt3-Nd94m=hqxBQ=W-bLSse{CI9#Xxqu`V>5!F5xl4s*}f zt3pPNn_p_VOnc)YmYa%g;#|sNg}dtJH`i6K;x|!Xp}gjiiKy1gHu#O;dCtti2POrZ zr@UL@9Rx5u{2CmXy5kWb{qBh4C*x;voU(-#fR3sR6Q1oQx&l9k>Eo8O$a%$mWM{*D z7jFadK0vmc7QFsmH;XXzoM;R(-J5Qht~{V$WV`mzFrDm*>8%|rh~j~c ztM?{NP%1R?MHlV>MGO^i5+}hopEQz&#EUN3O1zV>tCZ0)%Q z%KRqM;0y<`yoh+MWf@6uL*AnVHKm`rLZ+tLA^Wt^)9H}1JW*w2 zgrz}wpv$FvD(y;9$Y*20CbT=9U477&zU#n!PVQ_+OfFeBoV}5p_j-vQH?1oki8|Ys zhC9e@?QA=C@bOXe)A87PQ=}2kWzlP0`nSTmVhilJ7!s^)QO54nYY8@7$^!Ypx7z5@ F;BVtkp~C ;; Created: 7 Jan 1994 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS @@ -397,10 +397,10 @@ Other keybindings are as follows: ;; section headings. (setq ess-help-sec-map (make-sparse-keymap)) - (mapcar '(lambda (key) - (define-key ess-help-sec-map (char-to-string key) - 'ess-skip-to-help-section)) - (mapcar 'car ess-help-sec-keys-alist)) + (mapc '(lambda (key) + (define-key ess-help-sec-map (char-to-string key) + 'ess-skip-to-help-section)) + (mapcar 'car ess-help-sec-keys-alist)) (define-key ess-help-sec-map "?" 'ess-describe-sec-map) (define-key ess-help-sec-map ">" 'end-of-buffer) (define-key ess-help-sec-map "<" 'beginning-of-buffer) @@ -465,11 +465,11 @@ to see which keystrokes find which sections." Keystroke Section --------- -------\n") - (mapcar '(lambda (cs) (insert " " - (car cs) - " " - (cdr cs) "\n")) - keys-alist) + (mapc '(lambda (cs) (insert " " + (car cs) + " " + (cdr cs) "\n")) + keys-alist) (insert "\nFull list of key definitions:\n" (substitute-command-keys "\\{ess-help-sec-map}"))))) @@ -498,10 +498,8 @@ Stata or XLispStat for additional information." (string-match "XLS" ess-language) (string-match "STA" ess-language) (string-match "SAS" ess-language))) - (let* ((help-files-list (or (ess-get-help-files-list) - (mapcar 'list - (ess-get-object-list - ess-current-process-name)))) + (let* ((help-files-list + (ess-get-help-topics-list ess-current-process-name)) (default (ess-read-helpobj-name-default help-files-list)) (prompt-string (if default (format "%s(default %s) " p-string default) @@ -516,15 +514,45 @@ Stata or XLispStat for additional information." ;;*;; Utility functions +(defun ess-get-help-topics-list (name) + "Return a list of current S help topics associated with process NAME. +If `ess-sp-change' is non-nil or `ess-help-topics-list' is nil, (re)-populate +the latter and return it. Otherwise, return `ess-help-topics-list'." + (save-excursion + (set-buffer (process-buffer (get-ess-process name))) + (ess-make-buffer-current) + (ess-write-to-dribble-buffer + (format "(ess-get-help-topics-list %s) .." name)) + (if (or (not ess-help-topics-list) ess-sp-change) + (setq ess-help-topics-list + (ess-uniq-list + (mapcar 'list + (append (ess-get-help-files-list) + (ess-get-help-aliases-list) + (ess-get-object-list name))))) + ;; else return the existing list + ess-help-topics-list))) + (defun ess-get-help-files-list () "Return a list of files which have help available." - (mapcar 'list - (apply 'append - (mapcar '(lambda (dirname) - (if (file-directory-p dirname) - (directory-files dirname))) - (mapcar '(lambda (str) (concat str "/.Help")) - (ess-search-list)))))) + (apply 'append + (mapcar '(lambda (dirname) + (if (file-directory-p dirname) + (directory-files dirname))) + (mapcar '(lambda (str) (concat str "/.Help")) + (ess-search-list))))) + +(defun ess-get-help-aliases-list () + "Return a list of aliases which have help available." + (apply 'append + (mapcar '(lambda (a-file) + (if (file-exists-p a-file) + (ess-get-words-from-vector + (format + "names(.readRDS(\"%s\"))\n" a-file)))) + (mapcar '(lambda (str) (concat str "/help/aliases.rds")) + (ess-get-words-from-vector + "searchpaths()\n"))))) (defun ess-nuke-help-bs () "Remove ASCII underlining and overstriking performed by ^H codes." @@ -579,7 +607,7 @@ Stata or XLispStat for additional information." (require 'reporter) (let ((reporter-prompt-for-summary-p 't)) (reporter-submit-bug-report - "ess-bugs@stat.math.ethz.ch" + "ess-bugs@r-project.org" (concat "ess-mode " ess-version) (list 'ess-language 'ess-dialect diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-help.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-help.elc index d90a6d66d900a7b3f700c154ea5927c07aee5573..09ec5d89582bb482318164718cc75c5521cfa639 100644 GIT binary patch delta 1704 zcmah}&2!sC6t`r@`66Km1wy`fmgCk=Ek&!9B0Fh2%@j(ZQ(#htOXUI8mJ?-c$(7`W z42N8}Fm#48d*D(I%rFCo0>cOnFgfI3fK#s=IB@C#7~sZR$ua#nV0opt@4fxKeZTj1 z?}lH$cYEQo({Vk;_F93nr!>2L#cB1y_uyjS!WDZT2*v-puCLP?XeuES8yg$Y4*V{( z-HrpRQMb41grRIGgnnz!iDFG>pJi9r7b1uTO~l{D1)-iu>)ArKrm83_>{j-KP($gG zs2lj9>}WpEmUB-ht|ivUofg(mf0BKZTNX@|O6;H9;)tPDAYyNiNbKy$yr`+{m;5Pq zXLO8xFan6jXFrWd18F{A6?H99_VQ&!;pU?}B+_M!#OH60z91S#BHkG_1T+45G?x=K z65pHra2$bJ&)gGg@!4m85OCRF&s`A>m0g^D6?Graem^GG_4ra@Q#>eIR5Ng_;V>;q z)#+tR!bc-2&d4;{sfL3VA5!V4G9FeT0yT#!%d@DiP8SCXo#0d}Sej}|aII_a`hnc_ zTTVQ+Toc&KrEb1!_nLOV;?kEQHR8reTNHJ|j>>_uOX4Zj$Z+H7bqDMDe^vOxSXwe&B%(9XE`?Z$q;m1dbQMRoHPlJxG^<9fp3> zwIinmdv3G?y})l`=fZ27S6)&kUTMQSypO}4+}yFfZRZrYA$Yzgdu|8(AhmKl8S$F9 z51EHcz1&U}%7Igndw#Fq!4MPCjsqw}P5^keAV|09Mhd{|Xbbk-(5W7)lfcK&Lu9t3 z&A*lIJqZQHYh};wIu+ooVJoQ=hdx#)+(Nsb1E`yBYSI)3a z^TaOjs_>UNRw$-^9ayKY}cUjvX|2dUmuEmQ$c1@6^=lu}TkxtWNa!zK&Or nZq(VI#$i^k8S!^(E5cO3n}rum@q_L7zWJ$;HB_B_RA2lTuP6K{ delta 863 zcmZ8fOKVd>6wb^|(uUHY(%4W7=(1jbJv*)`a`}3L%)0A@aKgl>X^k?6aLVZRbRR0eTI|EvF6%v`pr2!crQL?( zMyEzb4-y9~ZP<Y3yeX!nz^J8`)j zTuh(Cn<}FOHzBNp-HvBL%P7vM5`xBC2EibB_FqkaCjZkQk+2Rm)c|Tkh66=HM#<8O zQ#(WE>h4N&Er<<_A?&W{$y{CU~3ti9+J@9to=@uTD*URXjjNtlT&()V=GB#I#n)4;j=8OsTzBAM z3iZ*}4mDDXz>B}W-=qAK#$8>ltrJ+Qjca;e-tBfsK0824gmJsf1Iyk;2FxY+T86O- q)6(CaT|>ah&S(K0^?cVa)m?w7RP~oON|mKx@9YC)NXqo~Sn4Mvo$tN? diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-inf.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-inf.el index 54153b7c0bcc..b8d01f7de790 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-inf.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-inf.el @@ -8,7 +8,7 @@ ;; Original Author: David Smith ;; Created: 7 Jan 1994 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS @@ -54,7 +54,7 @@ (autoload 'ess-transcript-send-command-and-move "ess-trns" "(autoload).") -(autoload 'ess-R-complete-object-name "essd-r" "(autoload).") +(autoload 'ess-R-complete-object-name "ess-r-d" "(autoload).") (autoload 'ess-eval-region-ddeclient "ess-dde" "(autoload).") (autoload 'ess-eval-linewise-ddeclient "ess-dde" "(autoload).") @@ -445,25 +445,14 @@ This was rewritten by KH in April 1996." ;;*;; Requester functions called at startup -;(defun ess-get-directory-ORIG (default) -; "Request and return S starting directory." -; (let ((the-dir -; (expand-file-name -; (file-name-as-directory -; (read-file-name -; (format "ESS [%s(%s): %s] starting data directory? " -; ess-language ess-dialect inferior-ess-program) -; (file-name-as-directory default) -; (file-name-as-directory default) t nil))))) -; (if (file-directory-p the-dir) nil -; (error "%s is not a valid directory" the-dir)) -; the-dir)) - (defun ess-get-directory (default) + (let ((prog-version (if (string= ess-dialect "R") + inferior-R-version ; notably for the R-X.Y versions + inferior-ess-program))) (ess-prompt-for-directory default (format "ESS [%s(%s): %s] starting data directory? " - ess-language ess-dialect inferior-ess-program))) + ess-language ess-dialect prog-version)))) (defun ess-prompt-for-directory (default prompt) "`prompt' for a directory, using `default' as the usual." @@ -642,7 +631,7 @@ Returns the name of the selected process." 'require-match ;; If in S buffer, don't offer current process (if (eq major-mode 'inferior-ess-mode) - ess-language + ess-dialect ess-current-process-name ;; maybe ess-local-process-name IF exists? ))))) @@ -826,7 +815,7 @@ Assumes that buffer has not already been in found in current frame." inferior-ess-ddeclient, and nil if the ess-process is running as an ordinary inferior process. Alway nil on Unix machines." (interactive) - (if ess-microsoft-p + (if ess-microsoft-p (progn ;; Debug: C-c C-l fails (to start R or give good message) in Windows (ess-write-to-dribble-buffer @@ -1104,7 +1093,7 @@ default 100 ms and be passed to \\[accept-process-output]." (if (or wait-last-prompt (> (length text) 0)) (while (progn - (accept-process-output nil 0 timeout-ms) + (accept-process-output sprocess 0 timeout-ms) (goto-char (marker-position (process-mark sprocess))) (beginning-of-line) (if (< (point) start-of-output) @@ -1151,7 +1140,7 @@ this does not apply when using the S-plus GUI, see `ess-eval-region-ddeclient'." (process-send-string sprocess "\n")))))) (message "Finished evaluation") - (if ess-eval-deactivate-mark + (if (and (fboundp 'deactivate-mark) ess-eval-deactivate-mark) (deactivate-mark)) ;; return value (list start end)) @@ -1162,6 +1151,17 @@ Arg has same meaning as for `ess-eval-region'." (interactive "P") (ess-eval-region (point-min) (point-max) vis "Eval buffer")) +(defun ess-eval-buffer-from-beg-to-here (vis) + (interactive "P") + (ess-eval-region (point-min) (point) vis "Eval buffer from the beginning +of the buffer until here, i.e. 'point'")) + +(defun ess-eval-buffer-from-here-to-end (vis) + (interactive "P") + (ess-eval-region (point) (point-max) vis "Eval buffer from here ('point') until +the end of the buffer")) + + (defun ess-eval-function (vis) "Send the current function to the inferior ESS process. Arg has same meaning as for `ess-eval-region'." @@ -1365,6 +1365,10 @@ the next paragraph. Arg has same meaning as for `ess-eval-region'." (ess-force-buffer-current "Process to load into: ") (ess-check-modifications))) (let ((errbuffer (ess-create-temp-buffer ess-error-buffer-name)) + (filename (if (and (fboundp 'tramp-tramp-file-p) + (tramp-tramp-file-p filename)) + (tramp-file-name-localname (tramp-dissect-file-name filename)) + filename)) error-occurred nomessage) (ess-command (format inferior-ess-load-command filename) errbuffer) ;sleep ? (save-excursion @@ -1424,7 +1428,11 @@ the next paragraph. Arg has same meaning as for `ess-eval-region'." ;; Use syntax valid *both* for GNU emacs and XEmacs : (define-key inferior-ess-mode-map "\r" 'inferior-ess-send-input) (define-key inferior-ess-mode-map "\C-a" 'comint-bol) - (define-key inferior-ess-mode-map "\M-\r" 'ess-transcript-send-command-and-move) + + ;; 2010-06-03 SJE + ;; disabled this in favour of ess-dirs. Martin was not sure why this + ;; key was defined anyway in this mode. + ;;(define-key inferior-ess-mode-map "\M-\r" 'ess-transcript-send-command-and-move) (define-key inferior-ess-mode-map "\C-c\C-l" 'ess-load-file) ;; the above OVERRIDES comint-dynamic-list-input-ring --> re-assign: (define-key inferior-ess-mode-map "\C-c\M-l" 'comint-dynamic-list-input-ring) @@ -1603,7 +1611,7 @@ to continue it." ;; i.e. put it as a buffer local var, in S or R defuns... ;; ;; SJE: Do you mean that we should put this code into (R) and the S - ;; dialects? I agree that would be cleaner. e.g. in essd-r.el, for + ;; dialects? I agree that would be cleaner. e.g. in ess-r-d.el, for ;; the R defun we could have: ;; (inferior-ess r-start-args) ;; (R) ;; (setq comint-input-sender 'inferior-R-input-sender) ;; <<- add this. @@ -1614,6 +1622,9 @@ to continue it." ( (member ess-dialect '("S3" "S4" "S+3" "S+4" "S+5" "S+6" "S")) (setq comint-input-sender 'inferior-ess-input-sender)))) + (when (string= ess-language "S") + (local-set-key "\M-\r" 'ess-dirs)) + ;; Configuration for Stata input handling ;; AJR: Stata is hell. This is the primary configuration point. (when (string= ess-language "STA") @@ -1858,12 +1869,14 @@ A negative prefix argument gets the objects for that position (interactive "P") (ess-execute inferior-ess-search-list-command invert "S search list")) +;; FIXME --- this *only* works in S / S-plus; not in R +;; ----- ("at least" is not assigned to any key by default) (defun ess-execute-attach (dir &optional posn) "Attach a directory in the `ess-language' process with the attach() command. When used interactively, user is prompted for DIR to attach and prefix argument is used for POSN (or 2, if absent.) Doesn't work for data frames." - (interactive "DAttach directory: \nP") + (interactive "Attach directory: \nP") (ess-execute (concat "attach(\"" (directory-file-name (expand-file-name dir)) "\"" @@ -2091,7 +2104,7 @@ completions are listed [__UNIMPLEMENTED__]." (if classname (ess-slot-names classname) ;; Default case: It hangs here when - ;; options(error=recoves) : + ;; options(error=recover) : (ess-get-object-list ess-current-process-name))))) ;; always return a non-nil value to prevent history expansions (or (comint-dynamic-simple-complete pattern components) 'none)))) @@ -2146,7 +2159,7 @@ Returns nil if that file cannot be found, i.e., for R or any non-S language!" (defun ess-get-object-list (name) "Return a list of current S object names associated with process NAME, using `ess-object-list' if that is non-nil." - (or ess-object-list ;; <<- MM: I think this is now always nil + (or ess-object-list ;; <<- MM: this is now always(?) nil; we cache the *-modtime-alist (save-excursion (set-buffer (process-buffer (get-ess-process name))) (ess-make-buffer-current) @@ -2155,7 +2168,7 @@ using `ess-object-list' if that is non-nil." (progn (ess-write-to-dribble-buffer "--> (ess-get-modtime-list)\n") (ess-get-modtime-list)) ;;else - (ess-write-to-dribble-buffer " using existing ess-*-alist\n") + (ess-write-to-dribble-buffer " using existing ess-sl-modtime-alist\n") ) (let* ((alist ess-sl-modtime-alist) (i 2) @@ -2229,7 +2242,7 @@ In all cases, the value is an list of object names." ;; Take a directory listing (and ess-filenames-map ;; first try .Data subdirectory: - ;;FIXME: move ".Data" or ``this function'' to essd-sp6.el etc: + ;;FIXME: move ".Data" or ``this function'' to ess-sp6-d.el etc: (let ((dir (concat (file-name-as-directory obj) ".Data"))) (if (not (file-accessible-directory-p dir)) (setq dir obj)) @@ -2348,7 +2361,8 @@ form completions." (if (featurep 'xemacs) ;; work around Xemacs bug (comint-dynamic-complete-filename) ;; GNU emacs and correctly working Xemacs: - (comint-replace-by-expanded-filename)) + ;;(comint-replace-by-expanded-filename)) + (comint-dynamic-complete-filename)) ;; always return t if in a string t))) @@ -2443,7 +2457,7 @@ The result is stored in `ess-sl-modtime-alist'." (setq searchlist (cdr searchlist))) ;;DBG: (ess-write-to-dribble-buffer - (format "ess-get-modtime-list: new alist of length %d\n" + (format "(ess-get-modtime-list): created new alist of length %d\n" (length newalist)));; todo : also give length of components! (setq ess-sl-modtime-alist newalist))) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-inf.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-inf.elc index 758bdfdb4927f9660ec3b7ecbee2eabd77a692bb..2320cac884ccd7d85df25c1c2b8c14853ba141e7 100644 GIT binary patch delta 2764 zcmZuzeQX>@759Fe9XrW3q46b-V`qK7V4vJQ@67D%hpmLPgxF~kB}57#@brA` zIwJ5Jv8)l|>exi6V{~*>pDq>W^y#n==);w{`Qe~kHfR=+ALK$=@>rjeX4hmC&vwg* z#)7j-zwBA@^pDCAL#>;bp$^95ado4N>sv3V6prc2CbmA&z1k=l`IJ5|*q_$3I>K&U zCro5yyFPt3F(g^BdVA|Y)5gbI(~4~(exkKkk{o`n?b-_2rtHj`CE3O7Xi{fi=vDJ zE%S+K`ryHt-Kg z#x|eJlvK&(OU9xM*X0xDX1I~f9!8fWhb`bMa7&*YkY$Yd(-h0HKh58CPJu4rb0e!2 z*>l)ko3F|q;>9havTB>Q%bwi&sA5}~?YaF&ifa=%cx$l3t=Va|}2v&%Uujk2|qBWpe+X`7Dv7?~RJvE@Kc=?)%Do|9KN z*n;A8^lwF;$1Ybh%>2}HetYmqskXka7b=2Ht$SH}zc>pEqzMuBQ(~RT)Jug)Ut`;X zO$rN>)LOI+jj;!W_GYmtx4;yfBb4lcH9py*i4l~AJlX3L00ki^HpjbX#-z2=lf`P3 zpV#w2ZmJS4mQ;iskFQ*81t@~4;=Q73cKdsCN7S#qPYCcwp{=2kqShOFx_S**V0eg@ZTC}}Q3nw0V$Fzg znV+mfh*;Wie2@^@-w88Yhd*ckn#@Xp6nJVD__Y8h7J>(iS^z)5qba7S1^6S@Lrzo8 zis2M1U>qN&no*ZUbzKX$h*12f-XcSSb1?LY)uIiF8}tgQvV3fVc~Z0DJ3~9fE(vYX zL@>^l*cOBhI#j@zz=+_s!WHU;R6zJZZ6d6ug}Q%2L{t>wr@)8tT|iR^-xm~04rN5c z(Kcu@Li=vxXHS--UCsWe0N>3U^?&hpG3NF6Eu!39U=)f|xq_HAcJg7l3~Xw|>O#&F zcYO}ZjR7#9zxzwlahCqzf34n^1Uc)_-b}J$S0XhwqVP8Gu9XRaM0yl%cU( z`R@B(TTuhW2EiW}_l>IrqgAiFwhiVtG$1i?tx&QHtdr!rc>BFK1jZummXlluc#9bZ zvS7|@+q89B*QRod7Nq?Tr6- zweYV!bVlxp0b-Pcig6@Z1fs-GmI-xkEiuA325 z2=uF`yZA$oo^J()arx*sJ7mQ(DIfp#21NxBIBfPi|5Ysv>~rM1n%rhto(Y7^?|uTw zDg}Dt&pdTqQ7Ls@{$qX#sLONt1J8`fssjb&OV2(pIM3wgFKkg%mjF!v{QS>V55nY+ z|MVWV_SUTjf3*WL6P4X zNcmhbUkOE*hUH3TM4u`J@UF|Vzx?%s5Ip89-};G^uuTe~z4G>R5D?t#^wl%K+!pqD z&$SESotW(6yVs$C9f<#LCbTjogx&J@f3J5fQ@rE{;e%))%m?~_@Cu(ynU4Pf^-U2f delta 2199 zcmZuyeQZ|M8Sgpwye}>2O%3Ih0@nM!ecO7$;yvH@mO+$NVB$xkA&hvtthL3}wJ)Wu zNHwKypxY9bFwWvv)B*k>BpS0FG=9`Xor!LdIb8zF7)cjt90`icW{g{md(ORWGL!vr z&ppq_`90_Sp7T6s|0muvfARE)Ry~;rd!X2YP-LH3bm=lIWAn?VS*)d*x-u}2EStsBO{?a~(k!BO>dM(g zh}rL5y$xZ`?TbMTVXbUi!0?drsk0wPI{U%d&|b-5Q^F_ zzP-=$IFIe#&Hc#ZDz@jg3?SfwneLm8lQ@x){p_YP!i?LcH@84cVfn3pKn0p4irHe% zj(ShQ9{az$o_JD8dn_FxsL3?;&5@MT$b8Y)iPM^C>zAm@+}YpNv;p~TyHiFZpQlV{ zU_x%OC;Feno|4>d8GIH^FE6(=r<_H8bA3ara|MC=PQ@H`Gzvq94KgohNGkw^PuBS> zK_%8ZVWbYG5{$I85@fd588auRFRg-6!KbtJ^$p!%a|s!r=o_1`Q+LP6och5bFV>Oy z{?K1Y9IMbi_QOf!(MZ^)k#)!uv9!0>wql~=h})y1+km}<+b?&2j7Y43(DUQ(Vvn)J zys&4kz>-90`}lp$XbIJE7*xj6T2IA1ecuZ6>5WBmZtpoy0C}%ZUV%uYnX(_=UqoI6 z$Y&o|h8mf2YkDfZ;o{cosSu_-q7UC+FyERwMW__9xqRO{kQsA&pPGgvuez!Q2+9xW zuWm>yewgzHd@w)E*dOS3%%z-1{u)OK%xLQ}7+C-V-_{gf?)a(!k6gg#9Dp$njJey( zAOXBC-MPT2^AQoSISrs--UsUh^}~$cwC3C(o~Uy>NNaiiJHiZzQB~)6fPuDL3ks1k z4#-@vhJ0}rEYfxUwV>o1GAIr*ND!21_)9pWbEYkwx8ydZR`-QSecBWS*O zlRK!tdBGiUrX7%^qYkFJpa(7_WLyGW5`3hr!YM$>77W1Y|2IH(zF|=FE4YJNpwHz{ z(LC5RR}e|@jV0g@&b=j1u@VcX5T*I7E19W)YNdKgu4`CHr=PkGn|qG*nCE^qQ|b+LkUue8YFC%F zq2b=pl!In_;mDDq7YS((KD!uuoHG0PiB%q9F&E~Q=e{Oztk}*x@8fzNCmJfc+kWr@ z#Y6}Z+v0D&@`!-0Y8Sn97DJ;^cJAfPm_T=xHhS%K=r6GPvzZMZ(K?9?d*inxR?wEe zd;{)g9K*ZuqqlBfKNEWpb` zxt;r4iaaK$>HcWW{Ol)JHBR&fVxA$X;UTeioZnOMs8aU53p=nWf7ApoLHEUW*qE>* z7hgjKc%cBY^V1m!2XD#6OFxG$7(+o!{o_@@X3TW`^D6=fP%8h5pb!%#&92Y?y@GKT aLQlMAbZpn2p@G4mV{m-DbEvj6T>M{GziM^> diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-jags-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-jags-d.el index 29517a3035b9..360200b42999 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-jags-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-jags-d.el @@ -4,7 +4,7 @@ ;; Original Author: Rodney Sparapani ;; Created: 13 March 2008 -;; Maintainers: ESS-help +;; Maintainers: ESS-help ;; This file is part of ESS diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-jags-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-jags-d.elc index bbc11a7df35f575803f01a10ef4700084b630d5e..61833fdd5622b9cedb1e73379404c0eb40c1b5a2 100644 GIT binary patch delta 207 zcmX?Za@J&mjCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnOGKPhuOyp!{GBlX1&#E-Jk2#vj7{cUb z@nJLv3)ZlBFqxTxnJ-venan}VIwlK)$?I9$87(%Ov+1%hn;DpHPUm9cU^L&HCFI4( uXt{Z-@FpfEGn37kVs4B~rbe4LiW@O;S{P_5YECv}5}nK_KBL&9-d1EX<~smYZ|Am^c^>Hx~$bF)|u&-YvX|iOJMrbH11xBa?~Q=I!D}OdyS~ GC6fRTyECK! diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-lsp-l.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-lsp-l.el index 369c9231a049..69985a11b014 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-lsp-l.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-lsp-l.el @@ -6,7 +6,7 @@ ;; Original Author: A.J. Rossini ;; Created: 1 Sept 1997 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-lsp-l.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-lsp-l.elc index 8aaa6da1bb4809a54d912dee6e6eba671714e139..f52a33a2aaddbf35e342902d8657d5e101fb5fb3 100644 GIT binary patch delta 93 zcmZqS?&6*x`K|>o1 delta 85 zcmeC;ZsDFFqg9-oSd^1mQlgiWpPZPZke{azT$-ogn^>u!V5DGZY-MU@Wn`jYWMF78 o(OZhqVq-cdtCWSArY4t0K~a8LW=g7pdTMd8ZccH5ZjL4w07uyvf&c&j diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-menu.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-menu.el index cfa736a1c6c1..1e9250312b54 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-menu.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-menu.el @@ -6,7 +6,7 @@ ;; Original Author: A.J. Rossini ;; Created: September 4, 2000 -;; Maintainer: ESS Core Team +;; Maintainer: ESS Core Team ;; Keywords: statistical support diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-menu.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-menu.elc index 3525f8dd064a57eaf94883b7f1cc9ee5317d2cab..78c96a0a74380f32e0d96a31e1439704419605fe 100644 GIT binary patch delta 136 zcmaFJ|D1nKPhuOiX2BvNYU$g6T06lbOlpwXAxK l%%%pWlkc&;k~G(h)#TDBD9SI(Oi5Kx2kFU8%`4U90sx1*DnI}L delta 88 zcmV-e0H^=w58)4x94d2TVRCF`baXCkZ)0I>Aa8CUQ*~}2O<{Q;ATl5^GdeXkIx;XI uGB7bPkxLo@II(AC0s=TSv(5tJ0s=KSv$F**0RuESIg{iD>H#s6&j%Rr0vlZb diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-mode.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-mode.el index 855ae6cc028a..6405dfcdecf3 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-mode.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-mode.el @@ -6,7 +6,7 @@ ;; Original Author: David Smith ;; Created: 7 Jan 1994 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS @@ -136,6 +136,8 @@ (define-key ess-mode-map "\C-c\M-r" 'ess-eval-region-and-go) (define-key ess-mode-map "\C-c\C-b" 'ess-eval-buffer) (define-key ess-mode-map "\C-c\M-b" 'ess-eval-buffer-and-go) + (define-key ess-mode-map (kbd "C-c C-") 'ess-eval-buffer-from-beg-to-here) + (define-key ess-mode-map (kbd "C-c C-") 'ess-eval-buffer-from-here-to-end) (define-key ess-mode-map "\C-c\C-f" 'ess-eval-function) (define-key ess-mode-map "\C-c\M-f" 'ess-eval-function-and-go) (define-key ess-mode-map "\C-c\C-c" 'ess-eval-function-or-paragraph-and-step) @@ -197,6 +199,8 @@ ) ("ESS Eval" ["Eval buffer" ess-eval-buffer t] + ["Eval buffer till here" ess-eval-buffer-from-beg-to-here t] + ["Eval buffer from here" ess-eval-buffer-from-here-to-end t] ["Eval region" ess-eval-region t] ["Eval function" ess-eval-function t] ["Eval func/para & step" ess-eval-function-or-paragraph-and-step t] @@ -235,6 +239,12 @@ ["Undo" undo t] ["About" (ess-goto-info "Edit buffer") t] ) + ("Roxygen" + ["Update/Generate Template" ess-roxy-update-entry t] + ["Preview Rd" ess-roxy-preview-Rd t] + ["Preview HTML" ess-roxy-preview-HTML t] + ["Toggle Roxygen Prefix" ess-roxy-toggle-roxy-region t] + ) ("Start Process" ;; SJE - :help not yet recognised in XEmacs. ["R" R t] ;; :help "Start a new R process" :active t @@ -737,7 +747,7 @@ With prefix argument, only shows the errors ESS reported." "Insert character and correct line's indentation." (interactive "P") ;; skeleton-pair takes precedence -(if (and (boundp 'skeleton-pair) skeleton-pair (fboundp 'skeleton-pair-insert-maybe)) +(if (and (boundp 'skeleton-pair) skeleton-pair (featurep 'skeleton)) (skeleton-pair-insert-maybe "{") ;; else (let (insertpos) @@ -748,7 +758,7 @@ With prefix argument, only shows the errors ESS reported." (bolp)) (if ess-auto-newline (progn (ess-indent-line) (newline) t) nil))) (progn - (insert last-command-char) + (insert (if (featurep 'xemacs) (event-to-character last-command-event) last-command-event)) (ess-indent-line) (if ess-auto-newline (progn @@ -927,7 +937,8 @@ of the expression are preserved." ;;;*;;; Support functions for indentation (defun ess-comment-indent () - (if (looking-at "###") + (if (or (looking-at "###") + (and (looking-at "#!") (= 1 (line-number-at-pos)))) (current-column) (if (looking-at "##") (let ((tem (ess-calculate-indent))) @@ -949,25 +960,28 @@ Return the amount the indentation changed by." (setq indent (current-indentation))) (t (skip-chars-forward " \t") - (if (and ess-fancy-comments (looking-at "###")) - (setq indent 0)) - (if (and ess-fancy-comments - (looking-at "#") - (not (looking-at "##"))) - (setq indent comment-column) - (if (eq indent t) (setq indent 0)) - (if (listp indent) (setq indent (car indent))) - (cond ((and (looking-at "else\\b") - (not (looking-at "else\\s_"))) - (setq indent (save-excursion - (ess-backward-to-start-of-if) - (+ ess-else-offset (current-indentation))))) - ((= (following-char) ?}) - (setq indent - (+ indent - (- ess-close-brace-offset ess-indent-level)))) - ((= (following-char) ?{) - (setq indent (+ indent ess-brace-offset))))))) + (cond ((and ess-fancy-comments ;; ### or #! + (or (looking-at "###") + (and (looking-at "#!") (= 1 (line-number-at-pos))))) + (setq indent 0)) + ;; Single # comment + ((and ess-fancy-comments + (looking-at "#") (not (looking-at "##"))) + (setq indent comment-column)) + (t + (if (eq indent t) (setq indent 0)) + (if (listp indent) (setq indent (car indent))) + (cond ((and (looking-at "else\\b") + (not (looking-at "else\\s_"))) + (setq indent (save-excursion + (ess-backward-to-start-of-if) + (+ ess-else-offset (current-indentation))))) + ((= (following-char) ?}) + (setq indent + (+ indent + (- ess-close-brace-offset ess-indent-level)))) + ((= (following-char) ?{) + (setq indent (+ indent ess-brace-offset)))))))) (skip-chars-forward " \t") (setq shift-amt (- indent (current-column))) (if (zerop shift-amt) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-mode.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-mode.elc index e8a474c9c0d91b1f7325f1e10327541be908c66f..41b71fc3555a9e143f55afdea0547ecba49bb88d 100644 GIT binary patch delta 2162 zcmah~?Qc_67;o=A?b?nN*oJ$7;%z6e3El3w=f3nZ5JVZ}Wr>;Xz;Q?D=xHf*ZRy$# zjIkyr7!xss^U*}*9}w}XAJ9*Jk>FdR(Zo*@jWIF&1;!6P=iHWUL^N4?&htFK=lA@c zbI)^j=Xd{`fBLU)J5I}`%6P7luhW(BbBoP!nr|xAiZWF%Dbu+t3MTNkSJ(FvThUaE zBa@SpN}*m|R0^dsRVEsXwF$bklr+XMxt$x3q!eK<<}-IsSuDWkpZWj*~*uxZriHy92kZUhi}18o61*oN7cXn^I= zPWJi6ZniPd>o+@?bYRd=*sZQ1U<9IlN24tLAL@NpY|@!Xsk+K0F{B zK=vSf#GiuSQRYNOd0ST_A4phZX7^A2GpuJrSt2I8wjt4vjS)w~szX!~c8IPy1Y7L( zhJ>S=>jIWT40Wx?zyMvBY(TQ6t-}!T=<7T>cuaSqC*e;X^R0=%O*-y#;P=EM-f7Rv zUXAYG&*LvX63>Wu_7U%_FXWL!#z}!V<$fKV^Jh;J<+)_DHm~q2N|$rxdq6|5t0w zE2k5OL66c-78CU!$!p3htI2g*ELGjVx9kbDW~!I36lo;^yxCel*Ps(eXoc2cqh#n} ztqdDaR~>+GBpd?GH0oD8z8C6rxkOi#nfw}9&2uJa^6NqA%=C%%uxEL4lKVYmrdlk* z^UzkM0DGZyc}+?~#FIjd=%V7rw_cFsly0%NV>eMsC8kTZ-|IywY}?F_?;--PkNXWK zVWbnwbkXEzl5AKu`(pnCWNInZ{pcCLUp6%CetO`VBwH!$P95r(kfjsio_QY2vTfSz z#*u3q`2b)Xhx-Nh9L8ikJunM*7i*XKa8$-1pliNvSP0xVf_23k8f`I;|;77ipO`sugzl=vCRWHTT=2@5#vKCva){hhP9SswO*{v0Hi{@ToABs?J*@ zTet~|AfEN?5-cD_U@U>z4H&HQuJGVK4jT1^4#KL9`9fSHKOa8%?UUgMi>DBdv3;dX zc%Gx+)-~9#nH>Z1gaZFgXtL5=T!1OdHIlXJl7bn^{?;OdXL5bk3O~Od&UV0KgQMbl z^t~O^5b{LSR3Oa~EpS^?`+0Fk13p2KZRcp>i;{%<7*GbDU{}V0fynGaG{Q7VP8HpcXn1-aLu^2z(s%q6oI4r>?^`9 zT;R*Uf!V&3?+ztK9`}WQK6wklky`Fsr=AKTXwr5+J~I}8F(U5$a|s!l7+k^P43cfj xc28gYLq;hO=1x^#laQ^ZOm^?mk6SIGj?IrnMr-xzaw$)hUHsu)tmf%huv(?rP(PYUkcNcYb1m5lo1QvBCV2b%buyZjGcH zjVUT3sUSkJ#h-&B_#}c4J_KYaqQ3f20_uZQMPGa=LJ_3C2_l|*XVt`qnK|eC&iT&Y zT)C}%eoK4P8hviPvAubIXXpOSt@XyHz16Z8FSYFX#*4PiY|6)kH^v;BIn;S;Zcqz8 zxzJCD@55y>qjBibEx1KS2@TMEKy&at0`KQdcvj$%6 zcTr=k^IjP29L92EoePAyaJ6%fI3A22`A(aKzOKz871fAQC*lq_BhI~u<1Sz6st}jK zr(KokFz+JI*uf0fN5nmd2oz)9A%sR;9Lf?L5jPgy745#6)PY$16=qWrzUTgjKB~}p zcr`cClT8vZYEhv}@n5;R7Vi}Xbi)li5%2e1C-EOgX*#}RtrMMx4y+D;VEDoh<3ES@ zdkx>m@%Gsbg9&WoUCvE|hct}88vlamlreby!Cws#Fdn}&scE|7x$*8p*HDSMasJ^V zF}%?C;*n{p>w+?P;*o2+4laT^W$axVv=p__beB?__~A>~CuNAshrS>;-l|ESrH-_D zPPv_2g1U*(TyOgcp#rBVYpq-hxN0ESk=MV?J1yBlwn{pWwQgL3UiDJ}Ltu7-qS(G()<@S`)R$G`crG&1! zH%m^J8^CC4M^WuR`3soqE=zTM9F)wJa)b3KIvgR|5vrfuF-aeompf5&quz^39^Np~ z5;S!#TR*dsc)pNca&0x35A$n-g!!u{%7=arKDDB+TDG%Y!&cNSu2zcE9 diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-mouse.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-mouse.el index d8823a755dce..55fc4f80789e 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-mouse.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-mouse.el @@ -6,7 +6,7 @@ ;; Original Author: Richard M. Heiberger ;; Created: 25 Mar 2001 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-mouse.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-mouse.elc index d348fe3c9525e7ab7b24921eb15cc8c68302a262..85260cf8be5f5b1a798d7e17148755980b113dd4 100644 GIT binary patch delta 116 zcmbPgINNZ7jCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnHVS- z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOw?j#vNYJ-%e;=6(PFa=`)w8= RCBd_ci^k%6JX rL~kiZi;d}8%uE(0n>wimz(N{F diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-noweb.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-noweb.el index 54a0a41edf5b..00dfe05f848a 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-noweb.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-noweb.el @@ -7,7 +7,7 @@ ;; Original Authors: Mark Lunt ;; A.J. Rossini ;; Created: April 18, 1999 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: statistical support ;; Summary: Noweb support for ESS diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-noweb.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-noweb.elc index c4b612c35d1ccc70a0735375862a82544f613fa3..5d5a3223710a753c0d87810bda9643b26b68295b 100644 GIT binary patch delta 123 zcmeAZnj$no#yd49GfyuuFQq88TrWAdR4+B9R3Sf4!L2A$!8fr|!O$3ptV~R-Obir^ z3=9pqtgWpT(u(qP71AH@a%a+T?WM;Yf4Lc_zld;+4?;NrKXiXco diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-omg-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-omg-d.el index 498661e8b594..473385b5cf57 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-omg-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-omg-d.el @@ -6,7 +6,7 @@ ;; Original Author: A.J. Rossini ;; Created: 15 August 1999 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-omg-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-omg-d.elc index 4a524e3460b11a04f61e673594c5562814467044..f8eabb9585ba001f648186715560daa0449bc8a2 100644 GIT binary patch delta 135 zcmeAXog_Lz#yd49GfyuuFQq88TrWAdR4+B9R3Sf4!L2A$!8fr|!O$3ptV~R-Ow1LG z3=9pqtgWpT(u(qP71A-94d2TVRCF`baXCkZ)0I>Aa8CUQ*~}2O<{Q;ATl5^GdeXkIx;sP zGB7bPkxLo@II(9a0s=TTlaT^N0yR04*aA%fFta8D^aBDgII|oFp#cFhv%Uxg0RlER mlf?HWpi^aZ*6BSWGM<0VkT1n diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-omg-l.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-omg-l.el index fa2a83e4feb6..fd0a6d522c7a 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-omg-l.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-omg-l.el @@ -6,7 +6,7 @@ ;; Original Author: A.J. Rossini ;; Created: 15 Aug 1999 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS (Emacs Speaks Statistics). diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-omg-l.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-omg-l.elc index 44088e6f5fe2c71b6ce4d2be984693c3015d180f..2f72dfb04889bd6b794dddd932cefa1ca04bbf27 100644 GIT binary patch delta 135 zcmcbic28}BjCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnV2gW z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOuWIwWNx_GnmK`)$;4>$TsBQM mM$5^^c>);CHcRk|vM^e1))Sn<$Yf|V`G`<8qs3$gVF>^)RVOt7 delta 127 zcmV-_0D%AACfFvB94d2TVRCF`baXCkZ)0I>Aa8CUQ*~}2O<{Q;ATl5^GdeXkIx;sP zGB7bPkxLo@II(Bg0s=NQvq1x30|GNPv!ezn1_3jZ%?wZhFtZ*F6$Ak@vosNu0Rk{K hlgbi%88Rs;3Mg=LZ+2;9WgsVIb8{_kZD%cPDGH(th$778oSAdZaNxeIy{$c!j^&Np*E;>KFYmRB-mNCPx8U{R(0Ada z69YHsG)=Qv7a(-bbFEej9N+7Kk5fk}MxW^7obWe=n8db$_I4_unoIV+1LaPsI0EG)m&xZdv|VE P!d9{XzuNIH12y*z$SinX delta 451 zcmYk2%}T>S5XYNV)V4P0rS`jn6>Nmm?55u+BzP1B5ifNLhMKL#wkb)}tSx~0C=G5TN);p}z@$A%9;fvC+& zwW+E=6{0*HrG)xh_cIh!tCPmkWhhv$OrBRTD3Hl_SQ7+g(ufj4Amf|0uZKi3mChg~ zB-=!)l(T^tFO&vi8mgpxz%S}vfVUNh=~^q=noo6Y1KG^j42X7ss|ri5Ra-8e$kx+(e8gX2f)*TvFGh1vv+G#8nQaIGE-m%8$wg zBBl#mQT|1Wm>3_5q`1ttt8KvrvyFi%yVeMPyS~X>VAsIzf%(9^@vHc8KC+yi+vC6M zSupTrPqr9yOcy-xXMw*6T+?&gP=jJ&8%n@mQ +;; Maintainers: ESS-core ;; Keywords: start up, configuration. @@ -34,7 +34,7 @@ (ess-message "[ess-r-d:] (require 'ess-s-l)") (require 'ess-s-l) -(require 'ess-r-args); for now +(require 'ess-r-args); for now --- should the default rather become ess-eldoc? ;; modify S Syntax table: (setq R-syntax-table S-syntax-table) @@ -116,6 +116,7 @@ Optional prefix (C-u) allows to set command line arguments, such as If you have certain command line arguments that should always be passed to R, put them in the variable `inferior-R-args'." (interactive "P") + ;; get settings, notably inferior-R-program-name : (setq ess-customize-alist R-customize-alist) (ess-write-to-dribble-buffer ;; for debugging only (format @@ -134,10 +135,14 @@ to R, put them in the variable `inferior-R-args'." r-always-arg "'] ? ")) nil))) - ) - ;;Micro$ ?: default-process-coding-system ;-breaks UTF locales on Unix: - (if ess-microsoft-p - (setq default-process-coding-system '(undecided-dos . undecided-dos))) + use-dialog-box) + + (when (or ess-microsoft-p + (eq system-type 'cygwin)) + (setq use-dialog-box nil) + (if ess-microsoft-p ;; default-process-coding-system would break UTF locales on Unix + (setq default-process-coding-system '(undecided-dos . undecided-dos)))) + (inferior-ess r-start-args) ;; -> .. (ess-multi ...) -> .. (inferior-ess-mode) .. ;;------------------------- (ess-write-to-dribble-buffer @@ -172,10 +177,11 @@ to R, put them in the variable `inferior-R-args'." (ess-eval-linewise inferior-ess-language-start nil nil nil 'wait-prompt)))) + ;;;### autoload (defun R-mode (&optional proc-name) "Major mode for editing R source. See `ess-mode' for more help." - (interactive) + (interactive "P") (setq ess-customize-alist R-customize-alist) ;;(setq imenu-generic-expression R-imenu-generic-expression) (ess-mode R-customize-alist proc-name) @@ -188,13 +194,42 @@ to R, put them in the variable `inferior-R-args'." (ess-imenu-R))) ;; MM: ^^^^^^^^^^^ should really use ess-imenu-mode-function from the ;; alist above! - ) - + (run-hooks 'R-mode-hook)) (fset 'r-mode 'R-mode) +(defun ess-R-arch-2-bit (arch) + "Translate R's architecture shortcuts/directory names to 'bits', + i.e., \"32\" or \"64\" (for now)." + (if (string= arch "i386") "32" + ;; else: + "64")) + +(defun ess-rterm-arch-version (long-path &optional give-cons) + "Find an architecture-specific name for LONG-PATH, an absolute (long name) path + to R on Windows. Returns either Name, a string, or a (Name . Path) cons, such as + (\"R-2.12.1-64bit\" . \"C:/Program Files/R/R-2.12.1/bin/x64/Rterm.exe\") + +\"R-x.y.z/bin/Rterm.exe\" will return \"R-x.y.z\", for R-2.11.x and older. +\"R-x.y.z/bin/i386/Rterm.exe\" will return \"R-x.y.z-32bit\", for R-2.12.x and newer. +\"R-x.y.z/bin/x64/Rterm.exe\" will return \"R-x.y.z-64bit\", for R-2.12.x and newer." + (let* ((dir (directory-file-name (file-name-directory long-path))) + (dir2 (directory-file-name (file-name-directory dir))) + (v-1up (file-name-nondirectory dir));; one level up + (v-2up (file-name-nondirectory dir2));; two levels up; don't want "bin" ... + (v-3up (file-name-nondirectory ;; three levels up; no "bin" for i386, x64 ... + (directory-file-name (file-name-directory dir2)))) + (val (if (string= v-2up "bin") + (concat v-3up "-" (ess-R-arch-2-bit v-1up) "bit") + ;; pre R-2.12.x, or when there's no extra arch-specific sub directory: + v-2up))) + (if give-cons + (cons val long-path) + val))) + + (defun ess-r-versions-create () - "Generate the `M-x R-x.y' functions for starting other versions of R. + "Generate the `M-x R-x.y.z' functions for starting other versions of R. On MS Windows, this works using `ess-rterm-version-paths'; otherwise, see `ess-r-versions' for strings that determine which functions are created. @@ -207,17 +242,17 @@ defuns will normally be placed on the menubar and stored as ;; else, if ess-r-versions is non-nil, let's try to find those R versions. ;; This works by creating a temp buffer where the template function is ;; edited so that X.Y is replaced by the version name - (let ((versions) + (let (versions + r-versions-created (eval-buf (get-buffer-create "*ess-temp-r-evals*")) - (r-versions-created) (template ;; This is the template function used for creating M-x R-X.Y. (concat "(defun R-X.Y (&optional start-args) - \"Call R-X.Y, i.e., the R version 'R-X.Y' using ESS. + \"Call the R version 'R-X.Y' using ESS. This function was generated by `ess-r-versions-create'.\" (interactive \"P\") - (let ((use-dialog-box nil);; Win-only: dialog box won't return a directory + (let ((inferior-R-version \"R-X.Y\") (inferior-R-program-name \"" (if ess-microsoft-p "Rterm" "R") "-X.Y\")) (R start-args))) @@ -232,49 +267,46 @@ This function was generated by `ess-r-versions-create'.\" ;; Find which versions of R we want. Remove the pathname, leaving just ;; the name of the executable. (setq versions - (if ess-microsoft-p ess-rterm-version-paths - ;; ^^^^^^^^^^^^^^^^^^^^^^^ created in - ;; ./ess-site.el at start + (if ess-microsoft-p + (mapcar '(lambda(v) (ess-rterm-arch-version v 'give-cons)) + ess-rterm-version-paths) + ;; ^^^^^^^^^^^^^^^^^^^^^^^ from ./ess-site.el at start ;; else (non-MS): (ess-uniq-list (mapcar 'file-name-nondirectory (apply 'nconc (mapcar 'ess-find-exec-completions ess-r-versions)))))) + (setq r-versions-created ; also for returning at end. + (if ess-microsoft-p + (mapcar 'car versions) + versions)) (ess-write-to-dribble-buffer (format "(R): ess-r-versions-create making M-x defuns for \n %s\n" - (mapconcat 'identity versions "\n "))) - (if (not ess-microsoft-p) - (setq r-versions-created versions)) ;keep copy for returning at end. + (mapconcat 'identity r-versions-created "\n "))) ;; Iterate over each string in VERSIONS, creating a new defun each time. (while versions (let* ((version (car versions)) - (this-version version) + (ver (if ess-microsoft-p (car version) version)) (beg (point))) (setq versions (cdr versions)) - (when ess-microsoft-p - (setq - version (file-name-nondirectory ;; two levels up; don't want "bin" ... - (directory-file-name (file-name-directory - (directory-file-name (file-name-directory version))))) - r-versions-created (cons version r-versions-created))) - (insert template) (goto-char beg) - (while (search-forward "R-X.Y" nil t) - (replace-match version t t)) + (while (search-forward "R-X.Y" nil t) ;; in all cases + (replace-match ver t t)) (when ess-microsoft-p (goto-char beg) (while (search-forward "Rterm-X.Y" nil t) - (replace-match this-version t t))) + (replace-match (w32-short-file-name (cdr version)) t t))) (goto-char (point-max))) ) ;; buffer has now been created with defuns, so eval them! - (eval-buffer) - (kill-buffer eval-buf) - ) + (eval-buffer)) + (unless (and (boundp 'ess-debugging) ess-debugging) + (kill-buffer eval-buf)) + r-versions-created))) (defvar ess-newest-R nil @@ -323,16 +355,15 @@ prompt for command line arguments." (fset 'R-newest (intern (if ess-microsoft-p - (file-name-nondirectory - (substring (file-name-directory - (substring (file-name-directory rnewest) 0 -1)) - 0 -1)) + (ess-rterm-arch-version rnewest) rnewest))) ;;(fset 'R-newest (intern rnewest)) (R-newest start-args)))) ;; (ess-r-version-date "R-2.5.1") (ess-r-version-date "R-patched") ;; (ess-r-version-date "R-1.2.1") (ess-r-version-date "R-1.8.1") +;; Windows: +;; (ess-r-version-date "C:/Program Files (x86)/R/R-2.11.1/bin/Rterm.exe") ;; Note that for R-devel, ver-string is something like ;; R version 2.6.0 Under development (unstable) (2007-07-14 r42234) ;; Antique examples are 'R 1.0.1 (April 14, 2000)' or 'R 1.5.1 (2002-06-17).' @@ -341,15 +372,16 @@ prompt for command line arguments." The date is returned as a date string. If the version of R could not be found from the output of the RVER program, \"-1\" is returned." - (let (ver-string - (date "-1")) - (setq ver-string (shell-command-to-string - (concat rver " --version"))) + (let ((date "-1") + (ver-string (shell-command-to-string + ;; here, MS Windows (shell-command) needs a short name: + (concat (if ess-microsoft-p (w32-short-file-name rver) rver) + " --version")))) (when (string-match "R \\(version \\)?[1-9][^\n]+ (\\(2[0-9-]+\\)\\( r[0-9]+\\)?)" ver-string) (setq date (match-string 2 ver-string))) - (cons date rver))) + (cons date rver))) (defun ess-current-R-version () "Get the version of R currently running in the ESS buffer as a string" @@ -372,6 +404,7 @@ Return the name of the newest version of R." (let ((rtimes (mapcar 'ess-r-version-date rvers))) ;; SJE: 2007-07-13 -- following line is a temp var to check that ;; the newest version of R is found correctly. + ;; (nowadays gives a compile warning) (setq ess-temp-newest rtimes) (ess-find-newest-date rtimes))) @@ -401,12 +434,13 @@ If the value returned is nil, no valid newest version of R could be found." new-r)) -(defun ess-find-rterm (&optional ess-R-root-dir) +(defun ess-find-rterm (&optional ess-R-root-dir bin-Rterm-exe) "Find the full path of all occurences of Rterm.exe under the ESS-R-ROOT-DIR. If ESS-R-ROOT-DIR is nil, construct it by looking for an occurence of Rterm.exe in the exec-path. If there are no occurences of Rterm.exe in the exec-path, then use `ess-program-files' (which evaluates to something like \"c:/progra~1/R/\" -in English locales) which is the default location for the R distribution." +in English locales) which is the default location for the R distribution. +If BIN-RTERM-EXE is nil, then use \"bin/Rterm.exe\"." (if (not ess-R-root-dir) (let ((Rpath (executable-find "Rterm"))) (setq ess-R-root-dir @@ -418,6 +452,8 @@ in English locales) which is the default location for the R distribution." (format "(ess-find-rterm): ess-R-root-dir = '%s'\n" ess-R-root-dir)) )) + (if (not bin-Rterm-exe) (setq bin-Rterm-exe "bin/Rterm.exe")) + (when (file-directory-p ess-R-root-dir) ; otherwise file-name-all-.. errors (setq ess-R-root-dir (ess-replace-regexp-in-string "[\\]" "/" ess-R-root-dir)) @@ -428,9 +464,11 @@ in English locales) which is the default location for the R distribution." (file-name-all-completions r-prefix ess-R-root-dir)) (append '("rw") ess-r-versions)))))) (mapcar '(lambda (dir) - (concat ess-R-root-dir - (ess-replace-regexp-in-string "[\\]" "/" dir) - "bin/Rterm.exe")) + (let ((R-path + (concat ess-R-root-dir + (ess-replace-regexp-in-string "[\\]" "/" dir) + bin-Rterm-exe))) + (if (file-exists-p R-path) R-path))) R-ver)))) ;; From Jim (James W.) MacDonald, based on code by Deepayan Sarkar, @@ -466,9 +504,16 @@ To be used instead of ESS' completion engine for R versions >= 2.5.0 (ess-get-words-from-vector (concat NS ".retrieveCompletions()\n"))))) - (or (comint-dynamic-simple-complete token-string - possible-completions) - 'none))) + ;; If there are no possible-completions, should return nil, so + ;; that when this function is called from + ;; comint-dynamic-complete-functions, other functions can then be + ;; tried. + (if (null possible-completions) + nil + (or (comint-dynamic-simple-complete token-string + possible-completions) + 'none)))) + ;;;### autoload (defun Rnw-mode () @@ -577,6 +622,20 @@ Completion is available for supplying options." "&idxname=Rhelp02a&idxname=functions&idxname=docs"))))) +(defun ess-dirs () + "Set Emacs' current directory to be the same as the *R* process. +If you change directory within *R* using setwd(), run this command so that +Emacs can update its `default-directory' variable for the *R* buffer. + +Currently this function has been tested only for *R*, but should also work for +*S* buffers." + (interactive) + (let ((dir (car (ess-get-words-from-vector "getwd()\n")))) + (message "new (ESS / default) directory: %s" dir) + (setq ess-directory (file-name-as-directory dir))) + (setq default-directory ess-directory)) + + ; provides (provide 'ess-r-d) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-r-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-r-d.elc index d1ccd3ff105e28ba6ffad2a5c8cb3dcefb4145f1..bcd82d7c696b5e44403ab6a030f763898eb5b8c7 100644 GIT binary patch delta 3550 zcmZ`+U2Gd!6}FocC2sBhWYeZ;njVi^$4)%<+D|Qg5)iM*0&CY*fpGp*AujLX0$b$u`@Yb$(hy^nt@LZmqg}L zQyDLE9T%!N(F8tPB6FFB7IGtUZtN$kW#y)en?ge}?$L-X=JCz(5t;ltp3&leWzMY8 zowQ9GRa(UbCLbYmcgt!<(7-o>+{n6DQ+`Gw&3^k6d-j^F9cm zq4qq>mXi$-P{>_^GU#=#6+u~7;y=$U3|0-e=bLWOHA5R3O97aEd&>#!b{P3K1Y4dT zwxckpSdNctp8p73vu6hoda%@T!eFVC0;g=3OP~m@fail^=n51%IC8z6V)zDy7Q3y0tx#+$Ta%98ouv(QS0q z2Jo?BRj#cTH;Sp;b-kv+EyuOMbPwpG27SBjbey(S0#L>QeEBPPUQ^d^+E5N=`MZ12}^1N6O|&^aIH zgr>u5wrl&8=oql@;I_JpVITu%c>1NEBxeO8qcjC!m;_O#W#d20<_E_f5|r82H|R4> zTA_x5A>uIuu~Z@LR%r#(l~xf41xFs73`27x+5G%1UJN*XjNa4i=XlEEdu?W}9wXVs9aSd}d*w z)$lrDWR~!aNX%G{Ht9^1kUW}P*AtmSOD-eABOT!mN+POAOIIQR@n{NN%j9pMr=R15 zM{5a7a#$hG4J6kY5Xa>r4$%<07#E-#Ph^O#-sCld=yVJnlBg5kJ*%C!(U)o~>VU6~ z13FOKzKwpf;_sie;uCYyjOJ(`V>MRNmEqikV>f?Ylcy%@Y!TeuO z)iuV81m+A&6oGmCwsSosa8j^$Wobrye;{d|C(gI1lALC}$ROiM0lj2ujn_3Zoz zDhLu>XZoRbMY*Y{Ou@oyce{vH zz4&wG#LNrK8~;~%|M*^(uhy`g3Uhxy$~0~mL+etM#9>vd5C3vGMZ`T%fE zmBmKIG9(K)g|zb25rnH_w3sE6Fti+cVV#^Xmq6Q~h1Rnt@q;!VVF{vybYAfo66pmx zRhvOP(4_0C1RHy>QbA0~;o(thhu`OMgU|-iT5brQj<2n-^Z}9M-pb?5LCxZY(w`Qj z$0?eob4~Y6bgx#U{M4!^6UX9LR?f~5ULW9uFiNE+elmG6epyY)o)?XR855{|jH!(c zsEy-_F~iV@@2j6C=P~8k;v6x4i}W(mnK>Ci##=+Z^3!D6*gL{k4Q=?Db}cz6>NPDc z@o!J+oYmu>^KVV+cyRbd@yq0-Ue#8I|Iwcuozz#E9{=jf*+K3)HcxQZ4q>flwu2>T zN4{^nAyu1kH-}wKYg7*cN?L5vs5UG&mZ9%^Z4B5lg~uZ=g7%i_Zrb~f?qJ{JxRN#s zFrgu^!yT(oEKvuFY@9)W9Z#=E4MyPMf*Gcy9MHzTEb7Z>#}*PEP=gqCL+p0PVl81k z^BuE=|2j~!vL_OPBBDt-m3nogNB0q36F?_&+f?IW3*~Rw7_^}sg!TX%8y9Ja1!`1+ zRuoc88+EZW?4n3Jp8o;urk3w6<0df=4mYeQRe(5(86n#StPYxL|K;3lG_VvXw9o5Yd3Zr64$ zQbi;b@j?-oQ7a*MK>{S;1+;JFiM}B53wS^RUQs|iA;c4B)-fu@*6i7t`OeHa-}%ly zIF^3xygOTHRV!Y@X}61wX0_5lO&4u+Ty&{&h!91Dt!VlRqljXH-+N(3GQZwl?(b7| zez*U*K4SSl_TL+ju-_WI(l1f}`;jlDqo_?WGeS0_c*>T+kXSlxQ-W=Vbr=RL(OAZo zPZueJ1r;WkHAArlVK=~AV5#;nMh`G$ak2p@`Wn13oXWzJz@V{g3CuMHcadN)re?*( zd4b*+Xo1sU{2v1WQLMpG0~|~rMHTql6ACYxVgBi3fB7Ge%2K~uZ}10WcX)Yxr_V6> zcjKSLwHfdiITCytJ0S=>k0;8ApP(z@%AGhDCj9xC#Up#`mdMYk-405_6z=V=$a03QFv+LYo@ZBw|O5xy4zsA3cx#Z+Q%1(nDT^WTy<=_z}T*Qz(& zmQwW`;Jk*My-Gvb>}+v!wl=b^yi&ZjjOs+4ASk zp{sRQX}XQW71Z5BVsF3cF13;8v^$=QDzM`@)ppZ6wX?kO&(_WAGAIsQS44fjIXa=iEFl~jAD-s;7RHl6J=FtiXpRV| zjHocQmmYotb_;wp`x*abZkqQcCdV;SNEw-@Q5lw{@}b2)UItBJHSst+HQN=pmeONj zg1#6G1j?qweL|2F7DgksTUdkQ88UjcCOQGCq_o;z-Q7kWya(;FyOiP|E!9VQjb!S? z&%~0)UpiLrGuH4|BiAj@qw8!e)a6)Q69+= zA#ht3+&~9lJuRX(0!rc{L_8=6ASI!!L`Y;qXem7k29oSj1l`n?7%b?(9DGTh7Owxc zT_gi|3gkZ0Y}3$f!$BjaXJHfgX4u}cWuBtb{8^mfyZ9?!AU}+PD-Jjvgbx$eF7tUh z!(XI1S>CL>XV=?~ccbVWIC2?jc-0-$ aEz}B ;; Created: 25 July 1997 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS (Emacs Speaks Statistics). @@ -33,7 +33,7 @@ "Current version of ess-rd.el.") (defvar essddr-maintainer-address - "Kurt Hornik " + "ESS Core Team " "Current maintainer of ess-rd.el.") (defun Rd-active-mark () nil) ;silence compiler. @@ -87,6 +87,7 @@ All Rd mode abbrevs start with a grave accent (`).") (define-abbrev Rd-mode-abbrev-table "`sa" "\\seealso") (define-abbrev Rd-mode-abbrev-table "`se" "\\section") (define-abbrev Rd-mode-abbrev-table "`so" "\\source") + (define-abbrev Rd-mode-abbrev-table "`ss" "\\subsection") (define-abbrev Rd-mode-abbrev-table "`sy" "\\synopsis") (define-abbrev Rd-mode-abbrev-table "`ta" "\\tabular") (define-abbrev Rd-mode-abbrev-table "`ti" "\\title") @@ -132,20 +133,25 @@ All Rd mode abbrevs start with a grave accent (`).") '("Rdversion" "arguments" "alias" "author" "concept" "describe" "description" "details" "docType" "encoding" "enumerate" "examples" "format" "itemize" "keyword" "name" "note" "preformatted" "references" - "seealso" "section" "source" "synopsis" "tabular" "title" "usage" + "seealso" "section" "source" "subsection" "synopsis" + "tabular" "title" "usage" "value")) (defvar Rd-keywords '( ;; the next two lines: only valid in R <= 2.8.1 - "Alpha" "Gamma" "alpha" "beta" "epsilon" "lambda" "mu" "pi" "sigma" - "ge" "le" "left" "right" + ;; commented out on 2011-01-14 for ESS version 5.13: + ;; "Alpha" "Gamma" "alpha" "beta" "epsilon" "lambda" "mu" "pi" "sigma" + ;; "ge" "le" "left" "right" ;; - "R" "S3method" "S4method" "acronym" + "R" "RdOpts" "S3method" "S4method" "Sexpr" "acronym" "bold" "cite" "code" "command" "cr" "dQuote" "deqn" "dfn" "dontrun" - "dontshow" "dots" "email" "emph" "env" "eqn" "file" + "dontshow" "donttest" "dots" "email" "emph" "enc" "env" "eqn" "file" + "href" "if" "ifelse" "item" "kbd" "ldots" "linkS4class" "link" "method" - "option" "pkg" "sQuote" "samp" "strong" "tab" "url" "var" ;;maybe? "verb" + "newcommand" "option" "out" + "pkg" "sQuote" "renewcommand" + "samp" "strong" "tab" "url" "var" "verb" )) ;; Need to fix Rd-bold-face problem. @@ -276,14 +282,13 @@ Variables you can use to customize Rd mode Turning on Rd mode runs the hook `Rd-mode-hook'. -To automatically turn on the abbrev and font-lock features, add the +To automatically turn on the abbrev(iate) features, add the following lines to your `.emacs' file: (add-hook 'Rd-mode-hook (lambda () - (abbrev-mode 1) - (if (eq window-system 'x) - (font-lock-mode 1))))" + (abbrev-mode 1))) +" (interactive) (text-mode) @@ -471,17 +476,20 @@ following lines to your `.emacs' file: (defun Rd-preview-help () + "Preview the current buffer contents using `Rd-to-help-command'." (interactive) (require 'ess-help) (let ((sbuf buffer-file-name) (pbuf (get-buffer-create "R Help Preview"))) (set-buffer pbuf) (erase-buffer) - (shell-command (format "%s %s" Rd-to-help-command sbuf) t) + (shell-command (format "%s '%s'" Rd-to-help-command sbuf) t) + (setq ess-help-sec-regex ess-help-R-sec-regex + ess-help-sec-keys-alist ess-help-R-sec-keys-alist) (ess-nuke-help-bs) (ess-help-mode) - (if (not (get-buffer-window pbuf 'visible)) - (display-buffer pbuf t)))) + (unless (get-buffer-window pbuf 'visible) + (display-buffer pbuf t)))) ;; Bug reporting (defun Rd-submit-bug-report () diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-rd.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-rd.elc index e453887543ee126094e6d871fdc8482c8f5bb9e6..1878e427abfddfe13bcd0d4d3fe9fb619c7f1d86 100644 GIT binary patch delta 978 zcmYLIOK1~O6m@2j(#B##KhmG}b<#FXZPNKAYFa_)R7@u?$=J+HI-h>1 zs5?OsgtrsHg^0RvA+r^wTi0$}xDW&vB7!S7qW7h-fqD0H&be>yym#kA;WvKNzkn;I zoypq;7w=>YE6CtNfE*iLbWOCF-$SAd&vZ6Btw=}`L@_oqGlPn*W1*s1!Dzy_suS4r z(n>~@-{d=3R#nJ0yC_{)SwZI=7o%02x6oNCF(93H(^c2Gi48yFxTRShjV6Xr2C3O> zik#sRq=$RSOp>ROVe*X|VKj)w$#kTTQOE%|LT*KPMg?rCuIY#l)HK87T9h*TQ3A|C zYiC54G$l+nAvPvA>$0Z8(!#msA57fi5wGiBu;D=yrel+2>=~!YQ?xAn68p?>lB9$O zt;=jnL(|$eJDP*STw%HD(;Zf13;SiKK*MY!#Jg3OylcCD$@YEh`M?&OnjTwuvjQo$ zs%7eIqh`0M-Lk>b(*##`aS@z(XmG_Nb8$_x@s8nG7TgkWPL;MzgMhxEx>*A2T?rhY zZs6jEm^_Flnh?K@-Hq^d{4K-ES+dz)h9mmeevX|y{N(YDy(p^*w`GeW zkVvQ=$dF`VDaUm?0bbSl8dK~#(Rs290IjZ+g#UrqqRWz`^K-f+DB>|lWI$-;7$6#t z);0q2cVawA2fWr>E)9c~c5w;sq9gDKB4ff@BsuIQ$vt7=TtjeJwTbtR2CNWK36hdv~> delta 779 zcmX|8O-vI}5O#N4XzLG+MMJ^BV@t7%wCw-3NCds0A%qB;5LryN?QU7wpR&6Zi6(L| zF)=|QbMauj7~@}JV)mvN&t8pJFCL6W58l+1ZwvU6H}iep%)Gpr`K^DbZ=V?PYno^2 zK~S>Xnr0!_K?^Mh&1xG6@rV<~C3##B5YKY#&P*>+e$&X1q*Q@hm7fnidG>PDa!Yi?afbVB7>QRQVN9PL0P-04n- zPT~^*i>b$yT#>>*sb2)emAUZep*a#Rbd6ssT!5n$|@jg`pH!&X-oUUw})cl!9@>sZm(qPGmwg88&^ z%xwl{`|;*#1Izx!mK*5sKAj7{r{57IUxsH#S8&tm%sGM&7c%$bq%6Xhp37LPWH$*m ze4Bkiqy!m{AvaZ4#L(`0N*+O)Q%8pD1Vy~aRp{xzIgv`D_9>VKD(Guy-E`{idePtT z1Kma^Z!oDO&M5pZD%#OJIR>8r*vV(Ym;J9OJVH5Kq_+r?W8rJ=UWdpa2eB-2GKQonSm!`!?#6MV5LEo=hy^BGQP@Swl}#JDXPG+ zXb*6h@c0S`RVRnNsM328X+K5Y2TD>Ecvht+@#>{h2QcBV5|xZ#MWNABwPhH(S2RqR gWApHcy+Y=F_{+|8E+Z-We|VR>L{Ji^z-PYqAFblv)c^nh diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-rdired.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-rdired.el index 512630d0aefe..e523d1ce786c 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-rdired.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-rdired.el @@ -5,7 +5,7 @@ ;; Original Author: Stephen Eglen ;; Created: Thu 24 Oct 2002 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS @@ -84,16 +84,24 @@ (defvar ess-rdired-objects ".rdired.objects <- function(objs) { - if (length(objs)==0) + if (length(objs)==0) { \"No objects to view!\" - else { + } else { mode <- sapply(objs, function(my.x) { - eval(parse(text=(paste('data.class(',my.x,')',sep=''))))}) + eval( parse( text=sprintf('data.class(get(\"%s\"))', my.x))) }) length <- sapply(objs, function(my.x) { - eval(parse(text=(paste('length(',my.x,')',sep='')))) - }) + eval( parse( text=sprintf('length(get(\"%s\"))', my.x))) }) d <- data.frame(mode, length) - row.names(d) <- paste(' ', row.names(d), sep='') + + var.names <- row.names(d) + + ## If any names contain spaces, we need to quote around them. + quotes = rep('', length(var.names)) + spaces = grep(' ', var.names) + if (any(spaces)) + quotes[spaces] <- '\"' + var.names = paste(quotes, var.names, quotes, sep='') + row.names(d) <- paste(' ', var.names, sep='') d } }; .rdired.objects(ls())" @@ -192,17 +200,25 @@ for more information!" ) (defun ess-rdired-object () - "Return name of object on current line." + "Return name of object on current line. +Handle special case when object contains spaces." (save-excursion (beginning-of-line) (forward-char 2) - (if (looking-at " ") - nil ;on first line - ;; - (let (beg end) - (setq beg (point)) - (search-forward " ") ;assume space follows object name. - (buffer-substring-no-properties beg (1- (point))))))) + + (cond ((looking-at " ") ; First line? + nil) + ((looking-at "\"") ; Object name contains spaces? + (let (beg) + (setq beg (point)) + (forward-char 1) + (search-forward "\"") + (buffer-substring-no-properties beg (point)))) + (t ;should be a regular object. + (let (beg) + (setq beg (point)) + (search-forward " ") ;assume space follows object name. + (buffer-substring-no-properties beg (1- (point)))))))) (defun ess-rdired-edit () "Edit (fix) the object at point." @@ -214,34 +230,50 @@ for more information!" "View the object at point." (interactive) (let ((objname (ess-rdired-object))) - (ess-execute objname nil "R view" ))) + (ess-execute (ess-rdired-get objname) + nil "R view" ))) + +(defun ess-rdired-get (name) + "Generate R code to get the value of the variable name. +This is complicated because some variables might have spaces in their names. +Otherwise, we could just pass the variable name directly to *R*." + (concat "get(" (ess-rdired-quote name) ")") + ) + +(defun ess-rdired-quote (name) + "Quote name if not already quoted." + (if (equal (substring name 0 1) "\"") + name + (concat "\"" name "\""))) + (defun ess-rdired-View () "View the object at point in its own buffer. Like `ess-rdired-view', but the object gets its own buffer name." (interactive) (let ((objname (ess-rdired-object))) - (ess-execute ;;(concat "edit(" objname ")\n") - objname + (ess-execute + (ess-rdired-get objname) nil (concat "R view " objname )))) (defun ess-rdired-plot () "Plot the object on current line." (interactive) (let ((objname (ess-rdired-object))) - (ess-command (concat "plot(" objname ")\n")))) + (ess-command (concat "plot(" (ess-rdired-get objname) ")\n")))) (defun ess-rdired-type () "Run the mode() on command at point. -Named type because of similarity -with the dired command bound to y key." +Named type because of similarity with the dired command bound to +y key." (interactive) (let ((objname (ess-rdired-object)) ;; create a temp buffer, and then show output in echo area (tmpbuf (get-buffer-create "**ess-rdired-mode**"))) (if objname (progn - (ess-command (concat "mode(" objname ")\n") tmpbuf ) + (ess-command (concat "mode(" (ess-rdired-get objname) ")\n") + tmpbuf ) (set-buffer tmpbuf) (message (concat objname ": " @@ -292,7 +324,7 @@ User is queried first to check that objects should really be deleted." (let ((objs "rm(") (count 0)) (save-excursion - (goto-line 2) + (goto-char (point-min)) (forward-line 1) (while (< (count-lines (point-min) (point)) (count-lines (point-min) (point-max))) (beginning-of-line) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-rdired.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-rdired.elc index aa7b61983e85ea839b844f11a0550e2939069394..f410f458968eb0598db27cfe5276f52d930ee503 100644 GIT binary patch delta 1922 zcmZ`(&2Jk;6p!N#IBv;DOChaFdD)bBH*KAr{obY#hywvZKb#gSwHq}X?-QS%K|1YQc8U zq_CW}+RHRaP8n6AeeL}+J`T6pnc{rm4s(kuHnhDsp%SF@R=S$B;~-48rHb#RUbWuz zl0@2}spN_;C9WvTm6OowRd30%4D83Et^Id!lZHEK<9`B~E=YYh1i0zN)zE9v1kRj- zIO^sL$(P-bA1^Gx8{6Q8J;GBZqQbh zC&+daScRCjr3xY+!os@!yq1imV3-j7b}~mm&qvTQhhQ5d#3ALC^Po}stNG>zzeB|p zE014n75Pb0D&pHEc zFr+aVUYq>^huQwALwy3SN)%U9)Xvb*aG}q;s-n$~p=qF{+T7v?W_GZY9n5Xc;Epwn z%aZV8ZV*!1MBO|JH8S7Kg{L05Ty)DQF7&cQxXPlb6Hke*C<0-hO*utd)!0u{UkEz7 zv;Op@DGs4Dk6#`C2K#k-xzFVt`$0_oQz%zX3W)1)GoW2@19XrUjzbl6&DM7bBaRJg zG^DYI+F3_le9E=N!%;#gfo6w7v^`wJfwzUUaw%5Jml{C=_^U^)b~C7ZX&-gCMeAM% z$xfmckIn-UXazfs6dK-5-V?4|Kn-JoAkKANEuY6#+zk?%X}TVDnm%0bBq`TU^6&D% zuUSu>}p*}~xa8=?EWe|}Xf`2t5N~;aI<%b~hi56iGXZZk$GLof@ z$TBP-P;Q3_r&rk>x+RqT&2T*(vdq9~1EoJT`*RZT@8+P<+8$HTX{ z!{g`_Ac$Vv3&plonJvxS<1*XR`O*d6`=veic%t`!NsQrr3`MhZd4nbx=fS~zd8mA^buxd-pkUN%!(2adm7 z$>#>A1&dmfC|RP^O0LL-U%D}p|0Hg!6hE5l`WJ84MsuOF9}etHJ&uem9y}o!hGMd} z4?YwOhv>|F_P$^e%^5s>s96w9O}AM0xzGD_E6=a!y`f=H97P0TP~R0V^FAzdeCBBI zu^&Xq##$aLU7F#r@KHc)wOP(to(A85ePeRgwRd=mjWP67w8=G&{|a`Q=oiqPyk+1A zuT3m$HQ`FsGyii~QdKZgJ_t#Dgrun1CXTpju-~3PS|DsoSjIk`zQi!Gl`ug9(z%(8(7(CkV3Y*h(e8Ii}{+vA|tDs;W8h!Kb)M|KsPmekr{Ce;?aNa8k~~ zcA`JMR^G__&Wamki#d3l;0@e_-NZtiQVho$C*zEmRcL&kh*Qg|o=ZPyXvWygA%EGs zlxrF~u3`9gK!v^bZkTWGn4rj}1ltU=^}3;ngPu8NQ>-7137d<1(%rMzDr}?n_8UlW zYH`|DMsosbC}__0iwJ%;ABKF38P}Nx%Pmi2W?~L)tuswY;mO3(hM>RW5Nx$4RiOwe zQ|S7#yP;e{8p;k0qda1kiT|o41jAr!54>r+o!$?TJii~L@1Gz@MA7R}G@=>sw0!|y zxA5LouN-C-q~vV>A0mxe7K9yBQWL!G7;Hopbk(guYfld(I)}$cqSSSWYSim zw3FBNleZZmuGpw;7pHGdX6g?NE_aq-uX9w^bVG-9*RHHtoWa+w_p(k*v-+ajlVqJ) z9P+)7wxW_mOm%n6-9^D9Xx*Z%To9#YMyz-YR|Pp zfR^A@pCu9a*|#n02FI}7e@o_!bC3o;%3KrOV diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-roxy.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-roxy.el index 726bb073e1cb..04feceb7f6b2 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-roxy.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-roxy.el @@ -40,21 +40,24 @@ ;; - preview ;; - C-c C-e C-r :: create a preview of the Rd file as generated ;; using roxygen +;; - C-c C-e C-t :: create a preview of the Rd HTML file as generated +;; using roxygen and the tools package +;; +;; Known issues: ;; -;; To enable it for ESS, put something like -;; -;; (add-to-list 'load-path "/path/to/dir/with/ess-roxy") -;; (require 'ess-roxy) -;; (add-hook 'ess-mode-hook -;; (lambda () (ess-roxy-mode) )) +;; - hideshow mode does not work very well. In particular, if ordinary +;; comments precede a roxygen entry, then both will be hidden in the +;; same overlay from start and not unfoldable using TAB since the +;; roxygen prefix is not present. The planned solution is implement +;; a replacement for hideshow. +;; - only limited functionality for S4 documentation. + +;; this *is* enabled now via ess-mode-hook in ./ess-site.el (require 'ess-custom) (require 'hideshow) ;; ------------------ -(defconst ess-roxy-version "0.2" - "Current version of ess-roxy.el.") - (defvar ess-roxy-mode-map nil "Keymap for `ess-roxy' mode.") (if ess-roxy-mode-map @@ -65,6 +68,7 @@ (define-key ess-roxy-mode-map (kbd "C-c C-e n") 'ess-roxy-next-entry) (define-key ess-roxy-mode-map (kbd "C-c C-e p") 'ess-roxy-previous-entry) (define-key ess-roxy-mode-map (kbd "C-c C-e C-r") 'ess-roxy-preview-Rd) + (define-key ess-roxy-mode-map (kbd "C-c C-e C-t") 'ess-roxy-preview-HTML) (define-key ess-roxy-mode-map (kbd "C-c C-e C-c") 'ess-roxy-toggle-roxy-region) (define-key ess-roxy-mode-map (kbd "C-c C-o") 'ess-roxy-update-entry)) @@ -73,14 +77,14 @@ `((,(concat ess-roxy-str " *\\([@\\]" (regexp-opt ess-roxy-tags-param t) "\\)\\>") - (1 font-lock-keyword-face prepend)) + (1 'font-lock-keyword-face prepend)) (,(concat ess-roxy-str " *\\([@\\]" (regexp-opt '("param") t) "\\)\\>\\(?:[ \t]+\\(\\sw+\\)\\)?") - (1 font-lock-keyword-face prepend) - (3 font-lock-variable-name-face prepend)) + (1 'font-lock-keyword-face prepend) + (3 'font-lock-variable-name-face prepend)) (,(concat "[@\\]" (regexp-opt ess-roxy-tags-noparam t) "\\>") - (0 font-lock-variable-name-face prepend)) + (0 'font-lock-variable-name-face prepend)) (,(concat ess-roxy-str) (0 'bold prepend))))) @@ -90,7 +94,8 @@ :keymap ess-roxy-mode-map (if ess-roxy-mode (progn - (font-lock-add-keywords nil ess-roxy-font-lock-keywords) + (unless (featurep 'xemacs) ;; does not exist in xemacs: + (font-lock-add-keywords nil ess-roxy-font-lock-keywords)) (if ess-roxy-hide-show-p (progn ;(setq hs-c-start-regexp "s") @@ -107,7 +112,8 @@ (progn (hs-show-all) (hs-minor-mode)))) - (font-lock-remove-keywords nil ess-roxy-font-lock-keywords)) + (unless (featurep 'xemacs) + (font-lock-remove-keywords nil ess-roxy-font-lock-keywords))) (when font-lock-mode (font-lock-fontify-buffer))) @@ -115,8 +121,6 @@ ;; (setq hs-c-start-regexp ess-roxy-str) ;; (make-variable-buffer-local 'hs-c-start-regexp) - - ;; Function definitions (defun ess-roxy-beg-of-entry () "Get point number at start of current entry, 0 if not in entry" @@ -241,10 +245,16 @@ function at point. if here is supplied start inputting (goto-char here)) (while (stringp (car (car args))) (setq arg-des (pop args)) - (insert (concat "\n" - ess-roxy-str " @param " (car arg-des) " ")) - (insert (concat (car (cdr arg-des)))) - (ess-roxy-fill-field)))) + (unless (string= (car arg-des) "") + (progn + (insert (concat "\n" + ess-roxy-str " @param " (car arg-des) " ")) + (insert + (ess-replace-in-string (concat (car (cdr arg-des))) "\n" + (concat "\n" ess-roxy-str))) + (if ess-roxy-fill-param-p + (ess-roxy-fill-field)) + ))))) (defun ess-roxy-merge-args (fun ent) "Take two args lists (alists) and return their union. Result @@ -253,7 +263,7 @@ association from ent are preferred over entries from fun. Also, drop entries from ent that are not in fun and are associated with the empty string." (let ((res-arg nil) - (arg-des)) + (arg-des)) (while (stringp (car (car fun))) (setq arg-des (pop fun)) (if (assoc (car arg-des) ent) @@ -267,9 +277,12 @@ the empty string." (nreverse res-arg))) (defun ess-roxy-update-entry () - "Update the current entry or the entry above the function which -the point is in. Add basic roxygen documentation if no roxygen -entry is available." + "Update the entry at the point or the entry above the function +which the point is in. Add a template empty roxygen documentation +if no roxygen entry is available. The template can be customized +via the variable `ess-roxy-template-alist'. The parameter +descriptions can are filled if `ess-roxy-fill-param-p' is +non-nil." (interactive) (save-excursion (let* ((args-fun (ess-roxy-get-args-list-from-def)) @@ -296,11 +309,11 @@ entry is available." (if (string= (car tag-def) "param") (ess-roxy-insert-args args (point)) (if (string= (car tag-def) "description") - (insert (concat line-break ess-roxy-str " " + (insert (concat line-break ess-roxy-str " " (cdr tag-def) "\n" ess-roxy-str)) (if (string= (car tag-def) "details") (insert (concat line-break ess-roxy-str " " (cdr tag-def))) - (insert (concat line-break ess-roxy-str " @" + (insert (concat line-break ess-roxy-str " @" (car tag-def) " " (cdr tag-def)))) )) (setq line-break "\n") @@ -379,21 +392,17 @@ point is" (setq args-text (buffer-substring-no-properties field-beg field-end)) (setq args-text - (ess-replace-in-string args-text - ess-roxy-str "")) + (ess-replace-in-string args-text + ess-roxy-str "")) (setq args-text (ess-replace-in-string - args-text "@param" "")) - (setq args-text - (ess-replace-in-string args-text "\n" "")) - (setq args-text (replace-regexp-in-string - "^ +" "" args-text)) - (setq arg-name (replace-regexp-in-string - " .*" "" args-text)) + args-text "[[:space:]]*@param *" "")) + ;; (setq args-text + ;; (ess-replace-in-string args-text "\n" "")) + (string-match "[^[:space:]]*" args-text) + (setq arg-name (match-string 0 args-text)) (setq desc (replace-regexp-in-string - (concat "^" arg-name) "" args-text)) - (setq desc (replace-regexp-in-string - "^ +" "" desc)) + (concat "^" arg-name " *") "" args-text)) (setq args (cons (list (concat arg-name) (concat desc)) args)))) (forward-line -1)) @@ -410,7 +419,7 @@ string. Convenient for editing example fields." (error "region is not active"))) (save-excursion (let (RE to-string) - (narrow-to-region beg end) + (narrow-to-region beg (- end 1)) (if (ess-roxy-entry-p) (progn (setq RE (concat "^" ess-roxy-str " *")) (setq to-string "")) @@ -421,40 +430,72 @@ string. Convenient for editing example fields." (replace-match to-string)) (widen)))) -(defun ess-roxy-preview-Rd (&optional arg) - "Use the connected R session and the roxygen package to create -a preview of the Rd file of the entry at point. If called with -`arg' is non-nil (e.g. called with the universal argument), also -set the visited file name of the created buffer to allow for -saving (and using Rd-modes preview function) of the file." - (interactive "P") +(defun ess-roxy-preview () + "Use the connected R session and the roxygen package to +generate the Rd code for entry at point, place it in a temporary +buffer and return that buffer." (let ((beg (ess-roxy-beg-of-entry)) (roxy-tmp (make-temp-file "ess-roxy")) - (roxy-buf (get-buffer-create " *RoxygenPreview*")) - beg-end) + (roxy-buf (get-buffer-create " *RoxygenPreview*"))) (if (= beg 0) (error "Point is not in a Roxygen entry")) (save-excursion (goto-char (ess-roxy-end-of-entry)) (forward-line 1) - (setq beg-end (ess-end-of-function)) - (append-to-file beg (car (cdr beg-end)) roxy-tmp) - (ess-command "library(roxygen)\n" roxy-buf) - (save-excursion - (set-buffer roxy-buf) + (if (ess-end-of-function nil t) + (append-to-file beg (point) roxy-tmp) + (while (and (forward-line 1) (not (looking-at "^$")) + (not (looking-at ess-roxy-str)))) + (append-to-file beg (point) roxy-tmp)) + (ess-command "print(suppressWarnings(require(roxygen, quietly=TRUE)))\n" + roxy-buf) + (with-current-buffer roxy-buf (goto-char 1) - (if (search-forward-regexp "Error in library(roxygen)" nil t) - (error "Failed to load the roxygen package"))) - (ess-command ".ess_roxy_roclet <- make.Rd.roclet(NULL)\n") - (ess-command (concat ".ess_roxy_roclet$parse(\"" roxy-tmp "\")\n") roxy-buf) - (delete-file roxy-tmp)) + (if (search-forward-regexp "FALSE" nil t) + (error (concat "Failed to load the roxygen package; " + "in R, try install.packages(\"roxygen\")")))) + (ess-command (concat "make.Rd.roclet()$parse(\"" roxy-tmp "\")\n") roxy-buf)) + (delete-file roxy-tmp) + roxy-buf)) + +(defun ess-roxy-preview-HTML (&optional visit-instead-of-open) + "Use the connected R session and the roxygen package to +generate a HTML page for the roxygen entry at point and open that +buffer in a browser. Visit the HTML file instead of showing it in +a browser if `visit-instead-of-open' is non-nil" + (interactive "P") + (let ((roxy-buf (ess-roxy-preview)) + (rd-tmp-file (make-temp-file "ess-roxy-" nil ".Rd")) + (html-tmp-file (make-temp-file "ess-roxy-" nil ".html"))) + (with-current-buffer roxy-buf + (set-visited-file-name rd-tmp-file) + (save-buffer) + (kill-buffer roxy-buf)) + (ess-command "print(suppressWarnings(require(tools, quietly=TRUE)))\n") + (if (not visit-instead-of-open) + (ess-command + (concat "browseURL(Rd2HTML(\"" rd-tmp-file "\",\"" + html-tmp-file "\", stages=c(\"render\")))\n")) + (ess-command + (concat "Rd2HTML(\"" rd-tmp-file "\",\"" + html-tmp-file "\", stages=c(\"render\"))\n")) + (find-file html-tmp-file)))) + +(defun ess-roxy-preview-Rd (&optional name-file) + "Use the connected R session and the roxygen package to +generate the Rd code for the roxygen entry at point. If called +with a non-nil `name-file' (e.g. universal argument C-u), +also set the visited file name of the created buffer to +facilitate saving that file." + (interactive "P") + (let ((roxy-buf (ess-roxy-preview))) (pop-to-buffer roxy-buf) - (if arg + (if name-file (save-excursion (goto-char 1) (search-forward-regexp "name{\\(.+\\)}") (set-visited-file-name (concat (match-string 1) ".Rd")))) - )(Rd-mode)) + (Rd-mode))) (defun ess-roxy-mark-active () "True if region is active and transient mark mode activated" @@ -497,23 +538,20 @@ saving (and using Rd-modes preview function) of the file." "Return the arguments specified for the current function as a list of strings." (save-excursion - (let ((result) - (args-txt + (let ((args-txt (progn (ess-beginning-of-function) (buffer-substring-no-properties (progn - (search-forward-regexp "function *" nil nil 1) + (search-forward-regexp "[=,-]* *function *" nil nil 1) (+ (point) 1)) (progn (ess-roxy-match-paren) (point)))))) - (setq args-txt (replace-regexp-in-string "([^)]*)" "" args-txt)) - (setq args-txt (replace-regexp-in-string "=[^,]*" "" args-txt)) - (setq args-txt (replace-regexp-in-string "\n*" "" args-txt)) - (setq args-txt (replace-regexp-in-string " *" "" args-txt)) - (setq result (split-string args-txt ",")) - result))) + (setq args-txt (replace-regexp-in-string "([^)]+)" "" args-txt)) + (setq args-txt (replace-regexp-in-string "=[^,]+" "" args-txt)) + (setq args-txt (replace-regexp-in-string "[ \t\n]+" "" args-txt)) + (split-string args-txt ",")))) (defun ess-roxy-match-paren () "Go to the matching parenthesis" @@ -524,8 +562,8 @@ list of strings." "complete the tag at point" (let ((token-string (thing-at-point 'symbol))) (if (string-match "@.+" token-string) - (progn - (comint-dynamic-simple-complete + (progn + (comint-dynamic-simple-complete (replace-regexp-in-string "^@" "" token-string) (append ess-roxy-tags-noparam ess-roxy-tags-param)))))) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-roxy.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-roxy.elc index 4aefaab0417b19ea18554dd060efc30f1e81c6d0..f6b149a72b8439d8a0be947fb4894dabc989f0aa 100644 GIT binary patch delta 3604 zcma)7)V6~{9f$Bf5u5@$E|#QE5AkBMjO=}A|0_slrP`Pw96MIt56$7hQZ@ z7#EBM!Zb?ri;Ih-6$Wk6ay?GY$L-E}9!08IrTT|<;h^~V;I%@{VC8bYw7wH_wHY{^ zC^?I1hAB$fXGAk{md+?VtY|T+!G~`7SC7NnfX5U+$$ngTQz7Uz44&+$ose(2d|UnE zy<0cM)1jY@-qqVY-V7YedM5Nk@9bJu>C%O_Jv)k^=2pMywjIYj^ew9_f6rP$*tTP^ zaHV~_6NFHLp8J2K4?f_e3?9puZoqQ!4Gn(N>pEZoKA%0}JKI6%MB@90Xfg-Kx7*kq z9`M`ZA@`dcClz-GCIS`E%DL@D0knAmPAcez&D3w~#vXdSNC{SyMB_Pmla-w9#mkSIhb0gJTfEPv8woW<8bfHF`9vH zhPX5S!>nl<;veH5X6sDv{pk4NOm;!5_da@K0W9hZ;?p-j$r=lq_{)h`i)LX25YVmG zfe}mBYVTs<>;d?!lLP{)^*;a&%BB&RX*4j!KPRTv9vrZIFr-(GU&hz5%V4BiOxOB$ z)EI>-GlvZ|i`BG4&D3!{cLn;?v<$Qu*m?AJF==bzEN~E}iJOy5oTej(0c%g~*rDB4 zJL37|HSvqdQ;c^!yUA78SED#|{f&J%rFqNcp0i47q*R&GMr#mnNE-Td~Z+uR(ecOwD;O0GB#u}RF^FcWYB z?|6q`cx-T=I6<@92A_8927cac5kJ^#ONIh3_Ll8>_PWQb?zp1vXoD=wc7DCcbxO^6qTXQ*I82*vdORYKCqHM~w*ju|tl!;Bkk*EY|iy zcyLo^i5unpz*l|OtBMz66TM$e9nEGN4ZZifGvCS#H8jS0owq*7WDTA6My6jJ%r*>7 ze53gC`c%q`W(II*1H_Q=ku`~wk9bk`01wtj8yye*$SL@1-a)4HP4ShPvzb%kyE7+m zNWHOImXeUdYSE0%F2bP z1CU%;U7fouw}{LsB*8@m;ekU{Rvr!*DMZ$$M2W?7r!qu5Jf~z0*om*6%VuWpK2PQ) zVsUCv`u^I7lc4oYWi>>8giC_Y?v*J&)e?Cq%W*TLpgo+GhYBKSv zRA0*jG(7CXxa<%q(jbugU`i+}L~>8u7#K|P3qm{G$**@?Aa4Zn1_?Q;8}I@+C)M&) zcT?FW#T7VcqQKD^1j8Ag+B6;{Ojw&PoWzKPgQfI79?uC}2ZKjXmm&)WSx>ftnmg$S zo)x%Y8lIk}tI!XUioZ6JBo(%+v1{lHJ81evYzDUs-D*Zs9F;)4-ZM=@xrB-^_qacD zIt8Re!XZb8(LmL#bk@2iXI%!1F92LR1sZjBC-nu@x;`Q;a`Vuyu8cP|{tq=H2Ux_(5f6 zX%P>7xk6B?;4_MC&#MCBk02vOB}+-&SV~zTO51+KtIJL`44NK~OJy;lo-M2rGnGWD zH4HP6LZ;Uc!rgrcZGx$tbigk`2vK_a(zd6RiAv(~0@w(NTc1M7=6V=xM?9>O2W|ws zq7Ug+?iS9T+t9T|qRn6%72K3i=WUX9l!CQ|eL?1>wHmZk918^t6jcfq>Q$d?c_9J3 zOXmV9fwo6Jvp>Y&f5G2pzX%^P8qx|{ES#JQEx!*OOHjdB=%+@*@~5p`2ysA(LSG7z z1f@}AT9>p#T^*ofT5`$4JcyLD%V{fPd##W@lU8{LGjh{?CO6}@hbShbg#g{&H{Qo~ z5!cUL>3&-52R~w=Vya1eDSH_~AyO3p8GxsXBZ64+Se1UcBh6L3PLaso;%cflk1#po z_$WT;>;FYQ4gxQF9r&{4!{EvJ-(S92T6P#B1876FrBwQFP;o?lsfo~Y-*R{e(3g|$ zuXlRQIJL!*S}w#d;<$fPptPaYfREdWKC_zC=Yh~bj0g4ke}_huywidljJY?z?Z%rR z*D14P4fj!wJWEQvx=|%v-`(P21jO3mhP*nEx7BXBlE*tK5#KDcQ~8$NbUhdD6!Hi# zWTeEy0>q1nf|!{r?C$wZ5ND(SDC9|O_}I;e{&7F0a06hvLUI;QuA;k zcyj*lLwa3jy;wU4RSOM6Jf-i8FQ3SZACC|1;>_SNVGVF6)oL>sYisx5Gr6>`Sqdx| zSAy-7<%)10kVU+83>3jjzi2{S!u?d4OBV?HAF1(^SS|~s-}Ob9=j`I-%2GvL zog;ItuHVFa7G5eKas%EFGh{57toLp655xZfCDl3$ delta 2229 zcmZWq-ES0C6z_Hy*ly_;g?3vCz04Nah3+u--uc)qU!{P72ucyegsJUxcD5azompmP zDGiiHV|+B=O*Fij81%)&kcqD*KIDM z^FivbI}av~1g7CTRv3zoXBrOjT=YiEMVF0rgb2cPMp0)-6%h$b4__TmRi3QmyI-di zoo)HP<%a0CrcVY!eBmycHrjUqKs+QQ@ z?hAPhS4*W_ad|zo%BEMdkdW1hBp+ixb>HhJSa;`k>68%or)(|#16#~|!zQ;~oVaX- zt6ojlOS*oq?)eQP1i^Mqr&Y7q&)ZJiuynn6dZuncx~3I?Gi>>8J03J}S(f1h9yq*~ zZ$dObDRzW*=z!b`j1{o9J>WbAxnsm0ZeL_CwinpqjuJbyW3VUjNC+(7rz?sSm9qnx zv_xridZ(32V^WE}?Au7CX_c_U1Aq5wnp#>YQ)#WLMCIL8h)^|V@A*AVwF-M{9pE(GE;yJiQ$PkLdY*;!a+ov6|_lb@13 zGs~4!tbj{lzl{X{ z2ssb!I&!^^FUM}}9cF)wj6~|hKsv2fNOWQHQ7WUUay9xDeF7jVmFT|kUUymsG`kOe zwKDf17%S;+ zuP*Ec3F~zpNk}2lIG?xZwK^#BOM?QE$~CNh~9fJU6ws^p6!r z#`@xF^^e6r=dyE9St>=h4h^Sv&NdC-Xb4EqU4hxhCw8EtpdgVwJ1nFzmZD5CojSC! zg*y`67h|GBk{Hhq!Ab_cEi+#0*fI(JAjro9#uuTFHU92ORQjS$aYj(JrTQdBW!<-tf z=ayaDK}Abk5x0iKhqhds&mI_W5YNfd6PBhC@A@2@CS(po$6G@%K5~I^+jdt_(Qs?1 z6>#xtt=xcl6uiu|-f~UOwNfWZNSM7C$+P{(vg{EV+=P$7je$rCf(7a)X$JtSr0W2* z{Mb0}w7p=Y*EwTGIdo8VtR(1R7<53P|QTWIERChb!RPJfV*7+*7|-WI|} z6M=^pjx9}%vikIF8Vb!GPv1CZG@G!Y9D01{Sn)e!dW{Azo#5EZzTvMIlPOW+BtJ#- z6X$*3^I?*p{{{#sWFMBNW}yc}c*z#|Mp#UE8_|g}Y8dZY;?-YDeVti|C0VJk$Mk6itEv{gFAt?MxKfeXr^=rhf>kAAYIiC_ zWUR4A+JjBNRHDfgk^oW(${2Hs0L++kYl`E&bPd35Ppc(e$ipPy&bT5pTL99;DyP^M zl`~?C3N`AeS{4c@0i`D4BSS}%5g3Fk65s=WCvUzzy#OwlG<@YzLDR9rauE8w!-Q#J0acQ>0uxoMvb)t^G8DtSUYt3Z O$^c8G=(FR`w*L!I`g2_X diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-rutils.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-rutils.el new file mode 100644 index 000000000000..ce07a2d0e00a --- /dev/null +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-rutils.el @@ -0,0 +1,451 @@ +;;; ess-rutils.el --- R functions and keybindings to use in iESS. +;; Author: Sebastian Luque +;; Created: Thu Nov 10 02:20:36 2004 (UTC) +;; Last-Updated: Sun Jun 6 19:28:52 2010 (UTC) +;; By: Sebastian P. Luque +;; Version: $Id: ess-rutils.el 4356 2010-06-06 19:44:01Z sluque $ +;; Compatibility: GNU Emacs >= 22.0.50.1 +;; copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Sebastian P. Luque +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 3, or (at your option) +;; any later version. +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. +;; ------------------------------------------------------------------------ +;;; Commentary: +;; +;; This library provides key bindings for performing basic R functions, +;; such as loading and managing packages, as well as object manipulation +;; (listing, viewing, and deleting), and an alternative to RSiteSearch() +;; that uses the browse-url function. Load the library with the method you +;; prefer (e.g. M-x load-file), but the easiest is probably to: a) make +;; sure your load-path variable includes the directory where ess-rutils.el +;; resides, and b) include (require 'ess-rutils) statement in your +;; ~/.emacs. +;; +;; Usage: +;; +;; Once R is started with M-x R, you should have the key bindings defined +;; at the end of this file working in your iESS process buffers. Simply +;; type the desired key binding. +;; +;; Acknowledgements: +;; +;; I am grateful to John Fox for having written his init.el file for +;; XEmacs, which motivated this Emacs alternative. I wanted to add some +;; object management comforts and came across Stephen Eglen's +;; ess-rdired.el, which provides a lot of these. ess-rutils.el builds upon +;; on a *lot* of ideas from ess-rdired.el. +;; ------------------------------------------------------------------------ +;;; Code: + +;; Autoloads and requires +(autoload 'ess-rdired "ess-rdired" "View *R* objects in a dired-like buffer." t) +(require 'ess-site) + +(defvar ess-rutils-buf "*R temp*" + "Name of temporary R buffer.") + +(defvar ess-rutils-mode-map nil + "Keymap for the *R temp* buffer.") + +(defvar ess-rutils-rhtml-fn + (expand-file-name "ess-rutils-help-start.R" ess-etc-directory) + "Path to the file defining the R function .rutils.help.start(). +This file is loaded into the inferior R process so that +`ess-rutils-htmldocs' can use .rutils.help.start().") + +(if ess-rutils-mode-map + () + (setq ess-rutils-mode-map (make-sparse-keymap)) + (define-key ess-rutils-mode-map "l" 'ess-rutils-loadpkg) + (define-key ess-rutils-mode-map "i" 'ess-rutils-mark-install) + (define-key ess-rutils-mode-map "I" 'ess-rutils-install) + (define-key ess-rutils-mode-map "u" 'ess-rutils-unmark) + (define-key ess-rutils-mode-map "q" 'ess-rutils-quit) + (define-key ess-rutils-mode-map "?" 'ess-rutils-help)) + +(defun ess-rutils-mode () + "Major mode for output from `ess-rutils-localpkgs' and `ess-rutils-repospkgs'. +Useful bindings to handle package loading and installing. +\\{ess-rutils-mode-map}" + (kill-all-local-variables) + (use-local-map ess-rutils-mode-map) + (setq major-mode 'ess-rutils-mode) + (setq mode-name (concat "R utils " ess-local-process-name))) + +(defun ess-rutils-localpkgs () + "List all packages in all libraries." + (interactive) + (if (get-buffer ess-rutils-buf) + (progn + (set-buffer ess-rutils-buf) + (setq buffer-read-only nil))) + (ess-execute + "writeLines(paste(' ', sort(.packages(all.available=TRUE)), sep=''))" + nil + (substring ess-rutils-buf 1 (- (length ess-rutils-buf) 1))) + (pop-to-buffer ess-rutils-buf) + (save-excursion + (beginning-of-line) (open-line 1) + (insert "**Available packages in all local R libraries**")) + (setq buffer-read-only t) + (ess-rutils-mode) + (if (featurep 'fit-frame) + (fit-frame))) + +(defun ess-rutils-namepkg () + "Return name of the package on current line." + (save-excursion + (beginning-of-line) + (if (looking-at "*") + nil + (forward-char 2) + (let (beg) + (setq beg (point)) + (end-of-line) ;assume package names are separated by newlines. + (buffer-substring-no-properties beg (point)))))) + +(defun ess-rutils-loadpkg () + "Load package from a library." + (interactive) + (let ((oklocal nil)) + (save-excursion + (goto-char (point-min)) + (if (search-forward "libraries**" nil t) + (setq oklocal t))) + (if oklocal + (progn + (setq pkg (ess-rutils-namepkg)) + (ess-execute (concat "library('" pkg "', character.only=TRUE)") + 'buffer)) + nil))) + +(defun ess-rutils-repospkgs () + "List available packages from the repositories as listed by +getOptions(\"repos\") in the current R session." + (interactive) + (if (get-buffer ess-rutils-buf) + (progn + (set-buffer ess-rutils-buf) + (setq buffer-read-only nil))) + (ess-execute (concat "writeLines(paste(' \"', " + "rownames(available.packages()), '\"', sep=''))") + nil + (substring ess-rutils-buf 1 (- (length ess-rutils-buf) 1))) + (pop-to-buffer ess-rutils-buf) + (save-excursion + (kill-line 5) + (insert "**packages available to install**\n")) + (setq buffer-read-only t) + (ess-rutils-mode) + (if (featurep 'fit-frame) + (fit-frame))) + +(defun ess-rutils-mark-install (arg) + "Mark the current package for installing. +ARG lines to mark is passed to `ess-rutils-mark'." + (interactive "p") + ;; if this is not an install package buffer return nil. + (let ((okmark nil)) + (save-excursion + (goto-char (point-min)) + (if (search-forward "install**" nil t) + (setq okmark t))) + (if okmark + (ess-rutils-mark "I" arg) + nil))) + +(defun ess-rutils-unmark (arg) + "Unmark the packages, passing ARG lines to unmark to `ess-rutils-mark'." + (interactive "p") + (ess-rutils-mark " " arg)) + +;; The next two functions almost verbatim from ess-rdired.el. +(defun ess-rutils-mark (mark-char arg) + "Use MARK-CHAR to mark package on current line, or next ARG lines." + ;; If we are on first line, mark all lines. + (let ((buffer-read-only nil) + move) + (if (eq (point-min) + (save-excursion (beginning-of-line) (point))) + (progn + ;; we are on first line, so make a note of point, and count + ;; how many objects we want to delete. Then at end of defun, + ;; restore point. + (setq move (point)) + (forward-line 1) + (setq arg (count-lines (point) (point-max))))) + (while (and (> arg 0) (not (eobp))) + (setq arg (1- arg)) + (beginning-of-line) + (progn + (insert mark-char) + (delete-char 1) + (forward-line 1))) + (if move + (goto-char move)))) + +(defun ess-rutils-install () + "Install all packages flagged for installation, and return to the iESS buffer. +User is asked for confirmation." + (interactive) + (let ((inst "install.packages(c(") + (count 0)) + (save-excursion + (goto-line 2) + ;; as long as number of lines between buffer start and point is smaller + ;; than the total number of lines in buffer, go to the beginning of the + ;; line, check if line is flagged, and if it is, advance the counter by + ;; one, create the root of install function, add the package name, + ;; insert a comma, and move forward a line. + (while (< (count-lines (point-min) (point)) + (count-lines (point-min) (point-max))) + (beginning-of-line) + (if (looking-at "^I ") + (setq count (1+ count) + inst (concat inst (ess-rutils-namepkg) ", " ))) + (forward-line 1))) + (if (> count 0) ;found packages to install + (progn + ;; Fix the install function created before and close it. + (setq inst (concat + (substring inst 0 (- (length inst) 2)) "))")) + ;; + (if (yes-or-no-p (format "Install %d %s " count + (if (> count 1) "packages" "package"))) + (progn + (ess-execute inst 'buffer) + (ess-rutils-quit)))) + ;; else nothing to install + (message "no packages flagged to install")))) + +(defun ess-rutils-updatepkgs (lib repos) + "Update packages in library LIB and repos REPOS. Defaults are the first +element returned by .libPaths() for LIB, and the repository named CRAN +returned by getOption(\"repos\") for REPOS. This also uses checkBuilt=TRUE +to rebuild installed packages if needed." + (interactive "DPath to library to update: \nsrepos: ") + (if (string= "" lib) + (setq lib + (car (ess-get-words-from-vector + "as.character(.libPaths())\n")))) + (if (string= "" repos) + (setq repos + (car (ess-get-words-from-vector + "as.character(getOption(\"repos\")[\"CRAN\"])\n")))) + (ess-execute (concat "update.packages(lib.loc='" + lib "', repos='" repos + "', ask=FALSE, checkBuilt=TRUE)") 'buffer)) + +(defun ess-rutils-apropos (string) + "Search for STRING using apropos." + (interactive "sApropos search for? ") + (if (get-buffer ess-rutils-buf) + (progn + (set-buffer ess-rutils-buf) + (setq buffer-read-only nil))) + (ess-execute (concat "apropos('" string "')") + nil + (substring ess-rutils-buf 1 (- (length ess-rutils-buf) 1))) + (pop-to-buffer ess-rutils-buf) + (setq buffer-read-only t) + (ess-rutils-mode)) + +(defun ess-rutils-rmall () + "Remove all R objects." + (interactive) + (if (y-or-n-p "Delete all objects? ") + (ess-execute "rm(list=ls())" 'buffer))) + +(defun ess-rutils-objs () + "Manipulate R objects; wrapper for `ess-rdired'." + (interactive) + (ess-rdired) + (if (featurep 'fit-frame) + (fit-frame))) + +(defun ess-rutils-loadwkspc (file) + "Load workspace FILE into R." + (interactive "fFile with workspace to load: ") + (ess-execute (concat "load('" file "')") 'buffer)) + +(defun ess-rutils-savewkspc (file) + "Save FILE workspace. +File extension not required." + (interactive "FSave workspace to file (no extension): ") + (ess-execute (concat "save.image('" file ".RData')") 'buffer)) + +(defun ess-rutils-quit () + "Kill the ess-rutils buffer and return to the iESS buffer." + (interactive) + (ess-switch-to-end-of-ESS) + (kill-buffer ess-rutils-buf)) + +(defun ess-rutils-htmldocs (&optional remote) + "Use `browse-url' to navigate R html documentation. +Documentation is produced by a modified help.start(), that returns the URL +produced by GNU R's http server. This function is defined in a file given +by the path in variable `ess-rutils-rhtml-fn'. If called with a prefix, +the modified help.start() is called with update=TRUE. The optional REMOTE +argument should be a string with a valid URL for the 'R_HOME' directory on +a remote server (defaults to NULL)." + (interactive) + (let* ((update (if current-prefix-arg "update=TRUE" "update=FALSE")) + (remote (if (or (and remote (not (string= "" remote)))) + (concat "remote=" remote) "remote=NULL")) + (rhtml (format ".rutils.help.start(%s, %s)\n" update remote)) + (tmpbuf (get-buffer-create "**ess-rutils-mode**"))) + (ess-command rhtml tmpbuf) + (set-buffer tmpbuf) + (let* ((begurl (search-backward "http://")) + (endurl (search-forward "index.html")) + (url (buffer-substring-no-properties begurl endurl))) + (browse-url url)) + (kill-buffer tmpbuf))) + +(defun ess-rutils-rsitesearch (string) + "Search the R archives for STRING, using default criteria, and show results +using `browse-url'. If called with a prefix, options are offered (with +completion) for matches per page, sections of the archives to search, +displaying results in long or short formats, and sorting by any given field. +Options should be separated by value of `crm-default-separator'." + (interactive "sSearch string: ") + (let ((site "http://search.r-project.org/cgi-bin/namazu.cgi?query=") + (okstring (ess-replace-regexp-in-string " +" "+" string))) + (if current-prefix-arg + (let ((mpp (concat + "&max=" + (completing-read + "Matches per page: " + '(("20" 1) ("30" 2) ("40" 3) ("50" 4) ("100" 5))))) + (format (concat + "&result=" + (completing-read + "Format: " '(("normal" 1) ("short" 2)) + nil t "normal" nil "normal"))) + (sortby (concat + "&sort=" + (completing-read + "Sort by: " + '(("score" 1) ("date:late" 2) ("date:early" 3) + ("field:subject:ascending" 4) + ("field:subject:decending" 5) + ("field:from:ascending" 6) ("field:from:decending" 7) + ("field:size:ascending" 8) ("field:size:decending" 9)) + nil t "score" nil "score"))) + (restrict (concat + "&idxname=" + (mapconcat + 'identity + (completing-read-multiple + "Limit search to: " + '(("Rhelp02a" 1) ("functions" 2) + ("docs" 3) ("Rhelp01" 4)) + nil t "Rhelp02a,functions,docs" nil + "Rhelp02a,functions,docs") "&idxname=")))) + (browse-url (concat site okstring mpp format sortby restrict))) + (browse-url (concat site okstring "&max=20&result=normal&sort=score" + "&idxname=Rhelp02a&idxname=functions&idxname=docs"))))) + +(defun ess-rutils-help () + "Show help on `ess-rutils-mode'." + (interactive) + (describe-function 'ess-rutils-mode)) + +(defun ess-rutils-help-search (string) + "Search for STRING using help.search()." + (interactive "sString to search for? ") + (if (get-buffer ess-rutils-buf) + (progn + (set-buffer ess-rutils-buf) + (setq buffer-read-only nil))) + (ess-execute (concat "help.search('" string "')") + nil + (substring ess-rutils-buf 1 (- (length ess-rutils-buf) 1))) + (pop-to-buffer ess-rutils-buf) + (setq buffer-read-only t) + (ess-rutils-mode)) + +;; Customizable variable to allow ess-rutils-keys to activate default key bindings. +;; Suggested by Rich Heiberger. +(defcustom ess-rutils-keys t + "Non-nil means activate ess-rutils keybindings and menu." + :group 'ess-R + :type 'boolean) + +;; Keybindings +(defun ess-rutils-keys () + "Provide key bindings." + (interactive) + (when ess-rutils-keys + (define-key inferior-ess-mode-map [(control c) (control \.) (l)] + 'ess-rutils-localpkgs) + (define-key inferior-ess-mode-map [(control c) (control \.) (r)] + 'ess-rutils-repospkgs) + (define-key inferior-ess-mode-map [(control c) (control \.) (u)] + 'ess-rutils-updatepkgs) + (define-key inferior-ess-mode-map [(control c) (control \.) (a)] + 'ess-rutils-apropos) + (define-key inferior-ess-mode-map [(control c) (control \.) (m)] + 'ess-rutils-rmall) + (define-key inferior-ess-mode-map [(control c) (control \.) (o)] + 'ess-rutils-objs) + (define-key inferior-ess-mode-map [(control c) (control \.) (w)] + 'ess-rutils-loadwkspc) + (define-key inferior-ess-mode-map [(control c) (control \.) (s)] + 'ess-rutils-savewkspc) + (define-key inferior-ess-mode-map [(control c) (control \.) (d)] + 'ess-change-directory) + (define-key inferior-ess-mode-map [(control c) (control \.) (H)] + 'ess-rutils-htmldocs))) + +(easy-menu-define ess-rutils-mode-menu inferior-ess-mode-menu + "Submenu of `inferior-ess-mode' to use with RUtils." + '("RUtils" + ["Manage objects" ess-rutils-objs t] + ["Remove objects" ess-rutils-rmall t] + "------" + ["Local packages" ess-rutils-localpkgs t] + ["Packages in repositories" ess-rutils-repospkgs t] + ["Update packages" ess-rutils-update-pkgs t] + "------" + ["Load workspace" ess-rutils-loadwkspc t] + ["Save workspace" ess-rutils-savewkspc t] + ["Change directory" ess-change-directory t] + "------" + ["Browse HTML" ess-rutils-htmldocs t] + ["Apropos" ess-rutils-apropos t])) + +(when (featurep 'xemacs) + (defun ess-rutils-mode-xemacs-menu () + "Hook to install `ess-rutils-mode' menu for XEmacs (with easymenu)." + (if 'inferior-ess-mode + ;; Why does using nil for 2nd arg put menu at top level? + (easy-menu-add-item inferior-ess-mode-menu nil + ess-rutils-mode-menu) + (easy-menu-remove-item inferior-ess-mode-menu nil + ess-rutils-mode-menu))) + (add-hook 'inferior-ess-mode-hook 'ess-rutils-mode-xemacs-menu t)) + +(unless (featurep 'xemacs) + (easy-menu-add-item inferior-ess-mode-menu nil + ess-rutils-mode-menu)) + +(add-hook 'inferior-ess-mode-hook 'ess-rutils-keys t) + +(add-hook 'ess-post-run-hook + (lambda () + (ess-load-file ess-rutils-rhtml-fn)) t) + + +(provide 'ess-rutils) + +;;; ess-rutils.el ends here diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s-l.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s-l.el index 12c0e0f795a0..ce51829c9552 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s-l.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s-l.el @@ -7,7 +7,7 @@ ;; Original Author: A.J. Rossini ;; Created: 26 Aug 1997 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS (Emacs Speaks Statistics). @@ -254,8 +254,8 @@ when \\[ess-toggle-S-assign-key] is called.") (defun S-comment-indent () "Indentation for S comments." - - (if (looking-at "###") + (if (or (looking-at "###") + (and (looking-at "#!") (= 1 (line-number-at-pos)))) (current-column) (if (looking-at "##") (let ((tem (S-calculate-indent))) @@ -277,25 +277,28 @@ Return the amount the indentation changed by." (setq indent (current-indentation))) (t (skip-chars-forward " \t") - (if (and ess-fancy-comments (looking-at "###")) - (setq indent 0)) - (if (and ess-fancy-comments - (looking-at "#") - (not (looking-at "##"))) - (setq indent comment-column) - (if (eq indent t) (setq indent 0)) - (if (listp indent) (setq indent (car indent))) - (cond ((and (looking-at "else\\b") - (not (looking-at "else\\s_"))) - (setq indent (save-excursion - (ess-backward-to-start-of-if) - (+ ess-else-offset (current-indentation))))) - ((= (following-char) ?}) - (setq indent - (+ indent - (- ess-close-brace-offset ess-indent-level)))) - ((= (following-char) ?{) - (setq indent (+ indent ess-brace-offset))))))) + (cond ((and ess-fancy-comments ;; ### or #! + (or (looking-at "###") + (and (looking-at "#!") (= 1 (line-number-at-pos))))) + (setq indent 0)) + ;; Single # comment + ((and ess-fancy-comments + (looking-at "#") (not (looking-at "##"))) + (setq indent comment-column)) + (t + (if (eq indent t) (setq indent 0)) + (if (listp indent) (setq indent (car indent))) + (cond ((and (looking-at "else\\b") + (not (looking-at "else\\s_"))) + (setq indent (save-excursion + (ess-backward-to-start-of-if) + (+ ess-else-offset (current-indentation))))) + ((= (following-char) ?}) + (setq indent + (+ indent + (- ess-close-brace-offset ess-indent-level)))) + ((= (following-char) ?{) + (setq indent (+ indent ess-brace-offset)))))))) (skip-chars-forward " \t") (setq shift-amt (- indent (current-column))) (if (zerop shift-amt) @@ -446,6 +449,26 @@ Uses the file given by the variable `ess-function-outline-file'." (replace-match (ess-time-string 'clock) 'not-upcase 'literal))) (goto-char (1+ oldpos)))) + +(defun ess-use-this-dir () + "Synchronise the current directory of the S or R process to the one of the current +buffer. If that buffer has no associated *R* process, provide a message." + (interactive) + (if ess-local-process-name + (let ((cmd (format "setwd('%s')\n" default-directory)) + ) + (unless (string= ess-language "S") + ;; FIXME: generalize this for Stata, SAS, Xlispstat... -- then move to ess-mode.el + (error + "ESS setting working directory in *%s* not yet implemented for language %s" + ess-local-process-name ess-language)) + (ess-command cmd) + (message "Directory of *%s* process set to %s" + ess-local-process-name default-directory)) + ;; no local process + (message "No *%s* process associated with this buffer." ess-dialect))) + + ;;*;; S/R Pretty-Editing (defun ess-fix-comments (&optional dont-query verbose) @@ -716,7 +739,10 @@ and I need to relearn emacs lisp (but I had to, anyway." (set (make-local-variable 'fill-nobreak-predicate) 'ess-inside-string-p) (set (make-local-variable 'normal-auto-fill-function) - 'ess-do-auto-fill))) + 'ess-do-auto-fill) + (when (string= ess-language "S");; <- is this needed at all here? + (local-set-key "\M-\r" 'ess-use-this-dir)) + )) (provide 'ess-s-l) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s-l.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s-l.elc index 61aad23b10cab5d911078699b710300cbace06b5..8c75eb7294f0a26bcc7bb3adbbac4c97917c03ad 100644 GIT binary patch delta 1664 zcmZ`(&u<$=6!vaRaopmD{Azx+ysmK*JGC=2`@?nuO(3)qLgmmjASD}#jXic&@$QD* zH6aMeM@~qfRd3~nxFJ!kRFDutLPZq^4jd4FL6JBC2M$~iZ`O7j4oGok-oEdB`_1>> z&chF+KR%Q`T6m3jY`0>$O`jiE8cw&un_ci+xZ&Gy(>ejF;@_&Kt?C3Ap)|X;wgxTV zbD(8+IIM)u(FzZOvR|t7}#g+4Sq->q^3se@JAD@XIjVThQGUIEKtdjWp#G8^-jXs%tPpU_E zC$}SK>WWPD_|DXlBx@x8c3MZ`=&uV8rCRjO%x}Tb(J3D>*(- znXQe<ycCo)-;rka_Zx84x45vq%5Ux>g5sE9_N&(F!Y{4oFN ztdjq~R&*A=kd0b==^~sN(d%mbQvPSDM-8nAuHD%a159-Twocr}f$zC?z#%-~(CGR; zcSC5}K5vAce*#`BNo;}V!!0=Sy#{_15PHc|&*ekFpfbDPZMC>xfmcPH6+%CT11kWx zyc{0bK^f&heiwyUKh*WME9gX+naw+;-P$^CW26RtNLY@_YvmuLL|iZZ0hrg2kfg zDxhpBzl!oS2WvOvv_Ui$ z=dOJ%r46G>;~&?5mD5#H)uS(8-e1RF5;ABs(Z(85We02N6%AE#N%ae^PEV(qHHq=nTY?bt%&gq(C?y3Qmt0#bHw>Q(-=udjwK_Dbr&K z7%WmMZ3=T9DFNhWEH2ExG+7U9M#3=nPkt7%&WKS5qac|~Co`jA_&-B#GNO5s4JN&1 z-{UmQ&y7}tk{cGIIYKU3Y&t$VetJXMlLk$iAs_&YL15?jwFu|Wnr|yv(d=XOJ^Kt( zsUPkm+bqX*^y}u2$f82(^+UUm9Y{uB%9$VCt`cC^{WK%a_`c+32cma4H zIupp^9@SsE+Of@~Lv@m`B8yR~KZ$kQ=2E))oj+^Y!so7bdZ)4NxPh-%jt=5V2?xxP zrV~wLxkRg4?y1!k{VT|pfg|*jV_&iD3dd7-2PRw0{VA*uI|?eQ;4u+%m?+}F&-N%f g=&Qv+KRrhH7&$**x-d6ALuSh5j&es~jEG#~H(68MKmY&$ diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s3-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s3-d.el index 227f6f20d5ea..44aadc6980c6 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s3-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s3-d.el @@ -6,7 +6,7 @@ ;; Original Author: A.J. Rossini ;; Created: 12 Jun 1997 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s3-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s3-d.elc index 16ff58ec307c4f1ea1c60217d912b9894f41192f..c65854d543cdfdf2889acfb1f5f320a2b9a419bf 100644 GIT binary patch delta 139 zcmeC@pUOW$#yd49GfyuuFQq88TrWAdR4+B9R3Sf4!L2A$!8fr|!O$3ptV~R-Obrx_ z3=9pqtgWpT(u(qP71A$7?=G8tJ;u4MbiWM(qCl3fM>fTtLu diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s4-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s4-d.el index 5a57c6289edc..e3d67a71da19 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s4-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s4-d.el @@ -5,7 +5,7 @@ ;; Original Author: A.J. Rossini ;; Created: 12 Jun 1997 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s4-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-s4-d.elc index 1c998c9678357c74921fc457e6cb20e5414ac297..20e5cc8099497fa1728ef01574a7337823a8f09f 100644 GIT binary patch delta 114 zcmbO!FkfJTjCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnHne< z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOjKoJwAkFvq{Yl+X1IAXs|O>K Rx$)$`Z2uW8CjVuZ0RY@fB6 ess-sas-log-max 0) (string-equal suffix "log") - (> (ess-num-or-zero (nth 7 (file-attributes ess-sas-temp-file))) + (> (ess-num-or-zero (nth 7 (file-attributes ess-sas-temp-file))) ess-sas-log-max)) (progn (insert-file-contents ess-sas-temp-file nil 0 @@ -877,7 +877,7 @@ optional argument is non-nil, then set-buffer rather than switch." (defun ess-sas-rtf-portrait (&optional ess-tmp-font-size) "Creates an MS RTF portrait file from the current buffer." (interactive) - (ess-sas-file-path) + (ess-sas-file-path t) (ess-revert-wisely) (if (equal ess-tmp-font-size nil) @@ -891,7 +891,8 @@ optional argument is non-nil, then set-buffer rather than switch." (goto-char (point-min)) (replace-regexp "\\\\fmodern .*;" (concat "\\\\fmodern " ess-sas-rtf-font-name ";")) (goto-line 2) - (insert "\\margl720\\margr720\\margt720\\margb720\n") + (if (string-match ess-sas-suffix-regexp ess-sas-file-path) + (insert "\\margl720\\margr720\\margt720\\margb720\n")) (goto-char (point-min)) (while (replace-regexp "\\\\fs[0-9]+" (concat "\\\\fs" ess-tmp-font-size)) nil) @@ -1132,9 +1133,9 @@ Keep in mind that the maximum command line length in MS-DOS is (defun ess-sas-toggle-sas-log-mode () "Toggle SAS-log-mode for .log files." (interactive) - + (ess-sas-goto-log) - (kill-buffer nil) + (kill-buffer nil) ; (if (equal (cdr (assoc "\\.[lL][oO][gG]\\'" auto-mode-alist)) 'SAS-log-mode) (progn ; (setq auto-mode-alist (delete '("\\.[lL][oO][gG]\\'" . SAS-log-mode) auto-mode-alist)) @@ -1147,7 +1148,7 @@ Keep in mind that the maximum command line length in MS-DOS is ; (font-lock-mode 1) ; (font-lock-fontify-buffer)) - (if (equal (cdr (assoc "\\.[lL][oO][gG]\\'" auto-mode-alist)) 'SAS-log-mode) + (if (equal (cdr (assoc "\\.[lL][oO][gG]\\'" auto-mode-alist)) 'SAS-log-mode) (setq auto-mode-alist (delete '("\\.[lL][oO][gG]\\'" . SAS-log-mode) auto-mode-alist)) (setq auto-mode-alist (append '(("\\.[lL][oO][gG]\\'" . SAS-log-mode)) auto-mode-alist))) (ess-sas-goto-log)) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-a.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-a.elc index 0795f7e1e00274a0c935f2832991e3f2338a8c6b..ed5e9942a4c99548a9c02b2b20348bb7742fd66b 100644 GIT binary patch delta 1210 zcmZWpU1%It6n5^NO|zT7?M7*~3GHkWldPKUy?5^1nN5t1B#mHdY1*|9VT)OlUER8w z4ZE928{5)87=KzwbNoT9V3gVxv0ATv5LA$2AH*L}QS?djB;-Y*MMWguyBkChX3m^* z?m6H2&Y3f__AdJHJ+$00o-O44M8=;fWuHt;&(0^ZGxJu_x5i3&>!Hk1i`wcM;Cz5P z79*5~1_uYNT&Xx~U3AP4%V58}2BMIlsP8e?Ofv=j+)M`axzU4Cqcc^iO)8{ta$1LSEYQ8>Q! zxl2Dv&i1%F5CuD2Hquc}RS6l!H-^5>2t2Iiy|;qUkYdqg)Gg+n{n5vMR>T~gFlx@?O5rlx1V z-~Fe7Y$E@8M&EOW>QX*`*LH*`kr(e7FoGg} zI3DU6<^l?=M}`yoOeCnBVvm@JI`UJ|Q>TXc%e@N+`+ACVm3-096s%maG@XrGooSmm zR-2L{&8SdMH*Hg5#iD6H%?Q8aHf7R=V7gOTPKUNwPzgKTIjj=s?Qnj`HZ>T0IrJT( zRK9uN*9P*atPJlpF&A-oV$V)k8$FFUhuoeE*rQA~kCja15jg$eE0{6@JI2o;SIDd5 zA&fcW@{@g&2&?L{ed2_nMwf*12mUyzsm4@MqS;znsju>7HdEy67EO+XHDAq;X_j5v zmE>uEGmSdR)J;0NA4;;1*5IgWnkiUD8gJotyP1>D)dpd^sumN||HDu? zHmToVofaQZK{l-tRSJXMsY&>DC}LEAj<&+Z)Lyui8g49CN_qdW{@F}r`f;4N*TgJefaAuqw=+- zQ~EQUjsi~gviP6%yKT-B~9V+_|l#ckm^o8oxrdJwYa>1)Z zc@loGUr}l_oTcv(4%Nmr?f~l{M8MBYUGS-Qj`9#+yW#oN8=Aqz3EQZ*RYErx7v7t1n{SyhliRfL_#T>heum8K$~Brp+?3wSjaZQwdR>5 zeIcELquC#buH$;(vuqp8w|q?PQt;W8pJUR5HQRccm^$okccg8lmkOdt7ok7hjlpHG zu<9EU-mG__{Sp-#<#f5%a#@O+<{G=;>)XaqQ_{i19b-4EX56pnQ5DrNhwr$|Y-DQM z;?=)XrQtsRU7~8aZY?b0%&bdy{X?h>99i2+m@-9ZS(k%N-9IKxtyp)1>d>W%FA;QI zb$y;v9=MAedkNw0x4VvcRBQKye8i(Xa$lLXX&nFJ=EGad2gd!*Snc5V}|U zhdm}#5l#)R1~zzt3IUbDcbK)2+qCVVM*|CQ-~T$}p@pqORT?OFb!a(bDiZG6_7Td2 z6>js+X9zM3EIfE)+Q*{2CN{ZbmINz_;#4z=wZJO(=8&JUZz| z@O_Wf-?3X^VA7b3 zYxgjjf-QUQai{hSWbnsX_wC-C=cy34Mh04(<|7Hj^?%&BT2{R&emkvEm7`NIDJhdvt0&QJ<>@CWyjy{}j zAuLdlYdh}YYDAEmnf7Fa(6ciqQ*gzGQp{)zL$h;?N7nr`d)Z?WH}w3= Wudu)>n6KRHUI6g0WCR^&ZvPKX{40t8 diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-d.el index f0826fbb01bd..d8ebb59e397d 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-d.el @@ -6,7 +6,7 @@ ;; Original Author: Richard M. Heiberger ;; Created: 20 Aug 1997 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-d.elc index b52380d64f8ef10a672ffc9d1b7f0bb0f012dfea..150f02e9858f3914592af13be5f35ca2a44ffb66 100644 GIT binary patch delta 159 zcmZ2yyv2BejCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnV2dV z85kOJSzB8xq!s1oDx_uRq$=o_KPhuO#H*lXf`>HWeStA(dI8Kj%-X8 zMw`vK1sNI5Hhc0+V`eflnf#DHg3)rbl>jd@qs3+qVP+;KQ`619qCJdE=0=-ui-j;T LnHx?vl&l2+DmX2V delta 131 zcmV-}0DS+nGp;j`94d2TVRCF`baXCkZ)0I>Aa8CUQ*~}2O<{Q;ATl5^GdeXkIx;pO zGB7bPkxLo@II(B^0|79TWCWA~GB&gN1VIJ@H#W093lRYUFtbk#mIDGcIFsiOSOGJ$ lKoAWB0Wz~r69WPQG&!?V6^sD_Ha4^27E}TPHZ_ws8GS6AB;^1A diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-l.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-l.el index bb975cac1387..8929b4b1784c 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-l.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-l.el @@ -7,7 +7,7 @@ ;; A.J. Rossini, ;; Rodney Sparapani ;; Created: 20 Aug 1997 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. @@ -250,7 +250,7 @@ number." (list ;; .log NOTE: messages (cons "^NOTE: .*$" font-lock-comment-face) - (cons "^ [^ ].*[.]$" font-lock-comment-face) + (cons "^ [^ @].*[.]$" font-lock-comment-face) (cons "^ [a-z].*[a-z][ ]?$" font-lock-comment-face) (cons "^ Engine:[ ]+V.+$" font-lock-comment-face) (cons "^ Physical Name:[ ]+.+$" font-lock-comment-face) @@ -299,16 +299,16 @@ number." (cons "^ERROR\\( [0-9]+-[1-9][0-9][0-9]\\)?: .*$" font-lock-keyword-face) ; ERROR: - (cons "^ [^ ].*\\([.][ ]?\\|[,a-z][ ]\\)$" + (cons "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" font-lock-keyword-face) ; ERROR #-###: - (cons "^ [^ ].*\\([.][ ]?\\|[,a-z][ ]\\)$" + (cons "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" font-lock-keyword-face) ; ERROR ##-###: - (cons "^ [^ ].*\\([.][ ]?\\|[,a-z][ ]\\)$" + (cons "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" font-lock-keyword-face) ; ERROR ###-###: - (cons "^ [^ ].*\\([.][ ]?\\|[,a-z][ ]\\)$" + (cons "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" font-lock-keyword-face) (cons "^ a format name." font-lock-keyword-face) (cons "^ where a numeric operand is required. The condition was: " @@ -319,16 +319,16 @@ number." (cons "^WARNING\\( [0-9]+-[1-9][0-9][0-9]\\)?: .*$" font-lock-function-name-face) ; WARNING: - (cons "^ [^ ].*\\([.][ ]?\\|[,a-z][ ]\\)$" + (cons "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" font-lock-function-name-face) ; WARNING #-###: - (cons "^ [^ ].*\\([.][ ]?\\|[,a-z][ ]\\)$" + (cons "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" font-lock-function-name-face) ; WARNING ##-###: - (cons "^ [^ ].*\\([.][ ]?\\|[,a-z][ ]\\)$" + (cons "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" font-lock-function-name-face) ; WARNING ###-###: - (cons "^ [^ ].*\\([.][ ]?\\|[,a-z][ ]\\)$" + (cons "^ [^ @].*\\([.][ ]?[ ]?\\|[,a-z][ ]\\)$" font-lock-function-name-face) ;; SAS comments @@ -395,7 +395,7 @@ number." "calendar" "catalog" "chart" "cimport" "cport" "compare" "contents" "copy" "corr" "datasets" "dbcstab" "display" "explode" "export" - "format" "forms" "freq" "fsbrowse" "fsedit" "fsletter" "fslist" "fsview" + "fcmp" "format" "forms" "freq" "fsbrowse" "fsedit" "fsletter" "fslist" "fsview" "ganno" "gchart" "gcontour" "gdevice" "geocode" "gfont" "gimport" "ginside" "gkeymap" "gmap" "goptions" "gplot" "gprint" "gproject" "greduce" "gremove" "greplay" "gslide" "gtestit" "g3d" "g3grid" @@ -404,33 +404,35 @@ number." "options" "plot" "pmenu" "print" "printto" "rank" "registry" "report" - "sort" "sql" "standard" "summary" + "sgpanel" "sgplot" "sgscatter" "sort" "sql" "standard" "summary" "tabulate" "template" "timeplot" "transpose" "trantab" "univariate" ;;SAS/Stat and SAS/ETS "aceclus" "anova" "arima" "autoreg" "bgenmod" "blifereg" "boxplot" "bphreg" - "calis" "cancorr" "candisc" "catmod" "citibase" "cluster" "computab" "corresp" + "calis" "cancorr" "candisc" "catmod" "citibase" "cluster" "computab" "corresp" "countreg" "discrim" "distance" - "expand" + "entropy" "expand" "factor" "fastclus" "forecast" "gam" "genmod" "glimmix" "glm" "glmmod" "glmpower" "glmselect" "hpmixed" "inbreed" "kde" "krige2d" "lattice" "lifereg" "lifetest" "loess" "logistic" - "mcmc" "mds" "mi" "mianalyze" "mixed" "modeclus" "model" "mortgage" "multtest" + "mcmc" "mdc" "mds" "mi" "mianalyze" "mixed" "modeclus" "model" "mortgage" "multtest" "nested" "nlin" "nlmixed" "npar1way" "orthoreg" - "pdlreg" "phreg" "plan" "pls" "power" "princomp" "prinqual" "probit" - "quantreg" - "reg" "robustreg" "rsreg" - "score" "seqdesign" "seqtest" "sim2d" "simlin" "simnormal" "spectra" "statespace" "stdize" "stepdisc" - "surveyfreq" "surveylogistic" "surveymeans" "surveyreg" "surveyselect" "syslin" - "tcalis" "tphreg" "tpspline" "transreg" "tree" "ttest" - "varclus" "varcomp" "variogram" - "x11" + "panel" "pdlreg" "phreg" "plan" "plm" "pls" "power" "princomp" "prinqual" "probit" + "qlim" "quantreg" + "reg" "risk" "robustreg" "rsreg" + "score" "seqdesign" "seqtest" "severity" "sim2d" "similarity" "simlin" "simnormal" + "spectra" "statespace" "stdize" "stepdisc" + "surveyfreq" "surveylogistic" "surveymeans" "surveyphreg" "surveyreg" "surveyselect" "syslin" + "tcalis" "timeid" "timeseries" "tphreg" "tpspline" "transreg" "tree" "ttest" + "ucm" + "varclus" "varcomp" "variogram" "varmax" + "x11" "x12" ) 'words)) font-lock-constant-face) ; (cons (concat @@ -458,7 +460,7 @@ number." "keep" "label" "length" "libname" "like" "link" "lsmeans" ; "le" "lt" "manova" "means" "merge" "missing" "model" "modify" - "not" "note" "null" ; "ne" + "not" "null" ; "ne" "note" "ods" "options" "or" "output" "otherwise" "pageby" "plot" "put" "random" "rename" "repeated" "retain" diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-l.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sas-l.elc index c53b33eed36a4156683474540ea14b69acac49b5..28c4e0235c6b74088180e3831867f9bf75b9ff8e 100644 GIT binary patch delta 1237 zcmZuxU2GIp7|oqKBc-L=cBxxiuufYRcUIZX-1%=qx)4)}T1hog!tNsDcDCKJf9%fE z5=%vlK?{_cFK7Y}kk~|n55`=qBqqiuiBV%PS`$TMV+;>G5o3&R-kCPM(Bx)jzH`oZ zzVqFO`R6*fvdk@Rf5t83O9`hmUUjDv* zHvPGw0dW?gtD6bpbQxOPVz9gEO=Lk!TNlhVH^QB!Gss|gCk(YT0c^R&IKP@}o`Ym~ z8+3%GIHKJbd=NUx8NQFNpGE}sguCGPa6A0fGLLMiv|b7Nmyi-L-?vp6y5`piZun(5 z9rE=H_op<%;@0$fg1P2q*xFv_G(Bixw)C_1iwIeCG?ElhlAhldXF%87J(7IsCq!*H|@XNwh@i$2HkscbC+pFaN4Ca2^Ue8rL2V|=Q}z*DgU4+q_a ze321#CooN?C0L0mIA1#oy!3<+D4<{J969b*^Bx-_G4VtISAyrdaiQ$3akZ@Dd2V&B z@U2-uGR~Uv1;=-QF=;`lO!^DlmPWb)KJW9Dz+$$>=D0OKM=YL-1a#I9Sjrz~{f_7Q z)VX-9b++ittWB9wQVPk?&*KJ1|9(>K<%mpU2fpI4W}Ech*b3qmqR8}{7y1NjST?

4*vPs`Mv;$*J(doyTrx33Z#iIWn4s%%7bh^bkig;bNRQl>G`NQx zi}vPjAgo#%{5Ek7Tg0UElNe#!Ht1r01Yx3E^w+5*!n&=}?!p;HDF*$p_$_KsWm6J+ zbG`6g9)jNA7Q|kW6``43^! XGU*){K!T;nBrt-j3j*D9Q4{_L$qR#z delta 998 zcmZ8gOKej|6xGZ;LxP={e1P&v`v`Tg9TDEl`^TeJt zaQo6tK0LWHq*d;0iN@pMu9ltf=A%%cYnT2m5SiC*s?y)TJQ}OtLy>m-id25X&G71^Wsn00f4}ZOI zERo5nK5U3^$VS3&HnP03Z?Hrad#0n4a4Nb*8%_`9;8nB>9&89eUvp?-M9uH#9M3d6 zlqOs8&N{P^atkXv{-R7sfw#BaBbwp4HeUQ@jgMK5g||C_XhOOI`?@}6jC%$ac5Nn_ z>3JqT=&q&A6b8OX3=qw7Z5QJ`Un(tO;rZkaqS-Dtk)^H?#%&M&+Qqb#pG-by>c2bJ{4-&edY3JQ l)?#uGho{=qC5ZCC&FR;K*^a=!PsWH(x>C*wHJtK%Zvo$RI@kaJ diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-site.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-site.el index 575774d1b122..e782c35fbfb0 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-site.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-site.el @@ -1,12 +1,12 @@ ;;; ess-site.el --- user customization of ESS ;; Copyright (C) 1993 David M. Smith -;; Copyright (C) 1997--2007 A.J. Rossini, Rich M. Heiberger, Martin +;; Copyright (C) 1997--2011 A.J. Rossini, Richard M. Heiberger, Martin ;; Maechler, Kurt Hornik, Rodney Sparapani, and Stephen Eglen. ;; Original Author: David Smith ;; Created: 12 Nov 1993 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. @@ -259,6 +259,14 @@ between .s or .S files and assembly mode. ) auto-mode-alist))) +;; Rscript and littler interpreters recognized. XEmacs entries can +;; be regexps, which complicates matters as "r" on its own matches +;; other interpeters like "perl". +(add-to-list 'interpreter-mode-alist '("Rscript" . r-mode)) +(add-to-list 'interpreter-mode-alist + (cons (if (featurep 'xemacs) "r$" "r") 'r-mode)) + + ;; (1.4) Customize the dialects for your setup. ;;; AS OF ESS 5.1.14, if you are using Emacs 20.x, x>3, or XEmacs @@ -395,8 +403,8 @@ sending `inferior-ess-language-start' to S-Plus.") (require 'ess-sas-d) (ess-message "[ess-site:] require 'essd-els ...") (require 'essd-els) ;; S-elsewhere, on another machine by telnet -;; (ess-message "[ess-site:] require 'essd-omg ...") -;; (require 'essd-omg) ;; for omegahat +;; (ess-message "[ess-site:] require 'ess-omg-d ...") +;; (require 'ess-omg-d) ;; for omegahat (ess-message "[ess-site:] require 'ess-bugs-l ...") (require 'ess-bugs-l) ;; for batch BUGS @@ -446,32 +454,46 @@ sending `inferior-ess-language-start' to S-Plus.") (autoload 'ess-transcript-mode "ess-trns" "Major mode for editing S transcript files." t) +(autoload 'ess-transcript-clean-region "ess-trns" no-doc t) (autoload 'ess-rdired "ess-rdired" "View *R* objects in a dired-like buffer." t) (autoload 'ess-roxy-mode "ess-roxy" "Insert and edit Roxygen tags for function definitions." t) -(add-hook 'ess-mode-hook 'ess-roxy-mode) +;; if ever ess-roxy works for non- R ess modes, we will have +;; (add-hook 'ess-mode-hook 'ess-roxy-mode) +(add-hook 'R-mode-hook 'ess-roxy-mode) ;;; On a PC, the default is S+6. ;; Elsewhere (unix and linux) the default is S+6 -(cond (ess-microsoft-p ; MS-Windows - (fset 'S 'S+6) - (fset 'Sqpe 'Sqpe+6) - (fset 's-mode 'S+6-mode) - (fset 's-transcript-mode 'S+6-transcript-mode)) - - ((eq system-type 'gnu/linux) ; Linux -- no S+3 - (fset 'S 'S+6) - (fset 's-mode 'S+6-mode) - (fset 's-transcript-mode 'S+6-transcript-mode)) - - (t ; Other Unixen - (fset 'S 'S+6) - (fset 's-mode 'S+6-mode) - (fset 's-transcript-mode 'S+6-transcript-mode))) +(cond (ess-microsoft-p + ;; MS-Windows------------------------------------------------- + + ;; (fset 'S + ;; (if (equal (file-name-nondirectory shell-file-name) "cmdproxy.exe") + ;; 'S+6-msdos + ;; 'S+6)) + (defun S-by-icon (&rest x) + (interactive) + (message "Please start S+ from the icon. + Then you can connect emacs to it with `M-x S-existing'.") + ) + (fset 'S 'S-by-icon) + (fset 'S-existing + (if (equal (file-name-nondirectory shell-file-name) "cmdproxy.exe") + 'S+6-msdos-existing + 'S+6-existing)) + (fset 'Sqpe 'Sqpe+6) + (fset 's-mode 'S+6-mode) + (fset 's-transcript-mode 'S+6-transcript-mode)) + + (t ;;((eq system-type 'gnu/linux) + ;; Linux etc (including Mac OSX !?) -------------------------- + (fset 'S 'S+6) + (fset 's-mode 'S+6-mode) + (fset 's-transcript-mode 'S+6-transcript-mode))) ;;;;* Alias S-mode to s-mode @@ -497,20 +519,42 @@ sending `inferior-ess-language-start' to S-Plus.") ;; ----- *and* update the "Start Process" menu (below) ;; -> To this: wrap the following in functions that can be re-called -(let ( (ess-s-versions-created) - ;;(ess-r-versions-created) - (R-newest-list '("R-newest")) - ) +;; Create ess-versions-created, +;; ess-r-versions-created, +;; and on Windows, ess-rterm-version-paths ----------------------------------------- +(let ((R-newest-list '("R-newest")) + (ess-s-versions-created (if ess-microsoft-p + (nconc + (ess-sqpe-versions-create ess-SHOME-versions) ;; 32-bit + (ess-sqpe-versions-create ess-SHOME-versions-64 "-64-bit")) ;; 64-bit + (ess-s-versions-create)))) ;; use ess-s-versions (if ess-microsoft-p - (progn - (setq ess-s-versions-created - (ess-sqpe-versions-create)) ;; use ess-SHOME-versions - (setq ess-rterm-version-paths (ess-find-rterm)) - ) - ;;else real OS : - (setq ess-s-versions-created - (ess-s-versions-create)) ;; use ess-s-versions - ) + (setq ess-rterm-version-paths ;; (ess-find-rterm)) + (ess-flatten-list + (ess-uniq-list + (if (getenv "ProgramW6432") + (let ((P-1 (getenv "ProgramFiles(x86)")) + (P-2 (getenv "ProgramW6432"))) + (nconc + ;; always 32 on 64 bit OS, nil on 32 bit OS + (ess-find-rterm (concat P-1 "/R/") "bin/Rterm.exe") + (ess-find-rterm (concat P-1 "/R/") "bin/i386/Rterm.exe") + ;; keep this both for symmetry and because it can happen: + (ess-find-rterm (concat P-1 "/R/") "bin/x64/Rterm.exe") + + ;; always 64 on 64 bit OS, nil on 32 bit OS + (ess-find-rterm (concat P-2 "/R/") "bin/Rterm.exe") + (ess-find-rterm (concat P-2 "/R/") "bin/i386/Rterm.exe") + (ess-find-rterm (concat P-2 "/R/") "bin/x64/Rterm.exe") + )) + (let ((PF (getenv "ProgramFiles"))) + (nconc + ;; always 32 on 32 bit OS, depends on 32 or 64 process on 64 bit OS + (ess-find-rterm (concat PF "/R/") "bin/Rterm.exe") + (ess-find-rterm (concat PF "/R/") "bin/i386/Rterm.exe") + (ess-find-rterm (concat PF "/R/") "bin/x64/Rterm.exe") + )) + ))))) (setq ess-r-versions-created ;; for Unix *and* Windows, using either (ess-r-versions-create));; ess-r-versions or ess-rterm-version-paths (above!) @@ -523,19 +567,19 @@ sending `inferior-ess-language-start' to S-Plus.") (mapcar (lambda(x) (if (boundp x) (symbol-value x) nil)) '(R-newest-list ess-r-versions-created - ess-s-versions-created)))) + ess-s-versions-created))))) + - (when ess-versions-created - ;; new-menu will be a list of 3-vectors, of the form: - ;; ["R-1.8.1" R-1.8.1 t] - (let ((new-menu (mapcar '(lambda(x) (vector x (intern x) t)) - ess-versions-created))) - (easy-menu-add-item ess-mode-menu '("Start Process") - (cons "Other" new-menu))))) +(when ess-versions-created + ;; new-menu will be a list of 3-vectors, of the form: + ;; ["R-1.8.1" R-1.8.1 t] + (let ((new-menu (mapcar '(lambda(x) (vector x (intern x) t)) + ess-versions-created))) + (easy-menu-add-item ess-mode-menu '("Start Process") + (cons "Other" new-menu)))) ;; Check to see that inferior-R-program-name points to a working version ;; of R; if not, try to find the newest version: -(require 'ess-r-d) (ess-check-R-program-name) ;; -> (ess-find-newest-R) if needed, in ./ess-r-d.el ;;; 3. Customization (and examples) for your site @@ -556,11 +600,11 @@ sending `inferior-ess-language-start' to S-Plus.") ;; The following two expressions automatically enable font-lock-mode ;; for ess-mode and inferior-ess-mode buffers. -;; FIXME: XEmacs and Emacs 21.x has font-lock for ttys, as well. -;; So we need a better check! [or do this unconditionally -working everywhere ??] -(when (and window-system ess-font-lock-mode) +;; no longer requiring (window-system) here: +(when ess-font-lock-mode (add-hook 'ess-mode-hook 'turn-on-font-lock t) (add-hook 'ess-transcript-mode-hook 'turn-on-font-lock t) + (add-hook 'Rd-mode-hook 'turn-on-font-lock t) (add-hook 'inferior-ess-mode-hook 'turn-on-font-lock t)) ;; If nil, then don't font-lock the input diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-site.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-site.elc index 5a0941e98049d8c37ec877f1dfc296164b9984bf..968aaf4daa8abf7b2b23bb7eba436068d721ced7 100644 GIT binary patch delta 1723 zcmZ`(PiP}m7`F+#Zi@|CY`dl1^vkT;q`Pl2^WMv3w?)K?Wfv)yRuJ7(oX)(ogPAvR zX4kO2QapI`CZ0Tb^ei3(@gOJ&es3m8Q;U#!dEf7S|KIO>e?I^H zy^oh(5}iPruJmJZVtV0`Df}adBy7e3Y`LdkGyJV_zQ!6rE!&=2UtfoI9EH#hIs)ox z*sY5sAq~@J58b~D6L-&A#ZRsjC|7@6`?|<1e)h%WPlW=dXYW4t%fyt;Y9NEoUTsQ! zUU*WyUov+sr^RdwKYOEPv}m@aC^G!`1*Cz9a{+1o7opmbqb5pEo&8h#wy@#)K1n0e z36c~7nTog@3tUMU`GU9^Ts3wQFAln?0Vd=pH85ghuvgza@!^^ovcf+m>Vuon% z9tbeDvD=A&Bz5Byc5mfWOb-QUA7)F!D~CeDX>*08{jYfsq{&CVrHRJY>+&or1*| zim0PHi=P#^qo$YM>pPZJt4&q+Pg6lWWM5XKb4_3D? zZkk&T6i3*Y@dz8(u3}E~c#sq2m2wS9hpFJ7PUSq45isWLTx;O1R;kRbqEQ3pZegmL z)0&Ss`pjw>mATuirQ5m*I3^Cp)Q8MQ$S4!s(UOTP!}=L7k&T;ryf7?2XL?tv=ax-v z$+RW91tUHuD0=?K$nOF*k2#7l;Kk2BA2H<4x6_n&so;q$g$f z-pgArl4B7k_^2ds86pl>zm?}_aK@xK!Kuk#xNSn!)8&;(1JB8RkQ(as@}l~vJl)qW zj%4t5u6KZMpghKDilc+r4PSLQqsB5~{=%@B0e79Q$Ch7PqVrHNClCU&tMr5R8V zVqgSacE%uq1XaWi6C+bMSXkf}AjE+9uH7nv3I^Nvocn#}dmMkb@qP74rsy~7UfT+S zD{Z$?ZzI=1wXTEK>V1S5qP(gbRcatcD0zB29V_o||5Rdpv=x7LQlVw>W9m(uRm!86 zi33HU#^~YcuQ7#`#7^>7krI21P7YT!W*1rJc+L52GWm05g=$VU1oy&%s}#xlz#)^>l4Xb^o1MP4u=R1 zo^b|r7%oZh?Klade~_G|mVwe!7o*u)($i2ATIbMuBnS(L)_(^(R?qSS+_wE7+_Nv< z=ThR)!ddYmx2o7}@d{l^N&{N9)5Kn2c^&ZyosW6q3sS}F?8j-(y4STmE6nzAQ`}cK d#W(fsGAQGY<#fmPg{TKQZVyLBi(k2$zX2G)_q_lB diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp3-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp3-d.el index c7fddc351bd7..6ef249d11af5 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp3-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp3-d.el @@ -5,7 +5,7 @@ ;; Original Author: A.J. Rossini ;; Created: 12 Jun 1997 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp3-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp3-d.elc index 0af750dec571d872bbcd68afa5cd10907409c137..bb748c400de94a4732c805ca39a8a3230bb0c878 100644 GIT binary patch delta 162 zcmaDX@KRucjCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnHne< z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOjKiHvNV|7$>hppW<2=VsCGBOz(P2R#jLEh3(Qz0)iCsvb7qo63iEHfolK^Aa8CUQ*~}2O<{Q;ATl5^GdeXkIx{gK zGB7bPkxLo@II(9Y0s=TRlaB&L0yQ_2)&fxiGB~p-12O^uF|%9+Spfn!G_$t`0RaLs PHj}yskODY0lS~L56{8+Q diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp4-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp4-d.el index 5e83702f623a..75858f3fe4ec 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp4-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp4-d.el @@ -6,7 +6,7 @@ ;; Original Author: Richard M. Heiberger ;; Created: December 1998 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp4-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp4-d.elc index 15a792d0a4c1e8d6fef9e7047e0a58f33a8679bb..55179814e1bb4a8ebea940ec0ac959af94f666ee 100644 GIT binary patch delta 194 zcmdlJawueijCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnHnk> z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOjKiHvNV|7$>hppW<2=XWnwbd+UvL|GMj8<`SVo^?NNr_%gesW@tLVlh?aA}@`Z(^l_f{}uuv6ZQrm9e3Mk%6JX zL~kiZi;d}OOiUIgllz%mnM}tXo`QqMM@01ppO;HU0nq diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp5-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp5-d.el index 7b07542d253b..897353205279 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp5-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp5-d.el @@ -6,7 +6,7 @@ ;; Original Author: A.J. Rossini ;; Created: 9 Nov 1998 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. @@ -28,8 +28,8 @@ ;;; Commentary: ;;; AJR copied S4 to be S+5. -;;; DB contributed the changes from essd-sp3.el to -;;; essd-s4.el. (removed the old ugly approach). +;;; DB contributed the changes from ess-sp3-d.el to +;;; ess-s4-d.el. (removed the old ugly approach). ;;; This file defines Sp5 customizations for ess-mode. Lots of thanks ;;; to RMH and JMC for code and suggestions ;;; Thanks to MM for making this sensible. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp5-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp5-d.elc index ea25a06826527610b858e085fc02ac156366e980..436c4db50494b8aba8076e92ef023e0158a07242 100644 GIT binary patch delta 138 zcmew^@K<1hjCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnHnk> z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOjKiHvNV|7$>hppW<2=Aa8CUQ*~}2O<{Q;ATl5^GdeXkIx{gK zGB7bPkxLo@II(9Y0s=TRlaB&L0yQ_2)&frgGB~p*12qByFgdec1#JNWH#W1)1_1#A QG&qyc2aW_W%F@ diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp6-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp6-d.el index 9d1f8a90af9f..fcd6406c15ef 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp6-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp6-d.el @@ -5,7 +5,7 @@ ;; Original Author: A.J. Rossini ;; Created: 2001/02/06 -;; Maintainer: ESS Core Team +;; Maintainer: ESS Core Team ;; Keywords: start up, configuration. @@ -28,8 +28,8 @@ ;;; Commentary: ;;; AJR copied S+5 to be S+6. ;;; AJR copied S4 to be S+5. -;;; DB contributed the changes from essd-sp3.el to -;;; essd-s4.el. (removed the old ugly approach). +;;; DB contributed the changes from ess-sp3-d.el to +;;; ess-s4-d.el. (removed the old ugly approach). ;;; This file defines Sp5 customizations for ess-mode. Lots of thanks ;;; to RMH and JMC for code and suggestions ;;; Thanks to MM for making this sensible. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp6-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp6-d.elc index 862e5855f1f9740d7dea25738c6f3e1fc1c485ab..29a184cbc2e38ca12cd8773bc2bf2e7173274669 100644 GIT binary patch delta 189 zcmeA%nPf6S#yd49GfyuuFQq88TrWAdR4+B9R3Sf4!L2A$!8fr|!O$3ptV~R-Obr!` z3=9pqtgWpT(u(qP71Ax%^WPfEKC-ro2PT+GBOz&Z)W2%WCZdjTXOd?SsHCV$vuOS(R_0f??PrK m6T{7{f^Rsa&5bl;HMukjit@`cQ&JVwLG~0EnCYfyasdFBW;L$> delta 161 zcmbPa(ql3~MyohEu_!0Cq(m<#KRGc+AwN$cxHM0}H?dMd!AQZ-*viz*%GgN3$iUEG zqPG;I#m00sCMFA$$^A^OOs3|OuQB;E8CgtLXMW0LV7Zx(rI&@t+;a0=j$B421M|&1 zT!xH5{$zXZJ|+vZ&F8siFftl$&fs0h%w%l3nOpD;hqRfQW~?TcMnO@2S!PPAf_iFk Nv2JmJnQn?E7XYS&Eh7K` diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp6w-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp6w-d.el index 902953e7d381..d86156415285 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp6w-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp6w-d.el @@ -8,7 +8,7 @@ ;; Original Author: Richard M. Heiberger ;; Created: April 2001 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. @@ -85,7 +85,7 @@ connects it to the '(ddeESS [S+6])' window.") " " inferior-S+6-print-command " S_PROJ=" - (directory-file-name default-directory))) + (w32-short-file-name (directory-file-name default-directory)))) ;; (inferior-ess-ddeclient . "ddeclient") ;; (inferior-ess-client-name . "S-PLUS") ;; (inferior-ess-client-command . "SCommand") @@ -199,9 +199,11 @@ to start the Splus program." (append ess-customize-alist '((inferior-ess-primary-prompt . "^")))) (setq ess-customize-alist ; change inferior-ess-start-args (append ess-customize-alist '((inferior-ess-start-args . "-i")))) - (let ((s-proj (getenv "S_PROJ"))) + (let ((s-proj (getenv "S_PROJ")) + (use-dialog-box (not (or ess-microsoft-p (eq system-type 'cygwin)))) + ) (cd (w32-short-file-name (directory-file-name default-directory))) - (setenv "S_PROJ" default-directory) + (setenv "S_PROJ" (w32-short-file-name default-directory)) (inferior-ess) (sleep-for 2) ; need to wait, else working too fast! The Splus ; command in '(ddeESS [S+6])' should follow the "$" @@ -297,7 +299,9 @@ Splus Commands window blink a DOS window and you won't see them.\n\n") "Call 'Sqpe' from 'S-PLUS [678].x for Windows', the 'Real Thing' from StatSci." (interactive) (setq ess-customize-alist Sqpe+6-customize-alist) - (let* ((shome-nil-p (equal (getenv "SHOME") nil))) + (let* ((shome-nil-p (equal (getenv "SHOME") nil)) + (use-dialog-box (not (or ess-microsoft-p (eq system-type 'cygwin)))) + ) (if shome-nil-p (setenv "SHOME" inferior-Sqpe+6-SHOME-name)) (ess-write-to-dribble-buffer (format "\n(Sqpe+6): ess-dialect=%s, buf=%s\n" ess-dialect @@ -362,7 +366,7 @@ S-Plus 7 or S-Plus 8." not point to S-Plus 6 or 7 or 8. Please add `splus[678]?/cmd' (expand the `[678]?' to match your setup) to your `exec-path' or specify the complete path to `Splus.exe' in the variable -`inferior-S+6-program-name' in your `.emacs' file.") +`inferior-S+6-program-name' in your `.emacs' file.") ;;; " This comment keeps emacs font-lock from getting out of phase. (progn (forward-line) (if (search-backward "splus\t6.0" (point-min) t) @@ -400,9 +404,11 @@ to start the Splus program." (append ess-customize-alist '((inferior-ess-primary-prompt . "^")))) (setq ess-customize-alist ; change inferior-ess-start-args (append ess-customize-alist '((inferior-ess-start-args . "")))) - (let ((s-proj (getenv "S_PROJ"))) + (let ((s-proj (getenv "S_PROJ")) + (use-dialog-box (not (or ess-microsoft-p (eq system-type 'cygwin)))) + ) (cd (w32-short-file-name (directory-file-name default-directory))) - (setenv "S_PROJ" default-directory) + (setenv "S_PROJ" (w32-short-file-name default-directory)) (inferior-ess) (sleep-for 2) ; need to wait, else working too fast! The Splus ; command in '(ddeESS [S+6])' should follow the "$" @@ -488,13 +494,15 @@ Splus Commands window blink a DOS window and you won't see them.\n\n") (toggle-read-only t) ; restore ESS buffer to be read-only )) -(defun ess-sqpe-versions-create () +(defun ess-sqpe-versions-create (ess-SHOME-versions &optional x64) "Generate the `M-x splusxy' functions for starting other versions of -Sqpe. See `ess-sqpe-versions' for strings that determine which +Sqpe. `ESS-SHOME-VERSIONS' is normally taken from +`ess-sqpe-versions', a variable that contains strings that determine which functions are created. This works by creating a temp buffer where the template function `Sqpe+template' is edited by replacing the string 'Sqpe+template' by the version name. The list of functions actually -created appears in the *ESS* buffer. +created appears in the *ESS* buffer. If `X64' is not nil, then +modify the function name to show \"-64bit\" in its name. The result `ess-sqpe-versions-created' will store a list of the new Sqpe defuns, if any, that were created. The defuns will normally be @@ -512,6 +520,7 @@ placed on the menubar upon ESS initialisation." (delete-region (point-min) (point-max)) ;; Find which versions of Sqpe we want. + (setq x64 (if x64 "-64bit")) (setq versions (ess-uniq-list ess-SHOME-versions)) ;; Iterate over each string in VERSIONS, creating a new defun each time. (while versions @@ -520,23 +529,24 @@ placed on the menubar upon ESS initialisation." (if (file-executable-p version) (progn (setq beg (point)) + (setq version-function-name (concat (file-name-nondirectory version) x64)) (prin1 (symbol-function 'Sqpe+template) eval-buf) (insert "\n\n") (goto-char beg) (while (search-forward "lambda" nil t 1) (replace-match - (concat "defun " (file-name-nondirectory version)) + (concat "defun " version-function-name) t t)) (while (search-forward "ess-SHOME" nil t) (replace-match version t t)) (goto-char (point-max)) (setq ess-sqpe-versions-created - (cons (file-name-nondirectory version) + (cons version-function-name ess-sqpe-versions-created)) (ess-write-to-dribble-buffer (format "(Sqpe): ess-sqpe-versions-create making M-x defun %s for %s \n" - (file-name-nondirectory version) version)) + version-function-name version)) ))) ;; buffer has now been created with defuns, so eval them! (eval-buffer) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp6w-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sp6w-d.elc index c27037f7d78f2f7f7cc353eb25c98a7a3c451507..ce29610c87ca3bc087f80626d9683cf0e712ffad 100644 GIT binary patch delta 1950 zcmbtV-*4Mg6mFar`fH|atHsLN-XvYubai@v*-l!@*3u%TG1gIpHsMKiQ>Qgc>?m>D z^@Z{_v>}Fc1ri`69(hH6=6@JyAjF-wI1zMOpDcTPUK znYn)}^YO_GZr$@sj=$M*_e#~qPRZTeL4l86ZF%UTvyTXa&m8A-21OJT(my{xk7}); zfofjeMYCa}IqSCDx=|wR8)r&UDpcH7Rut0^-z%SHOyOn!R45kf-S-q`L}t&~Or{d; zKJ$(uhP312Zts-%ySJPvN4W2*qLjuTFxE}*c6)+U3Sf8#9BBzIyPl9 zieV90R4wLmIhzuBz~F`{18`{P(?gEZjR6t!k*n%da%;Nxd5BqkX^>%U+GdPsXW&W2 zMSbu9ClCZNnbL{~|iu2K!kV3y4|R_SVd=Ek{jLgKUp3SKEJxXgK{ zSPnJvPL15sxN5+UH|#;maF;|?ja*TXiE(kKFeLhi2d5?N4X@e?+CeSUo2b3t4&8ZS3=dk(mAG67~tOZ~IUYdl9N3P(HTQ@lNqX($8TTDry!|E{WL(CzhR; z4C9!rm~7G^8x+hzh^YX>D7UGJd$a;<4YjbUZBM|?)K0+@7-b+b1J$M2j7~@iI$Sc= zQKX|cGqg$dv@EtNsWa8nNlCJP9d6Lm*p3dlJ{>$jPWK=6jJ`Xf$Zl+0cxdt>da3eE;Ws+p4Eda8E5m~1N zc%o{o7*AE_MCL!_Z$N~15=*8U8Z>EQb=CN{Lzbkh+ur`M<5PAbu)cPue3|oc*LbZjB$=3(yU;483u;d#H>nMJe>PVt?VBg)Q-2 z<@K5Mm9;fJHi7>3%A0HFFTJsL8hLHx2d#!vukWMKx$gS$!0Z>fxnm-RT;O|J%!+b*i@_|?#ZIqf?Q zzzI-$JJ>^c-Q*iym`9$Eyb!8@pg2GOYko>vJ1KM5ZM7k>jV6PpL~!cphRKVf^b$EZ zB3V5l`-2R_gQ_QU$K()T?{y8FJ36p<3=Wy?gDRMfcdZ|XR}Qa7R<%*sf@O$#q3>`e zBy!rdbOLtljOCaHBT)vH!0ak~9rV6z`h(HcI0UXM#50y+x-7$B4hmUGCWJ71H_7rJ zyMMJSwd!c^(hx)sM~4dIE1gULI}Z7brURU@WFm>T7M8L=hWL76_Suw6@xwx1lYe!( zBvbbTf75HZ)i7x7i@z2w3H#-ni|7gLrZnpvq2lyw$Uswt2~IjD-lk_gRzll Q`0SPLtWh>Z^OdoG0QV>jUH||9 delta 1467 zcmcJP&uc8P0PAcEI?3TUJr`VaKbQ@eiv5{^_lvx%2vJ1Xk|&lJLlhHyZ*|(J{d{@e zG;2cMGgnNnF8?&YH?ZtlFHOQ_JM)K0>+y+f!!THU^Q})!`Fwm%PUU=q#?9O(rYUgz zV}5tm6g)n)@Ys}hCa(?-1&sIsqZk?q+QniqphOKQEQp{TxXGBI5&^7Z$XV?|(#jZMwU?QOT zc6Ck9h1xh^9BZ?oFBlSN5Hx3L$Q&Z&X{1~@*d_tRo;qtxIkic#EcX_U%jQ8WtBaw0 zTxiKG{wjXp+&1M?J|*uSd|?U}-dX%VFelUChwTR^1P;Z1l0OWUXbc(; z+Sf{n4#dmBj0jv%hxj@}EfgLJMfNDY?IX~$fC`*-X5g3GGiwflAI~X54;oM?)W-~p zqYA{xtjZ)!pV3srv`~yYfoqpks2{0(Jv)ggQYw5lie9^O%kmLAC4X|yOk57P!{|D4 z*Wdr(+=`2$txkNt*f!)VcW1Xi^QBo-MSh*q_-4s6GPOFb%dcneSfozl!qIoK7Grh5 z>#Vi$zoI3tOdTGmtW-UQ6;G(D>e?=jpc+c91;t58ICd&;5Cc@g7;8ms;wX$XJU00k zbK;-O9b??LS>n@!n(*`hk2u_h&=hUd2dO!i`9dQh?e{o~WhNnPUS_-}mVmo?YdUMi z&uR~ieV*{kO8AZP+ofesF!}3J^U!)2q6=ZaU+I5wEv#G*d;P6$)SpA`ZZE!ae8P~A zPCT{1Nd9(`fHH*aDNg29_4{M_<%#@zlQ2hv2*Snez}ST;7;02kbLoX4-jJboa>D>x z{WxI7o_Z4$a+ozCAN4!{tUxJvT!SxGbpY4^O^WG2D7=)J2Ny(}YY;bvrqO>4nqw)* z+T-}?eXvE@0rHA?JsU&`!EnL>@We>+UNAbmOXcwjobJ0w?rPL0lvWzzky!FfV^Q8{ zAo)w ;; Created: 9 Sep 1998 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sta-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sta-d.elc index 27c0b8ebed3f2b24ee80c6167dbb1dceb0b29384..f192d74d2ea1852eecfe3e6cd7ad77ea438a26ff 100644 GIT binary patch delta 134 zcmdlkvR7n+jCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnV2aU z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOw?dvvNW39&E(2tW;*#2lRu-` kW+mo5%#3D}@3UQEGB@75nf)dskk`xE&17aWS&B;*0Pv?MJOBUy delta 106 zcmdlhvR!0?j8<`SVo^?NNr_%gesW@tLVlh?aA}@`Z(^l_f{}uuv6ZQrm65rEk%6JX zL~kiZi;d|TOiUJLlP5B{GMQRVzQN?rXs}s>c@HzA!Q`iGmzd1VH}7P>$q3|4=ImxN KwV15HB?|!3iywdh diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sta-l.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sta-l.el index 8ba8028fc777..105e1caa67f1 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sta-l.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sta-l.el @@ -7,7 +7,7 @@ ;; Original Authors: Thomas Lumley , ;; Brendan Halpin ;; Created: 2 Nov 1997 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sta-l.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-sta-l.elc index a850b57b2c6f6b88a519d3080dea65166df53aaa..1a9ee67fc2dcc0944567b51c5b14137e650084b9 100644 GIT binary patch delta 187 zcmV;s07U=EzyZ&|0gxO^Wo&6~E@5tDa%FceV{LUVWn^_AZ*Cw)a%mt2ZXiuzc_1J%ATcvKH8wgj zHXt%EF))!!8UZ-5XPpBAI5v|81cL!GlZpgO0yZ?W*962x0x>s}ol2$xFgUYCOLPJO zF_XGYSOGAT6Ha9UI61R=PA&rhGP9{sS_1(wvjkN^0|GE9lmA#4vtL*p0|GQQvwmBZ T0Rl2MvlU$`0Rc0!Kwb|5)}1k3 diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-swv.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-swv.el index 7ceee431ff11..9685744e227b 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-swv.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-swv.el @@ -5,7 +5,7 @@ ;; Original Author: David Whiting ;; Created: 15 April 2005 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: Noweb, Literate Statistical Practice, Sweave @@ -157,27 +157,41 @@ Sweave file buffer name) and display it." (switch-to-buffer buf) )) -(defun ess-swv-PDF () - "Create a PDF file ('pdflatex') and display it." - (interactive) +(defun ess-swv-PDF (&optional pdflatex-cmd) + "From LaTeX file, create a PDF (via 'texi2pdf' or 'pdflatex', ...), by +default using the first entry of `ess-swv-pdflatex-commands' and display it." + (interactive + (list + (let ((def (elt ess-swv-pdflatex-commands 0))) + (completing-read (format "pdf latex command (%s): " def) + ess-swv-pdflatex-commands ; <- collection to choose from + nil 'confirm ; or 'confirm-after-completion + nil nil def)))) (let* ((buf (buffer-name)) (namestem (file-name-sans-extension (buffer-file-name))) (latex-filename (concat namestem ".tex")) (tex-buf (get-buffer-create " *ESS-tex-output*")) (pdfviewer (ess-get-pdf-viewer)) - (pdf-status)) + (pdf-status) + (cmdstr-win (format "start \"%s\" \"%s.pdf\"" + pdfviewer namestem)) + (cmdstr (format "\"%s\" \"%s.pdf\" &" pdfviewer namestem))) ;;(shell-command (concat "pdflatex " latex-filename)) - (message "Running pdfLaTeX on '%s' ..." latex-filename) + (message "Running '%s' on '%s' ..." pdflatex-cmd latex-filename) (switch-to-buffer tex-buf) (setq pdf-status - (call-process "pdflatex" nil tex-buf 1 latex-filename)) + (call-process pdflatex-cmd nil tex-buf 1 + (if (string= "texi2" (substring pdflatex-cmd 0 5)) + ;; workaround (bug?): texi2pdf or texi2dvi *fail* to work with full path: + (file-name-nondirectory latex-filename) + latex-filename))) (if (not (= 0 pdf-status)) - (message "** OOPS: error in 'pdflatex' (%d)!" pdf-status) + (message "** OOPS: error in '%s' (%d)!" pdflatex-cmd pdf-status) ;; else: pdflatex probably ok - (shell-command (concat - (if (and ess-microsoft-p (w32-shell-dos-semantics)) - "start \"" pdfviewer "\" \"" namestem ".pdf\"" - "\"" pdfviewer "\" \"" namestem ".pdf\" &")))) + (shell-command + (concat (if (and ess-microsoft-p (w32-shell-dos-semantics)) + cmdstr-win + cmdstr)))) (switch-to-buffer buf) (display-buffer tex-buf))) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-swv.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-swv.elc index 3045f8393253aa9a63aec37b09742e3bf905f381..9441878eb2d16517e5fe0849bfd72f1991682a8a 100644 GIT binary patch delta 981 zcmaJ=O>fgc5N*;@+NKF@5fTT~P94(NC3bADljh^Xp;Q8jTJa%}a0ITsE|%mphS4%K&{a)aYPZ|q@-P6`^C?v0pj)L;B-a#;e7AmI$=0>x z<^21sp(p3_AF>THVpo4=vbr|vEPl-lcO+n*-;tJzcQvDdyI`Sx>nVLPE>{7YQ!A!m z!Qt*6h$o%}<(Qs&de?Ew5OOFZ@G;}GTmeNZqZlZQ z`2a!}UZ*FF`X}<*lrGz05a6w&a#GFRxhZai-PjA6<-=u0;7Ca)*B-iy#r1WQXmyk5 zs+rC<5NSB{0+_65>Y9oZlG~gh1H(kC5a8>U`YGt-lhg$W|H z+@`XSG?&lz-H-=X3_=uJJO)!JMW!(RD0p>K5J31R23rCI*hA}>g7CPsg!|d^DqkCSnhV931aa!D4;hCRRYoXPNqaJZ zRKe~@!DD#^>7nU3bo$`9^vdr(vYnH75Ft*USaJJ>dXm$f+TG zG$*3T`?a%@8InmgX99g{&FbmGlsMXJ&8q%!;p566%yZcffjk{46{|j&Mf&FgIWHaa!SR?&+_Wzn59y Y>krGn$}Yw6n=8tyxNYR)<<%4GAA&)Y+5i9m diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-toolbar.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-toolbar.el index d3633b56042f..9cd7dfc24b28 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-toolbar.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-toolbar.el @@ -6,7 +6,7 @@ ;; Original Author: Stephen Eglen ;; Created: 2004-05-06 ;; Revised: 2009-03-16 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS @@ -89,9 +89,12 @@ For beginners, this is probably better set to a non-nil value." (defcustom ess-toolbar-items '( (R "startr" "Start R process") - (S "spluslogo" "Start S process") + ;;(S "spluslogo" "Start S process") + (S "splus_letter_small" "Start S process") (ess-eval-line-and-step "rline" "Eval line & step") (ess-eval-region "rregion" "Eval region") + (ess-eval-function-or-paragraph-and-step "rregion" + "Eval function or paragraph and step") (ess-load-file "rbuffer" "Load file") (ess-eval-function "rfunction" "Eval function") (ess-switch-to-ESS "switch_ess" "Switch to ESS buffer")) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-toolbar.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-toolbar.elc index fa9bf28aebf0063d9e19a95b8c99b3c7ea44da5d..8cb021adec41e7b5aab4405029291349ed3d3555 100644 GIT binary patch delta 313 zcmX|*yGjE=6o#1{H6$1>;H9xRY@^L?cAULrvz?%g*!Tir%ueFM-k9B}c?CfTPHSZ& zSSj-W>I>Lf`UGhurK6y5iXZ;(<3AtHE1B*b^EAnAmdAo$+JkIt^LPwJ4o4z^6E*=t z_4Qo0=Mva=2x&!81Vd3|FicVoojNN!ys9kECiIzIV}nvP!xLn9o}A%5HC=2VgSx-@ zZRycy_fuZiT=c7qrKv2MSEu}frPgqq59*}ItwLBO6Ko_{d2Z>ytg7ZEm_qQ8u1zox zH4c9`6axNn&^Y|y^0Rq|LcO`IWGgThs6&1AzPyXD7y5GEzQukwR5vRfgu679FRS;M jxSopF8VFP3sC@m)z+Mo@(Z(E8?VfEOXjeNATTkd4iuh&| delta 191 zcmX?Lc->%vj8<`SVo^?NNr_%gesW@tLVlh?aA}@`Z(^l_f{}uuv6ZQrm64Hxk%6JX zL~kiZi;d}B%uGh+ljpN(Y?fvTWMne21hc2HvNJLnS!|xqc8Q54CqF%Zavf*I7RJoL8NZ*~HRtaw6X(W>X83&ENR+8JW$EO(tsyEMhh=G1z=o ofSr-q$iQ^-b-`~;%qHeWlP`$;U^W8kJuT`4)C<%jAijYS0Kr~3!T -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS @@ -242,7 +242,7 @@ is not already." (save-excursion (set-buffer ess-buf) (goto-char (point-max)) - (ess-eval-linewise input nil nil nil 1)))) + (ess-eval-linewise input nil nil nil 1)))) ;; replacement code ends (goto-char ess-temp-point) (comint-next-prompt 1)) @@ -269,22 +269,52 @@ Deletes any lines not beginning with a prompt, and then removes the prompt from those lines that remain. Prefix argument means to use \\[toggle-read-only] to clean even if the buffer is \\[read-only]." (interactive "r\nP") - (let ((do-toggle (and buffer-read-only even-if-read-only))) + (unless inferior-ess-prompt + (error "Cannot clean ESS transcript region in this mode! + That only works in ess-transcript-mode or inferior-ess-mode ('*R*' etc)." + ;; Maybe call ess-clean-region-in-new-transcript ?")) + )) + (let ((do-toggle (and buffer-read-only even-if-read-only)) + (ess-prompt-rx (concat "^" inferior-ess-prompt))) (save-excursion (if do-toggle (toggle-read-only 0)) (save-restriction - (unless 'xemacs-p ;; does not exist in xemacs: + (unless (featurep 'xemacs) ;; does not exist in xemacs: (deactivate-mark)) (narrow-to-region beg end) (goto-char (point-min)) - (delete-non-matching-lines (concat "^" inferior-ess-prompt)) + (delete-non-matching-lines ess-prompt-rx) (goto-char (point-min)) ;; (replace-regexp * * ) : - (while (re-search-forward (concat "^" inferior-ess-prompt) nil t) + (while (re-search-forward ess-prompt-rx nil t) (replace-match "" nil nil))) (if do-toggle (toggle-read-only 1))))) + +;; unfinished idea :----------------------- + +;; (defun ess-clean-region-in-new-transcript (beg end) +;; "Copy the region into a new ess-transcript buffer, and clean it there, +;; using \\[ess-transcript-clean-region]." +;; (interactive "r") + +;; (let ((bname (buffer-file-name))) +;; (setq bname (if bname .. ..)) +;; (let +;; (fbase (if fname (file-name-sans-extension (file-name-nondirectory fname)) +;; (buffer-name))) +;; +;; ;; the buffer name should be like a file name +;; (buf-nam ....) +;; (trns-buf (get-buffer-create fbase)) +;; (pop-to-buffer trns-buf) +;; (ess-transcript-mode .....) +;; ))) + + + + (defun ess-transcript-DO-clean-region (beg end) "Clean the current via \\[ess-transcript-clean-region] even if the buffer is read-only." (interactive "r") diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-trns.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-trns.elc index f298604eafff17b22c638a10a819feed05881976..2f7ef4cb3d9b49a8cea79ff5b98a9284714993a3 100644 GIT binary patch delta 906 zcmY*YO>fgc5KT5ozoJweNGWXylN6LD$gbBP`Dg_~M4$pfLbMlD7s;_ViPdBsZ5&Du zD1U$h(%wM`0S8VfC;mVW`~@WL91#buj9m~y@@Qw?n|<@_UH`iIs{OKXpACGjI@}ZN zSapXJm3b2gINT9FJaA5c8u)CR=C-MWu2H(Qv$F$T5e%X04;XBP!_gKSj}=R$#wTZu zkftf$q-yd50b&_(`jZrrtvK6Gl~PSj!(5dwQsQ`eNKxl8@81WF4`R ze3!l|U#BYaNBR;mO?fVJk5FCSnA?!kOqsMaOe^wBrbO!WPr4+Fb46lUSl&gEsP*HV z8nu3%J0J~X)|~&AAq{J`nkz06YR;M~izL~6dux>>TeJ4sX_A=wEL-rCQ*$9<8(JNs zQL=TaE!w(fB2C0-9!p(M!-t2!?Lo=RF1g3^s;c!IUv`gxgoT zfjD-A2hod+296sEU@w%*Kq3ARu`+`W>jC55A(*haaRpRp&{j)+E`CopX`?RRUp~#6 MRI5hD4y#MQ0n@h#xBvhE delta 564 zcmX|)y>HV{6vgA`j}oeYkRk+DNp743kw}jG-t$*lR7GL|0TPI@DacKnG|06h#|SY1 z6C)LHcNS)l+WZd{LmBu75R8mWU3oSU!+kpE_s%`{)S&2 z@Pk~%@5*&Nm79e31-e&+8u&!%N|x}sTEk>m^_7h^Z`GA_!fBSsVo%qSH&FSQtyI>o`Nv$eWNy+&93cn0j? z(^|7VPRuNsPNNX^!YPFD7-sP#OlL`IhKq$cPm_arhJ$()U)A-S#$yB0&|HK;I@&iU zN%}lU#}LmV$ONB9!6-Bjf^4)8h5>XJY`D>EK@U9I=lHY!Tk(9K;x{;1r_|}>i@Tlk Fe*uJComv0@ diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-utils.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-utils.el index bd290f82c4c6..a3b98e6f4312 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-utils.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-utils.el @@ -5,7 +5,7 @@ ;; Original Author: Martin Maechler ;; Created: 9 Sept 1998 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This file is part of ESS (Emacs Speaks Statistics). diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-utils.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-utils.elc index 73950a6d9b3fb42de5c0c529a569dea5c8fede0a..7ef09ef5011e45f85e8ae04771df6c3fbfb9e7d7 100644 GIT binary patch delta 306 zcmcasdZ%=PjCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnHVV; z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOk`qaGB=u>%6yj5VzV(zAS0vM z=2q5eOpKPBWjHo5GFci;zQFmD(R}kMu2x1S3!}|}JRBf3QM?L_OvWagYxu&LnT(7# zUlDxA%w%D*`G{yVGf>lJMaf-^Or}Pg?@H-00d@1pf=!N-D+C&8viYLCG9#0j$>eVe z%Yc$|70)v=85wTQQ{K-6G+IyX0Z@^_WC4w3Oy-7@cW7K@w4B_dxrNEpaI=%vFGir# sY;`i(nM_PKuQ0yF$Yf%$xy3Y_naR*}@<)sLKm#UP@`3E0ywJ)N0980!_W%F@ delta 278 zcmcapdaZPVj8<`SVo^?NNr_%gesW@tLVlh?aA}@`Z(^l_f{}uuv6ZQrm65T6k%6JX zL~kiZi;d|_%uHrxle3x6G8%2RWC>(sG}zqDI*p0Zc(W46CPpR;v&q*ue=-_wzQEPW z$YgG|Ih=_Qi;>C1Z1ZC& zJtm-TAz84=DRPBCBP}*xmse(FGPRieM`0OIa6UyTyC*NVG6eu(TvNFK diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-vst-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-vst-d.el index e959520a11fe..18f86cd198a1 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-vst-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-vst-d.el @@ -6,7 +6,7 @@ ;; Original Author: A.J. Rossini ;; Created: 26 Aug 1997 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-vst-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-vst-d.elc index 89e894c2d566b4895c59d2214d1a896eb0ef4aba..4bb44395fbd69a36c731d03a2648ebc3a33f3a76 100644 GIT binary patch delta 115 zcmey#`=57$jCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%ssk%Ezd zp&^&GwY5T8QGTvMT4qkFf__PEfqrUnv976}q4CB<4JIZ_qs`q+Sxii3rjx(3>}0Yq Q-MooalabMU@*Or=09kt@C;$Ke delta 112 zcmey*`;&Kqj8<`SVo^?NNr_%gesW@tLVlh?aA}@`Z(^l_f{}uuv6ZQrm63^pk%6JX zL~kiZi;d|TOiUJLn6G Q_0-~G-Lm2m-4snO0LV5X1ONa4 diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-xls-d.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-xls-d.el index 49b9fb1de36a..7becf339e107 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-xls-d.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-xls-d.el @@ -6,7 +6,7 @@ ;; Original Author: A.J. Rossini ;; Created: 12 Jun 1997 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: Statistics diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-xls-d.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess-xls-d.elc index 67075068b6d0e3099ea47ec5c1dceebb28f7374d..1eaf037fd38c9664687908ce3b9974b782fd9f7e 100644 GIT binary patch delta 129 zcmeAZo+3O!#yd49GfyuuFQq88TrWAdR4+B9R3Sf4!L2A$!8fr|!O$3ptV~R-OpFzb z3=9pqtgWpT(u(qP71AKX7L!#u F^8pUH9TNZm diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess.el index 6ddc1784a205..faa7d530c9aa 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess.el @@ -6,7 +6,7 @@ ;; Original Authors: Doug Bates, Ed Kademan, Frank Ritter, David Smith ;; Created: October 14, 1991 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: statistical support ;; Summary: general functions for ESS @@ -50,7 +50,7 @@ ;;; ;;; There is an informal mailing list for discussions of ESS. Alpha ;;; and beta releases of ESS are also announced here. Send mail -;;; to ess-request@stat.math.ethz.ch to join. +;;; to ess-help-request@r-project.org to join. ;;; OVERVIEW OF ESS ;;; @@ -91,7 +91,7 @@ ;;; Maechler, and A.J. Rossini to David Smith. ;;; BUG REPORTS -;;; Please report bugs to ess-bugs@stat.math.ethz.ch +;;; Please report bugs to ess-bugs@r-project.org ;;; Comments, suggestions, words of praise and large cash donations ;;; are also more than welcome, but should generally be split between ;;; all authors :-). @@ -246,11 +246,11 @@ Otherwise try a list of fixed known viewers." (defun ess-setq-vars-local (alist &optional buf) "Set language variables from ALIST, in buffer BUF, if desired." (if buf (set-buffer buf)) - (mapcar (lambda (pair) - (make-local-variable (car pair)) - (if (cdr pair) - (set (car pair) (eval (cdr pair))))) - alist) + (mapc (lambda (pair) + (make-local-variable (car pair)) + (if (cdr pair) + (set (car pair) (eval (cdr pair))))) + alist) (ess-write-to-dribble-buffer (format "(ess-setq-vars-LOCAL): language=%s, dialect=%s, buf=%s, comint..echoes=%s, comint..sender=%s\n" ess-language ess-dialect buf comint-process-echoes comint-input-sender))) @@ -261,9 +261,9 @@ Otherwise try a list of fixed known viewers." (format "ess-setq-vars-default 0: ess-language=%s, -dialect=%s, buf=%s, comint..echoes=%s, comint..sender=%s\n" ess-language ess-dialect buf comint-process-echoes comint-input-sender)) (if buf (set-buffer buf)) - (mapcar (lambda (pair) - (set-default (car pair) (eval (cdr pair)))) - alist) + (mapc (lambda (pair) + (set-default (car pair) (eval (cdr pair)))) + alist) (ess-write-to-dribble-buffer (format "ess-setq-vars-default 1: ess-language=%s, -dialect=%s, buf=%s, comint..echoes=%s, comint..sender=%s\n" ess-language ess-dialect buf comint-process-echoes comint-input-sender)) diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/ess.elc index fdcc2dd9ca92d57938489a2760b126d13819a8b4..42b907169c550a346c010b3da765f46cd45afe22 100644 GIT binary patch delta 240 zcmX@3aZY1`jCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tv8Jj2= z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOuWX#WMn+qk~xOS#BlO-<^m>T z)5)AHevForBUtho%_g5C?4MPj3704`3^7{ i8El@<&&4=-wZMbPbNQ1uzY`2%oa`jL9%$ev;V1xHen(LN delta 217 zcmX@7aYkc;j8<`SVo^?NNr_%gesW@tLVlh?aA}@`Z(^l_f{}uuv6ZQrm7$q}k%6JX zL~kiZi;d~mn3xRBC)+c}Fd3Upp37XoWMny+pT&>Scyb&|KBK|pb1ace#wL?BS!0-t zOeeRq#xWUMPJYfB%4BFd*^Vun(P;82wk)7JQT8N|L6z(an9R&3OLOEinOkn|;ZR^? zG}^qDvz3w2aI-P@JrE_td!7-b<}u%a$^C-Kli37TG9?yGUN7)~$-rXsM8VCBAg+t> KdZ5`~grflO!a!#L diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/essd-els.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/essd-els.el index eb45edd23b85..94dda2d9b087 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/essd-els.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/essd-els.el @@ -7,7 +7,7 @@ ;; Original Author: Richard M. Heiberger ;; Created: December 1998 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: start up, configuration. diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/essd-els.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/essd-els.elc index e31e4e91d0578f6b9067563272c079f6d9b787d2..31e6be5a55fb4c0102e5a649e4892c570eab91a7 100644 GIT binary patch delta 176 zcmaEB^x0^FjCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnHVV; z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOjKoJw3yt^8Lr(d%w`70n{V+sGcg$% ZZI%~wWMVb}3M31^VP&!~o*XDC0|3%ZGo%0j delta 172 zcmext^wwyCj8<`SVo^?NNr_%gesW@tLVlh?aA}@`Z(^l_f{}uuv6ZQrm65T6k%6JX zL~kiZi;d~3OpHd8dzoCBOid?WVajAOGTUs=EW*TSyg7t*EhCee`DAAHXFw&d*cSrD zdN?LCG8KPhuOw?s(G~3+IZp6rBYPk6@M-2<3 JtI4HNP?TSmnUboYo|~ARs#}zro?20$ G$prvtHXgG8 diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/mouseme.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/mouseme.elc index 07df1c40541c514ae3a5fb8327f2e0c90ceb83d4..516abeb1184e09fecfd6feb2c316fb98e48c4ba8 100644 GIT binary patch delta 243 zcmccQb;E0djCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnHVS- z85kOJSzB8xq!s1oDx_uRq$=o_KPhuO#H*bXffHIU2Ss<>rO@{Q)3|e zFq5(IW)==xHb(Q!PJB{KOhzV~;{-yOnG6j!ZxNPeWVGCTL4=Eu$;5c_9npV4*~xdr z{xVq@ZoVz9!N_Q~nMG2R5op9@X{lX|7Mrh0EoWr5G%(uSAfwL6WMsT~rR*F=ptzfS n2~d^M<~<6vERvR{nz5Q(8U;o9Wtl0d3hKG}rNybashV5>-dIO; delta 196 zcmccNb;)ajj8<`SVo^?NNr_%gesW@tLVlh?aA}@`Z(^l_f{}uuv6ZQrm64%>k%6JX zL~kiZi;d}jSQw2ayRxfo?qc1^$Yf#;WFKZSGT+R_Vavv7xY>hGiiye4VsnZ>2s4v` z$>v?c(u|D8o3Dv*F)|sOPkto&4=6kNk=S1*bJNWa#Wffi4K{O0iZTL?n5-zZi_vKF u9jWDv%odhro7-g68JP^tH?NnS!w3}jkuL$NGTVGep_YZo!g8{ssyG0azBsc0 diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/msdos.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/msdos.el index fbac16ae0be3..286ff1eae03f 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/msdos.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/msdos.el @@ -6,7 +6,7 @@ ;; Original Author: Richard M. Heiberger ;; Created: February 1999 -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; Keywords: processes diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/msdos.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/msdos.elc index 2874c2ce465c7dc083c7ab102a30e68327f53454..4b36f3c04c1792ae23bca4ed44d49b6d28f27c8c 100644 GIT binary patch delta 128 zcmeya_*Zd)jCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnHnn? z85kOJSzB8xq!s1oDx_uRq$=o_KPhuOl)9cvM|{En2DE>$VAa8CUQ*~}2O<{Q;ATl5^GdeXkIx{mM zGB7bPkxLo@II(Ad0s=QQv*`j20Rk{Klj#CJlQsmP0x~qS*aVjd0yH$UaSg}<0yH_3 GI}pNPh#uVl diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/noweb-font-lock-mode.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/noweb-font-lock-mode.el index 0162b032718c..a240db406833 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/noweb-font-lock-mode.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/noweb-font-lock-mode.el @@ -6,7 +6,7 @@ ;; Copyright (C) 2003--2004 A.J. Rossini, Rich M. Heiberger, Martin ;; Maechler, Kurt Hornik, Rodney Sparapani, and Stephen Eglen. -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/noweb-font-lock-mode.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/noweb-font-lock-mode.elc index 42d5e0a6fe18e9ad7ceeff1654a36c852961a50c..cd076d50b5c23ab5e4e9feb781a113528b4d70ea 100644 GIT binary patch delta 249 zcmbPYGs|XzjCX2IW}aSRUP@7Fxn6Q^sa|SIsX~69f?H9hf^TA_f}t@GS(%tvnOGKPhuOkBpqXug?)S(1^-(r~geOD>bS z@#IM?rKOENN9m`>JY$z?J#pFD%*G?TgIpLp zJoyQKHFnYC@Z}A Nu5>daqal#F69CUbL9PG* diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/noweb-mode.el b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/noweb-mode.el index a749c5f5976c..fa90e724b55a 100644 --- a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/noweb-mode.el +++ b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/noweb-mode.el @@ -9,7 +9,7 @@ ;; ESS-related Changes first added by Mark Lunt and A.J. Rossini, March, 1999. -;; Maintainers: ESS-core +;; Maintainers: ESS-core ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by diff --git a/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/noweb-mode.elc b/aquamacs/src/site-lisp/edit-modes/ess-mode/lisp/noweb-mode.elc index 7b73574e1a939e83346f90893bb3efac503db911..72d359fe7f767bc0a6eeccf05cad4aa179ba63b6 100644 GIT binary patch delta 875 zcmXAnYiJZ#6vw$|VqSIC1|QMp!_-7DAF`P{ckb+rD|VNr4^6aMO*O`7*6fB&&C9IO zm_lufO|cRZa>Qt~Q46IdC~bQ11sW}WkbVg#orRgS>kx6ZAqCQ zjYiGJjS_IX-c-b%${fosz{2dkU~3%CzQC7ib4Gf$W8?kM5V)GUXLJd$CB2%N6vC&PH=h9b3g4Z5(_jjkKj*D! zU|Zxac*toE78R`kX;HdpJO`Af%91U@(3YlCiw0&17h~?Eh+s4_2HL@YBfoLzqBjVR zg`fD_S(kqI`vpW4)kb>-NJ&qZ{s=6H_|7Ew4)(=Hg4&|-vyAk2{0bPpW#jpZtA?~o zF`k)CgYWHUKq~&=V*yIit`CI)5lP*Z8NoN{Wz}5+ltb56e+x#$a;RqQTmjmq?dy&L zC`B{Z?+$$0x8aol&!IgVE#BfUwPRd&+a`7r->w_x$mP0gY)9|r3dYuWbIU={7H+G* z#G*EqCHexg#EF2ce(TR{mBNCCE8t1I-LRAETb2Ay1U^1b{Q%OY1C2xME|#Z@a_@Zh7t>5=oHYl5x_bGLpg8kC=AAflE@;Z=(PIV^t~nkPhHFjr@uw4~bAu73`jH&q KhNMr9i2nia=O7mV delta 835 zcmW-fSx8k;6o%RBIHlP@*(i3Xq;3y&=5uyMd1)@BnL@Mc?bdCQ+n|;fr3KkUUUO0E zHLRcrBpO(t1)`Kt5J5CO1O^5LJ@g>dOJ>m8JstMi>-_8g{L>uD8&Vx@DNg)pgTE@Oba!G+|<0TDh=sFs(!w zxG4RRu<%EE7nl<7Wc2VwH1n~rXhK$40mmvc-mKP3vg!sS}+_+7#XtMMgDvsffk2p4aBwU0I{*0^E8c71`WQQWUfKU~ z__A6a)*kKQV7$t5&QelqbrSeEx5fn(b>u`9=fmPBzwmWHPfpL|Aps85@el|5&P>M7 z^@D23eP>EpUH&iG=iVyvjE1vd`gEz`DKN5%xa{Ik23Q`gZ(5QGj!(&!IZD2{y$cg< zA)b#T?Ty&jnuQBedAuiFnd;^z;y1UCFzDa*C%h}_zHw7yv~9PF1h@{h-F}s&-YdmB LGkFdr?stlRi|iJ2 diff --git a/aquamacs/src/site-lisp/edit-modes/info/ess.info b/aquamacs/src/site-lisp/edit-modes/info/ess.info index d66c24867df0..368846747758 100644 --- a/aquamacs/src/site-lisp/edit-modes/info/ess.info +++ b/aquamacs/src/site-lisp/edit-modes/info/ess.info @@ -1,11 +1,11 @@ -This is ess.info, produced by makeinfo version 4.8 from ess.texi. - ESS -- Emacs Speaks Statistics +This is ess.info, produced by makeinfo version 4.13 from ess.texi. + ****************************** INFO-DIR-SECTION Emacs START-INFO-DIR-ENTRY -* ESS: (ess). Emacs Speaks Statistics (S/S+/R, SAS, BUGS, Stata, XLisp-Stat). +* ESS: (ess). Emacs Speaks Statistics (S/S+/R, SAS, BUGS/JAGS, Stata, XLisp-Stat). END-INFO-DIR-ENTRY  @@ -14,26 +14,27 @@ File: ess.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) ESS: Emacs Speaks Statistics **************************** -ESS version 5.3.6 +ESS version 5.13 by A.J. Rossini, R.M. Heiberger, K. Hornik, M. Maechler, - R.A. Sparapani - and S.J. Eglen. + R.A. Sparapani, + S.J. Eglen, + S.P. Luque + and H. Redestig. Emacs Speaks Statistics (ESS) provides an intelligent, consistent interface between the user and the software. ESS interfaces with - SAS, S-PLUS, R, BUGS and other statistical analysis packages under - the Unix, Microsoft Windows, and Apple Mac operating systems. ESS - is itself a package within the emacs text editor and uses emacs - features to streamline the creation and use of statistical - software. ESS knows the syntax and grammar of statistical - analysis packages and provides consistent display and editing - features based on that knowledge. ESS assists in interactive and - batch execution of statements written in these statistical - analysis languages. + SAS, S-PLUS, R, BUGS/JAGS and other statistical analysis packages + on Unix, Linux and Microsoft Windows. ESS is itself a package + within the emacs text editor and uses emacs features to streamline + the creation and use of statistical software. ESS knows the + syntax and grammar of statistical analysis packages and provides + consistent display and editing features based on that knowledge. + ESS assists in interactive and batch execution of statements + written in these statistical analysis languages. * Menu: @@ -46,11 +47,12 @@ ESS version 5.3.6 * ESS for the S family:: * Editing:: How to create/edit objects and functions -* Editing R documentation files:: +* Editing R documentation:: * Help:: Reading help files * ESS for SAS:: * ESS for BUGS:: +* ESS for JAGS:: * Miscellaneous:: Other features of ESS * Mailing lists/bug reports:: How to get assistance with ESS @@ -75,8 +77,8 @@ incorporated. ESS provides a common, generic, and useful interface, through emacs, to many statistical packages. It currently supports the S family, SAS, -BUGS, Stata and XLisp-Stat with the level of support roughly in that -order. +BUGS/JAGS, Stata and XLisp-Stat with the level of support roughly in +that order. A bit of notation before we begin. _emacs_ refers to both _GNU Emacs_ by the Free Software Foundation, as well as _XEmacs_ by the @@ -205,623 +207,919 @@ File: ess.info, Node: New features, Next: Credits, Prev: Features, Up: Intro 1.2 New features in ESS ======================= -Changes/New Features in 5.3.6: - * ESS: for Xemacs, using "gnuclient" (without a "-q") works for - things like fix() after M-x gnuserv-start has been done. + Changes/New Features in 5.13: + * ESS[R]: On Windows, for R 2.12.0 and later, the Rterm + executables (in subdirectories i386 / x64) now are found as + well as for earlier R versions. + + * ESS[S+]: on Windows, both 32- and 64-bit versions of S+ + ("S-PLUS") are found now and made available on the menu. + + * ESS[R]: When prompting for a starting directory, the R + version is (always?) correct now. + + * ESS[R]: on non-Windows platforms, the `use-dialog-box' + variable is no longer temporarily changed (to `nil' for + R-x.y.z version functions and to `t' for `R' itself), but + rather the user customization is obeyed. + + * ESS[R]: more Roxygen improvements. + + * `Rd-preview-help' now generates preview buffers with + navigation facilities the same as regular help buffers. + + * ESS: New functions and keys C-c [up] / [down] for evaluating + the buffer "from beginning till here". + + Changes/New Features in 5.12: + * ESS[SAS] Font-locking: update of PROCs keywords (up to SAS + 9.22); error/warnings. + + * ESS[R]: Roxygen improvements: S4 classes; also optionally + keep spaces when filling arguments + + * ESS[Rd]: support new keywords: section-name \subsection plus + a dozen "new" keywords; should match R 2.12.x now. + + * `ess-display-help-on-object' (`C-c C-v') now _caches_ the + list of topics, thus speeding up the improvement feature + introduced in 5.9. + + Changes/New Features in 5.11: + * Filename completion within buffers now adds only trailing + characters to complete the filename, rather than expanding to + an absolute file path. This filename completion is bound to + the TAB key. + + * `M-n P' in Sweave buffers now prompts for the command to run + instead of using `pdflatex' unconditionally, offering + completion from customizable collection + `ess-swv-pdflatex-commands', the first of which is taken as + default and that defaults to `texi2pdf'. + + * `M-RET' is now also bound in S language (R and S+) buffers to + `ess-use-this-dir'. It sends `setwd(..)' to the S process to + set the working directory to the one of the source file. + + Changes/New Features in 5.10: + * `M-RET' in *S* buffers is now bound to `ess-dirs'. This + function will set Emacs's current directory to be the same as + the *S* process. This is useful if you use `setwd()' within + a *S* process. + + Changes/New Features in 5.9: + * Toolbar: The toolbar now has an icon for starting Splus. + + * Indentation: New documentation and code has been added to + make it easier to change how ESS indents code. In + particular, see `ess-default-style', `ess-own-style-list' and + the documention subsection "Changing indentation styles". + + * `ess-display-help-on-object' (`C-c C-v') now offers + completion candidates for help file aliases, in addition to + object names. + + * Font locking: is now turned on even without `window-system' + is `nil', whenever ESS-FONT-LOCK-MODE is non-nil, i.e., by + default. + + * ESS script editing: ess-eval-deactivate-mark default is now t, + as suggested by Leo Alekseyev and subsequent "unanimous" + ESS-help discussion. + + * ESS[R]: Editing support for "#!" (Rscript / littler) editing, + thanks to Jeffrey Arnold. + + * ESS[R]: Now finds all R versions, both 64-bit and 32-bit, on + some 64-bit Windows machines. Please report back to + ess-core success or failure on your 64-bit Windows machine. + + * ESS Manual now more visually pleasing; + `http://ess.r-project.org/Manual/ess.html' - * ESSR: M-x R-newest should now work in more situations on MS - Windows, e.g., when R has been installed in a non-default - "ProgramFiles" directory tree. + * ESS[R]: Roxygen on XEmacs no longer font locks for now (as + it required missing features and hence broke ESS startup, + there). - * ESSR: For Xemacs, startup (with new tooltip code) works again. + * ESS[R]: Roxygen has a sub-menu on the [ESS] menu. - Changes/New Features in 5.3.5: - * ESS[R] a new defun is available, `M-x R-newest', which will start - the newest version of R that it can find on your system. + * ESS[R]: Function `ess-rutils-htmldocs' in `ess-rutils.el' + offers an alternative to `help.start()' for navigating R + documentation, using the `browse-url' Emacs function. - * ESS[R] add Sven Hartenstein's "R function arguments tips" - functionality, via new file `../lisp/essd-r-args.el'. Note that - this includes an "electric "("" behavior inside `R-mode' which is - _active by default_ and can be customized via - ESS-R-ARGS-ELECTRIC-PAREN; i.e., use `(setq - ess-r-args-electric-paren nil)' to turn it off. Further, - ESS-R-ARGS-SHOW-AS allows to switch to the "tooltip" mode. + Changes/New Features in 5.8: + * ESS[R]: New `ess-rutils.el' with utilities for listing, + loading, installing, and updating packages, as well as object + manipulation (listing, viewing, and deleting). It also + provides an alternative to `RSiteSearch()' that uses the + `browse-url' function, so results can be viewed in an Emacs + web browser. - * ESS: functions `ess-get-pdf-viewer' and *-ps-viewer; built on new - customizable variables ESS-PDF-VIEWER-PREF and - ESS-PS-VIEWER-PREF; currently used in `ess-swv-PDF' and `*-PS'. + * ESS[R]: much more extensive Roxygen interface, via ess-roxy.el + from Henning Redestig. Ess-roxy supports filling of roxygen + fields, generation and updating roxygen templates, + completion of roxygen tags, basic navigation (marking and + moving between entries), folding using hs-minor-mode and + preview of the Rd file. - * ESS[R] Improved `ess-swv-PDF' to run pdf viewer only if pdflatex - was ok + * Emacs lisp files have got better names (partly, for now). - * ESS[R] Improved `ess-swv-weave' to start R automatically if none - is running. + Changes/New Features in 5.7: + * ESS[R]: loading a source file (`C-c C-l') now works in + Windows, similarly to other platforms; (further; it had + accidentally been broken in ESS 5.6 on all platforms) + + Changes/New Features in 5.6: + * ESS[R]: help() calls have to differ from old default, with + newer versions of R; currently via .help.ESS <- + function(...) hack. + + Changes/New Features in 5.4: + * ESS[SAS]: The long overdue change from `make-regexp' to + `regexp-opt' for font-locking is complete. The new + `regexp-opt' is now the default since it is better than the + old code in many ways (and especially more maintainable). + However, there are certainly some special cases missed (bug + reports and patches welcome!). Setting + `ess-sas-run-regexp-opt' to `nil' will result in the old code + being used. + + * ESS[BUGS] and ESS[JAGS]: typing `=' now results in `<-'. + + * ESS[R] function arguments "show" `(ess-r-args-show)' now + uses the new `(tooltip-show-at-point)' contributed by Erik + Iverson. + + * Toolbar icons now also work in (beta) Emacs 23. + + * ESS[S]: New function `ess-change-directory' for setting both + emacs' current directory and the directory of an *R* or *S* + buffer. + + * ESS[S] when transient-mark-mode is true, the mark is now kept, + rather than deactivated, thanks to a patch from David Reitter. + + Changes/New Features in 5.3.11: + * ESS[SAS]: work around bug in Emacs 22.2 & 22.3 which fails to + set case-fold fontification automatically. - * ESS: Do no longer ask _which_ ESS process to use if there is only - one. + * Rd mode: support new keyword 'Rdversion' - Changes/New Features in 5.3.4: - * ESS[R] now better work with options(error=recover); and the new - default of CHM help files on windows. + * ESS[R]: now again works with Emacs 21.x - * ESS[R] some more cleanup in the "sweave" functions + Changes/New Features in 5.3.10: + * Fixed noweb-mode bug accidentally introduced into 5.3.9 - * miscellaneous fixes + * In noweb-mode, e.g., Rnw-mode, electric "<" also inserts + closing "@". Further, the code chunk boundaries are better + kept up-to-date, such that code[R] <-> text[LaTeX] minor + mode switching should happen more reliably. - Changes/New Features in 5.3.3: - * ESS[S] fix buglet (5.3.2 only) which left command prompt in - "execute buffer" and hence help files. + * In noweb-mode, fix a buglet in rare [Enter] or [Tab] + behavior; further, by default disable the former `[[' .. + `]]' code-protection-when-filling behavior which has been + found to be buggy. - * new customizable variable `ess-display-buffer-reuse-frames' set to - true (which changes default behavior) such that execution or help - *frames* are reused. + Changes/New Features in 5.3.9: + * ESS[SAS]: evince PDF viewer now supported as well; search + order: evince, Xpdf, Adobe/Acrobat Reader - Changes/New Features in 5.3.2: - * Classic BUGS now supported by `(require 'essd-bugs)' with ESS[BUGS] - and JAGS by `(require 'essd-jags)' with ESS[JAGS]. But, - only one of them can be used at a time since they don't play - nice together. Also, `C-c C-c' is now bound to the function - `ess-bugs-next-action' (`F12' has been retired). And - finally, note that `essl-bug.el' is deprecated and the - replacement is `essl-bugs.el'. - - * ESS[R] Improved some of the "Sweave-make" functions (yet scarcely - documented) in `ess-swv.el'. - - * ESS[S] No longer mess with .Last.value (nor in other "languages"). - - Changes/New Features in 5.3.1: - * See the docs for 2 ways to install ESS for XEmacs - 1. by uncommenting the XEmacs part of Section 1 of - `Makeconf' and performing `make install' - - 2. by unpacking either `ess-5.3.1.tgz' or - `ess-5.3.1.zip' into - `PREFIX/lib/xemacs/site-packages' on unix or - `PREFIX\XEmacs\site-packages' on windows - - * ESS[R]: fixed bugs so that Rterm.exe can be found by XEmacs + * ESS[R]: added support for Roxygen, potentially to be extended. - * ESS[S]: `ess-toggle-S-assign-key' is slightly changed; in - particular, the default `ess-assign-key' is now `C-x ='. + * ESS[S] (and R): inferior (`*R*') and transcript modes no + longer fontify language keywords (such as `for', `in', etc). - * ESS[R]: `M-x R-site-search' is a new (slightly experimental) - utility similar to R's `RSiteSearch(..)' but with the advantage of - using Emacs' preferred browser, see `browse-url-browser-function' + * iESS[Stata]: Customize the `ess-sta-delimiter-friendly' + setting to `t' to convert embedded semi-colons to newlines + for Stata processing. + + * Sweave fix for embedded blanks in PDF reader and PDF files + + * Several fixes for Major Mode Convention violations in + `ess-mode' and `noweb-mode'. + + * ESS[JAGS]: `M-x comment-region' now available! + + * ESS[S] The `ess-swv-*' commands (and keybindings) are now in + a submenu of the "Noweb" menu, when editing Sweave files. + + Changes/New Features in 5.3.8: + * ESS[JAGS]: more separation from ESS[BUGS] (as much as is + currently planned); now `C-c C-c' on an empty `.jmd' creates + a template as it should; symbolic links are created for CODA + output so BOA is happy: from `index.txt' to `.ind' and + `chain#.txt' to `#.out' + + * ESS[SAS]: buffer-local `ess-sas-submit-command' and + `ess-sas-submit-command-options' now recognized by + `ess-sas-submit-region' - Changes/New Features in 5.3.0: - * ESS[BUGS]: sanely re-format statistical output, `.bog', from - scientific notation to numbers rounded with 4 decimal places with - `M-x ess-bugs-sci-round-to-4-dp'. + * ESS[S]: When trying to evaluate code in an S language buffer + and there is no associated process, now start R + automatically instead of signalling an error. Also, restart + R if there is an associated process which is not running. + However, do not start R just via the "electric" `(' + (`ess-r-args-auto-show'). - * The keys for navigating among section headings in help buffers - worked, but only for one language per session; they should now - work for multiple languages. (They were also broken on Windows - machines.) + * ESS[S]: For (one-line) functions withOUT '{ .. }' bodys, the + end of function is now correctly found more often. This + notably improves `C-c C-c' + (`ess-eval-function-or-paragraph-and-step'). - * ESS[S] long standing buglets in the internal logic for loading - lisp code on Windows. Particularly fixed behavior in help mode - with S-plus GUI. + * ESS[JAGS]: cleanup/re-organization of elisp code; symbolic + links for CODA output are now only created by the new JAGS + `system' command in version 1.0.3; specify whether this + command is available via `ess-jags-system'; if not present, + then no links are created so that the `*shell*' buffer does + not become unresponsive during the batch run - * New variable, `ess-use-inferior-program-name-in-buffer-name', - which enables using the executable name instead of the dialect - name for R. Feature request. + Changes/New Features in 5.3.7: + * ESS: `ess-default-style' now *is* customizable, i.e., + changing its value in `~/.emacs' now does have the desired + effect. - * ESS[S] `ess-execute-screen-options' now also works correctly when - there is more than one window *side-by-side* in the same frame and - runs in the correct buffer also when there is more than one S - buffer. + * ESS: `ess-font-lock-mode' is a new variable (default: t) + which controls whether font-locking is enabled in ESS buffers. - * iESS[S] new functions `ess-eval-paragraph-and-step' and - `ess-eval-function-or-paragraph-and-step' are bound to keys `C-c - C-p' and `C-c C-c' respectively and to the menu in ESS-mode; also - bound in the help mode (for evaluating examples). - - * ESS[S] new function `ess-toggle-S-assign-key' allows to assign the - " <- " insertion to an arbitrary key. - - Changes/New Features in 5.2.12: - * ESS[SAS]: `M-;' fixed, but the XEmacs function `comment-dwim' may - be broken, if so, use `M-x comment-region' and `M-x - uncomment-region' instead; only valid PROCs are fontified which is - very helpful finding syntax errors (currently supported: BASE, - ETS, FSP, GRAPH, IML, INSIGHT and STAT); the "feature" where - `F'-keys take you to an empty buffer when the requested - destination is a file that does not exist has been fixed, now the - request results in a no-op. Further, sas-mode now also works in - simple terminals. + * ESS[R]: for XEmacs on Windows; another tweak to find R + versions - * Rterm/Cygwin combination works under Microsoft Windows. + * ESS[SAS]: font-locking updated for ODS and SAS Bayesian + Procedures; a more consistent handling of SAS options by + `ess-sas-submit-command-options' which is buffer-local; + portable snooze for MS Windows via customize-able + `ess-sleep-for' (floats welcome); Xpdf now supported as a PDF + viewer - * ESS[R]: internal calls use baseenv() instead of NULL and define - 'baseenv' where needed. + * ESS[Rnw]: now also works with "emacs -nw" and Emacs 22. - * New experimental support for installing ESS. See the file - `lisp/ess-install.el'. + * ESS[JAGS]: now requires JAGS 1.0 (see the new ESS for JAGS + help section for more information): both need work; + suggestions welcome - Changes/New Features in 5.2.11: - * ESS Info entry and `dir' handled more effectively for GNU Emacs - users + * ESS[R]: [TAB] completion now uses the R-internal completion + mechanism (for R >= 2.5.0). - * ESS[SAS]: temporary files created for batch submission of a region - are now named based on the current file; see `ess-sas-file-root' - for details; all `lag' and `dif' functions now fontified correctly - - * iESS[SAS]: fixed a few nagging bugs, however, still does not - appear to work at this time; please let us know if you have any - ideas. - - * ESS[S]: Support for running other versions of Splus has been added - for unix. Two new variables, `ess-s-versions' and - `ess-s-versions-list', are used to tell ESS what other versions of - Splus you would like to run. - - Changes/New Features in 5.2.10: - * ESS[R]: ess-r-versions can no longer be customized (since the - customization was not taking effect unless customizations were - loaded before ESS). Its value has been changed so that it will - also find R executables beginning "R-devel" and "R-patched". If - you wish to change this variable, it must be set in your `.emacs' - before ESS is loaded. + * ESS[R] ([S]): interpretation of "_" as assignment has been + removed in `ess-continued-statement-p' for R and S. - * Installation with GNU Make enhanced: unix and unix-like operating - systems will now be able to install ESS for all users in either a - GNU Emacs site-lisp or an XEmacs package configuration by editing - `lisp/ess-site.el' and `Makeconf' accordingly, then issuing `make - install' - - * ESS[S]: Filename completion (inside strings) now also works in - XEmacs for R and S-plus. - - Changes/New Features in 5.2.9: - * ESS[R] for Windows: the \ directory character bug with respect to - ess-load-file has been eradicated. - - * iESS[SAS]: `C-c C-r' and `C-c C-b' once again work as intended and - documented. - - * ESS[S]: M-x ess-fix-EQ-assign is a bit more agressive. - - * ESS[S]: Imenu now also shows setAs(), etc. - - * ESS[R]: R function pattern enhanced with underlying code such that - `M-C-a' (`ess-beginning-of-function') etc now work for many more - cases, including S4 method definitions. - - * iESS[R]: myOwnhelp(1) no longer wrongly triggers help(1). - - * ESS[R]: Improved detection of bogus help buffers: valid help - buffers containing with the string "no documentation"(e.g. contour) - were being treated as bogus. - - * ESS[R]: In R help buffers, if `options("help.try.all.packages" = - TRUE)' then `?rlm' will list which packages rlm is defined in. - This help buffer is not bogus, but instead is now relabelled - "*help[R](rlm in packages)*". - - * ESS[STA]: add "//" as comment starting character to syntax-table. - - Changes/New Features in 5.2.8: - * iESS: [Tab] completes *file* names "inside string" as in earlier - (<= 5.2.3) ESS versions. - - Changes/New Features in 5.2.7: - * If you use Custom to change the variable ess-toolbar-items, the - new toolbar is used in all subsequent ESS buffers. - - * ESS[SAS]: new feature: if ess-sas-log-max >0 and your .log grows - to more than ess-sas-log-max bytes, just the first ess-sas-log-max - bytes are refreshed; this is helpful when your .sas program - generates lots of error messages and gets too big for emacs to - display - - * ESS[R/S]: `M-;' in R/S editing modes will now indent with either - one or two hashes depending on context. - - * ESS[R]: David Whiting's Sweave extensions (to 'noweb') are now - available (from ess-swv.el loaded by default). - - Changes/New Features in 5.2.6: - * Removed non-ASCII characters in a few files. - - * ESS[R]: now works better when UTF-8 locale is active; in - particular, you get correct directional quotes in R's startup - message for R-devel (unstable development version of R 2.1.0) - when using environment variables LANGUAGE=en@quot - LC_ALL=en_US.UTF-8 - - * ESS[SAS]: toggling of .log mode improved (`F10'); toggling of .lst - mode now also available (`C-F10'); killing all buffers associated - with .sas program no longer bound to `C-F10' since its a bit - overzealous. - - * S-Plus 7 for Windows is now recognized. - - * ESS[S] (incl. R): in auto-fill mode, strings are not wrapped - anymore. - - * ESS[S] (incl. R): font-lock now correctly differs between R and S, - e.g., for "_"; both now fontify warning(.) and S does terminate() - additionally. - - * Support for `bell' aka `beep' aka `ding' aka `alarm' in all - inferior modes: When \a is output "to the the console" at the - beginning of a line, the bell is rung. - - Changes/New Features in 5.2.5: - * ESS[R]: `C-c C-q' or `Quit S' from the menu now should work (again - and less klunkily) and do not append `-exited' to the buffer name. - Further, the behavior of `(ess-cleanup)', called from ess-quit, - now depends on the new customizable variable - `ess-S-quit-kill-buffers-p' which defaults to `nil'. - Consequently, the question _"Delete all buffers associated with - ..?"_ will not be asked anymore by default. - - * ESS[SAS] - ess-ebcdic-to-ascii-search-and-replace will now work - with the `recode' application as well which is available on many - platforms - - * ESS[S] (incl. R): Name completion for slots of S4 objects now - works! - - Changes/New Features in 5.2.4: - * The documentation now includes an overview of how to use the emacs - TAGS facility for S functions. (The distribution also used to - contain a directory `etc/other/Tags' where a ~1990 version of - `etags.c' was distributed; this is no longer relevant and so has - been deleted.) - - * ESS[SAS] - When you are working with EBCDIC files on an ASCII - platform, .log NOTEs may display as gibberish since the EBCDIC - characters are not converted to ASCII prior to their display. So, - the function ess-ebcdic-to-ascii-search-and-replace is provided for - convenience and is bound to `C-F11'. This function requires the - `dd' command (only available on unix or unix-like platforms). - - * ESS: Completion of object names is now always done dynamically - rather than allowing the option of using a pre-computed database - (by `ess-create-object-name-db') since modern computers seem fast - enough for dynamic completion. (We expect few users, if any, have - been using the pre-computed database method.) - - * ESS: object completion in iESS buffers running on Windows was very - slow (for GNU Emacs, but not XEmacs) and has now been fixed. - Further, it was more or less broken for all versions of S-plus 6.x, - and has been fixed to work everywhere but with the Windows' GUI of - S-plus. The list of objects now shows unique names also when an - object appears more than once in the search path. - - * ESS[R]: Completion of object names now also includes those - starting with ".". - - Changes/New Features in 5.2.3: - * ESS: When new inferior ESS processes are created, by default they - will replace the current buffer (this restores behavior from pre - 5.2.0). If you wish new ESS processes to start in another window - of the current frame, set inferior-ess-same-window to nil. - - * New variables inferior-Splus-args and inferior-R-args provide a - way to pass command line arguments to starting S and R processes. - - Changes/New Features in 5.2.2: - * bug-fixes for 5.2.1 (require 'executable), html docs, etc. - - * ess-lisp-directory/../doc/info added to Info-directory-list if - ess-info not found by info - - * ESS[R]: If you have other versions of R on your exec-path, such as - "R-1.8.1" with Unix or "rw1081" with Windows, ESS will find them - and create appropriate functions, such as `M-x R-1.8.1' or `M-x - rw1081', for calling them. By default only Unix programs - beginning "R-1" and "R-2" and Windows programs parallel to the - version of R in your exec-path will be found, but see - ess-r-versions and ess-rterm-versions for ways to find other - versions of R. - - * ESS[R]: Other versions of R, such as "R-1.8.1" on Unix and - "rw1081" on Windows, are added to the "ESS / Start Process / - Other" menu. - - * ESS[S]: If you have other versions of S-Plus on your Windows - computer, such as S-Plus 6.1 or S-Plus 4.5, ESS will find them and - create appropriate functions, such as `M-x splus61', for calling - the console version (Sqpe) inside an emacs buffer. By default only - programs installed in the default location will be found, but see - ess-SHOME-versions for ways to find other versions of S-Plus. - - * ESS[S]: Other versions of Sqpe on Windows, such as "splus61", are - added to the "ESS / Start Process / Other" menu. - - * ESS[R]: (bug fix) ess-quit (bound to `C-c C-q') should now quit the - inferior R process, when issued from either the inferior buffer, - or from a .R buffer. - - Changes/New Features in 5.2.1: - * ESS[S] (R and S-plus): now have toolbar support with icons to - evaluate code in the inferior process or to switch there. This - code is experimental and likely to change as XEmacs/Emacs issues - get resolved. The toolbar should be enabled if your Emacs displays - images, but can be disabled with the variable ess-use-toolbar. - Thanks to David Smith from Insightful for the S-plus logo. - - * ESS[SAS]: ess-sas-graph-view (`F12') enhanced; you can specify - external file viewers for each graphics file type via the alist - ess-sas-graph-view-viewer-alist; also .jpg/.gif are now handled by - image-mode on XEmacs, if available, otherwise by graphics - primitives as before - - Changes/New Features in 5.2.0: - * ESS[BUGS]: new info documentation! now supports interactive - processing thanks to Aki Vehtari (mailto:Aki.Vehtari@hut.fi); new - architecture-independent unix support as well as support for BUGS - v. 0.5 - - * ESS[SAS]: convert .log to .sas with ess-sas-transcript; info - documentation improved; Local Variable bug fixes; SAS/IML - statements/functions now highlighted; files edited remotely by - ange-ftp/EFS/tramp are recognized and pressing SUBMIT opens a - buffer on the remote host via the local variable - ess-sas-shell-buffer-remote-init which defaults to "ssh"; changed - the definition of the variable ess-sas-edit-keys-toggle to boolean - rather than 0/1; added the function ess-electric-run-semicolon - which automatically reverse indents lines containing only "run;"; - `C-F1' creates MS RTF portrait from the current buffer; `C-F2' - creates MS RTF landscape from the current buffer; `C-F9' opens a - SAS DATASET with PROC INSIGHT rather than PROC FSVIEW; "inferior" - aliases for SAS batch: `C-c C-r' for submit region, `C-c C-b' for - submit buffer, `C-c C-x' for goto .log; `C-c C-y' for goto .lst - - * ESS[S]: Pressing underscore ("_") once inserts " <- " (as before); - pressing underscore twice inserts a literal underscore. To stop - this smart behaviour, add "(ess-toggle-underscore nil)" to your - .emacs after ess-site has been loaded; - ess-dump-filename-template-proto (new name!) now can be customized - successfully (for S language dialects); Support for Imenu has been - improved; set ess-imenu-use-S to non-nil to get an "Imenu-S" item - on your menubar; ess-help: Now using nice underlines (instead of - `nuke-* ^H_') - - * ESS[R]: After (require 'essa-r), `M-x ess-r-var' allows to load - numbers from any Emacs buffer into an existing *R* process; `M-x - ess-rdired' gives a "directory editor" of R objects; fixed - ess-retr-lastvalue-command, i.e. .Last.value bug (thanks to David - Brahm) - - * ESS: Support for creating new window frames has been added to ESS. - Inferior ESS processes can be created in dedicated frames by - setting inferior-ess-own-frame to t. ESS help buffers can also - open in new frames; see the documentation for ess-help-own-frame - for details. (Thanks to Kevin Rodgers for contributing code.) - - Changes/New Features in 5.1.24: - * The version number is now correct even inside ESS/Emacs - - Changes/New Features in 5.1.23: - * Minor more Makefile clean up. - - Changes/New Features in 5.1.22: - * Besides info documentation, PDF and HTML documentation are also - provided (instead of built using "make") and available on the web - as well; see ESS web page (http://ess.r-project.org/) and StatLib - (http://lib.stat.cmu.edu/general/ESS/doc) - - * Now that info documentation is available, the README.* files are - no longer supported. However, they are still distributed for what - it's worth. - - * ESS is now an XEmacs package! See XEmacs Installation HOWTO - (http://www.xemacs.org/Install/index.html) for details - (specifically, items 10-15). - - * ESS[SAS]: more user-friendly enhancements for remote SAS batch - jobs with Kermit file transfers (LOG and OUTPUT function key - features now supported). Multiple shells now supported so you can - run SAS on different computers from different buffers by setting - the buffer-local variable ess-sas-shell-buffer to unique buffer - names. - - * Major re-vamping of Makefile/Makeconf. - - Changes/New Features in 5.1.21: - * ESS[SAS]: info documentation now available!, see ESS->Help for - SAS; `F12' opens GSASFILE nearest point for viewing either within - emacs, when available, or via an external viewer; more syntax - highlighting keywords; more enhancements for remote SAS batch jobs - with Kermit; new framework for remote SAS interactive jobs, see - ess-remote - - * ESS[S]: info documentation now available!, see ESS->Help for the S - family - - * Makefile: tag now independent of rel; info files made by - doc/Makefile and installed in new info sub-directory - - Changes/New Features in 5.1.20: - * New `options()$STERM' in the S dialects (S, S-Plus, R). The S - program can determine the environment in which it is currently - running. ESS sets the option to `iESS' or `ddeESS' when it starts - an S language process. We recommend other specific values for S - language processes that ESS does not start. - - * New `ess-mouse-me' function, assigned to S-mouse-3 by default. - User may click on a word or region and then choose from the menu - to display the item, or a summary, or a plot, etc. This feature - is still under development. - - * GNU Emacs 21.1 is now supported (fixed for S dialects, SAS & BUGS), - (some from Stephen Eglen). - - * XEmacs 21.x is now supported (fixed w32-using-nt bug) - - * XEmacs on Win (NT) is better supported. - - * Workaround for bug in Sqpe+6 (S-PLUS 6 for Win). - - * should now work even when imenu is not available (for old - XEmacsen). - - * ESS[SAS]: XEmacs-Imenu fix; `C-TAB' is globalized along with your - function-key definitions, if specified; you can specify your SAS - library definitions outside of autoexec.sas for ess-sas-data-view - with SAS code placed in the variable ess-sas-data-view-libname, - also the dataset name is defaulted to the nearest permanent dataset - to point; Speedbar support now works for permanent datasets, please - ignore first./last.; new font-locking is now the default with more - improvements for font-locking PROCs, macro statements, * ; and %* ; - comments; you can toggle sas-log-mode with `F10' which will - font-lock your .log (if it isn't too big); submit remote .sas - files accessed with ange-ftp, EFS or Tramp (Kermit is - experimental) by setting ess-sas-submit-method to 'sh; - ess-sas-submit-command and ess-sas-submit-command-options are - buffer-local so you can have local file variable sections at the - end of your .sas files to request different executables or specify - special options and the local file variables are re-read at submit - instead of only at file open so that if you make a change it is - picked up immediately; + * several internal code cleanups. - * ESS[BUGS]: font-lock with `in' fixed. + * ESS[R]: An experimental version of a new command `Rgui' on MS + Windows to send lines directly from emacs to `Rgui' is + available in file `lisp/essd-rgui.el'. Preliminary + documentation is in file `doc/rgui-doc.txt'. + + Changes/New Features in 5.3.6: + * ESS: for XEmacs, using "gnuclient" (without a "-q") works for + things like fix() after M-x gnuserv-start has been done. + + * ESS[R]: M-x R-newest should now work in more situations on MS + Windows, e.g., when R has been installed in a non-default + "ProgramFiles" directory tree. In these cases, there's no + need to specify the name (and full path) of the R program + anymore. - * for STATA: font-lock bug fixed. + * ESS[R]: For XEmacs, startup (with new tooltip code) works + again. + + Changes/New Features in 5.3.5: + * ESS[R] a new defun is available, `M-x R-newest', which will + start the newest version of R that it can find on your system. + + * ESS[R] add Sven Hartenstein's "R function arguments tips" + functionality, via new file `../lisp/essd-r-args.el'. Note + that this includes an "electric "("" behavior inside `R-mode' + which is _active by default_ and can be customized via + `ess-r-args-electric-paren'; i.e., use `(setq + ess-r-args-electric-paren nil)' to turn it off. Further, + `ess-r-args-show-as' allows to switch to the "tooltip" mode. + + * ESS: functions `ess-get-pdf-viewer' and *-ps-viewer; built on + new customizable variables `ess-pdf-viewer-pref' and + `ess-ps-viewer-pref'; currently used in `ess-swv-PDF' and + `*-PS'. + + * ESS[R] Improved `ess-swv-PDF' to run pdf viewer only if + pdflatex was ok + + * ESS[R] Improved `ess-swv-weave' to start R automatically if + none is running. + + * ESS: Do no longer ask _which_ ESS process to use if there is + only one. + + Changes/New Features in 5.3.4: + * ESS[R] now better work with options(error=recover); and the + new default of CHM help files on windows. + + * ESS[R] some more cleanup in the "sweave" functions + + * miscellaneous fixes + + Changes/New Features in 5.3.3: + * ESS[S] fix buglet (5.3.2 only) which left command prompt in + "execute buffer" and hence help files. + + * new customizable variable `ess-display-buffer-reuse-frames' + set to true (which changes default behavior) such that + execution or help *frames* are reused. + + Changes/New Features in 5.3.2: + * Classic BUGS now supported by `(require 'essd-bugs)' with + ESS[BUGS] and JAGS by `(require 'essd-jags)' with + ESS[JAGS]. But, only one of them can be used at a time + since they don't play nice together. Also, `C-c C-c' + is now bound to the function `ess-bugs-next-action' + (`F12' has been retired). And finally, note that + `essl-bug.el' is deprecated and the replacement is + `essl-bugs.el'. + + * ESS[R] Improved some of the "Sweave-make" functions (yet + scarcely documented) in `ess-swv.el'. + + * ESS[S] No longer mess with .Last.value (nor in other + "languages"). + + Changes/New Features in 5.3.1: + * See the docs for 2 ways to install ESS for XEmacs + 1. by uncommenting the XEmacs part of Section 1 + of `Makeconf' and performing `make install' + + 2. by unpacking either `ess-5.3.1.tgz' or + `ess-5.3.1.zip' into + `PREFIX/lib/xemacs/site-packages' on unix or + `PREFIX\XEmacs\site-packages' on windows + + * ESS[R]: fixed bugs so that Rterm.exe can be found by XEmacs + + * ESS[S]: `ess-toggle-S-assign-key' is slightly changed; in + particular, the default `ess-assign-key' is now `C-x ='. + + * ESS[R]: `M-x R-site-search' is a new (slightly experimental) + utility similar to R's `RSiteSearch(..)' but with the + advantage of using Emacs' preferred browser, see + `browse-url-browser-function' + + Changes/New Features in 5.3.0: + * ESS[BUGS]: sanely re-format statistical output, `.bog', from + scientific notation to numbers rounded with 4 decimal places + with `M-x ess-bugs-sci-round-to-4-dp'. + + * The keys for navigating among section headings in help buffers + worked, but only for one language per session; they should + now work for multiple languages. (They were also broken on + Windows machines.) + + * ESS[S] long standing buglets in the internal logic for loading + lisp code on Windows. Particularly fixed behavior in help + mode with S-plus GUI. + + * New variable, `ess-use-inferior-program-name-in-buffer-name', + which enables using the executable name instead of the + dialect name for R. Feature request. + + * ESS[S] `ess-execute-screen-options' now also works correctly + when there is more than one window *side-by-side* in the same + frame and runs in the correct buffer also when there is more + than one S buffer. + + * iESS[S] new functions `ess-eval-paragraph-and-step' and + `ess-eval-function-or-paragraph-and-step' are bound to keys + `C-c C-p' and `C-c C-c' respectively and to the menu in + ESS-mode; also bound in the help mode (for evaluating + examples). + + * ESS[S] new function `ess-toggle-S-assign-key' allows to + assign the " <- " insertion to an arbitrary key. + + + Changes/New Features in 5.2.12: + * ESS[SAS]: `M-;' fixed, but the XEmacs function `comment-dwim' + may be broken, if so, use `M-x comment-region' and `M-x + uncomment-region' instead; only valid PROCs are fontified + which is very helpful finding syntax errors (currently + supported: BASE, ETS, FSP, GRAPH, IML, INSIGHT and STAT); the + "feature" where `F'-keys take you to an empty buffer when the + requested destination is a file that does not exist has been + fixed, now the request results in a no-op. Further, sas-mode + now also works in simple terminals. + + * Rterm/Cygwin combination works under Microsoft Windows. + + * ESS[R]: internal calls use baseenv() instead of NULL and + define 'baseenv' where needed. + + * New experimental support for installing ESS. See the file + `lisp/ess-install.el'. + + Changes/New Features in 5.2.11: + * ESS Info entry and `dir' handled more effectively for GNU + Emacs users + + * ESS[SAS]: temporary files created for batch submission of a + region are now named based on the current file; see + `ess-sas-file-root' for details; all `lag' and `dif' + functions now fontified correctly + + * iESS[SAS]: fixed a few nagging bugs, however, still does not + appear to work at this time; please let us know if you have + any ideas. + + * ESS[S]: Support for running other versions of Splus has been + added for unix. Two new variables, `ess-s-versions' and + `ess-s-versions-list', are used to tell ESS what other + versions of Splus you would like to run. + + Changes/New Features in 5.2.10: + * ESS[R]: ess-r-versions can no longer be customized (since the + customization was not taking effect unless customizations + were loaded before ESS). Its value has been changed so that + it will also find R executables beginning "R-devel" and + "R-patched". If you wish to change this variable, it must be + set in your `.emacs' before ESS is loaded. + + * Installation with GNU Make enhanced: unix and unix-like + operating systems will now be able to install ESS for all + users in either a GNU Emacs site-lisp or an XEmacs package + configuration by editing `lisp/ess-site.el' and `Makeconf' + accordingly, then issuing `make install' + + * ESS[S]: Filename completion (inside strings) now also works in + XEmacs for R and S-plus. + + Changes/New Features in 5.2.9: + * ESS[R] for Windows: the \ directory character bug with + respect to ess-load-file has been eradicated. + + * iESS[SAS]: `C-c C-r' and `C-c C-b' once again work as + intended and documented. + + * ESS[S]: M-x ess-fix-EQ-assign is a bit more agressive. + + * ESS[S]: Imenu now also shows setAs(), etc. + + * ESS[R]: R function pattern enhanced with underlying code such + that `M-C-a' (`ess-beginning-of-function') etc now work for + many more cases, including S4 method definitions. + + * iESS[R]: myOwnhelp(1) no longer wrongly triggers help(1). + + * ESS[R]: Improved detection of bogus help buffers: valid help + buffers containing with the string "no documentation"(e.g. + contour) were being treated as bogus. + + * ESS[R]: In R help buffers, if + `options("help.try.all.packages" = TRUE)' then `?rlm' will + list which packages rlm is defined in. This help buffer is + not bogus, but instead is now relabelled "*help[R](rlm in + packages)*". + + * ESS[STA]: add "//" as comment starting character to + syntax-table. + + Changes/New Features in 5.2.8: + * iESS: [Tab] completes *file* names "inside string" as in + earlier (<= 5.2.3) ESS versions. + + Changes/New Features in 5.2.7: + * If you use Custom to change the variable ess-toolbar-items, + the new toolbar is used in all subsequent ESS buffers. + + * ESS[SAS]: new feature: if ess-sas-log-max >0 and your .log + grows to more than ess-sas-log-max bytes, just the first + ess-sas-log-max bytes are refreshed; this is helpful when + your .sas program generates lots of error messages and gets + too big for emacs to display + + * ESS[R/S]: `M-;' in R/S editing modes will now indent with + either one or two hashes depending on context. + + * ESS[R]: David Whiting's Sweave extensions (to 'noweb') are + now available (from ess-swv.el loaded by default). + + Changes/New Features in 5.2.6: + * Removed non-ASCII characters in a few files. + + * ESS[R]: now works better when UTF-8 locale is active; in + particular, you get correct directional quotes in R's startup + message for R-devel (unstable development version of R + 2.1.0) when using environment variables LANGUAGE=en@quot + LC_ALL=en_US.UTF-8 + + * ESS[SAS]: toggling of .log mode improved (`F10'); toggling of + .lst mode now also available (`C-F10'); killing all buffers + associated with .sas program no longer bound to `C-F10' since + its a bit overzealous. + + * S-Plus 7 for Windows is now recognized. + + * ESS[S] (incl. R): in auto-fill mode, strings are not wrapped + anymore. + + * ESS[S] (incl. R): font-lock now correctly differs between R + and S, e.g., for "_"; both now fontify warning(.) and S does + terminate() additionally. + + * Support for `bell' aka `beep' aka `ding' aka `alarm' in all + inferior modes: When \a is output "to the the console" at the + beginning of a line, the bell is rung. + + Changes/New Features in 5.2.5: + * ESS[R]: `C-c C-q' or `Quit S' from the menu now should work + (again and less klunkily) and do not append `-exited' to the + buffer name. Further, the behavior of `(ess-cleanup)', + called from ess-quit, now depends on the new customizable + variable `ess-S-quit-kill-buffers-p' which defaults to `nil'. + Consequently, the question _"Delete all buffers associated + with ..?"_ will not be asked anymore by default. + + * ESS[SAS] - ess-ebcdic-to-ascii-search-and-replace will now + work with the `recode' application as well which is available + on many platforms + + * ESS[S] (incl. R): Name completion for slots of S4 objects now + works! + + Changes/New Features in 5.2.4: + * The documentation now includes an overview of how to use the + emacs TAGS facility for S functions. (The distribution also + used to contain a directory `etc/other/Tags' where a ~1990 + version of `etags.c' was distributed; this is no longer + relevant and so has been deleted.) + + * ESS[SAS] - When you are working with EBCDIC files on an ASCII + platform, .log NOTEs may display as gibberish since the EBCDIC + characters are not converted to ASCII prior to their display. + So, the function ess-ebcdic-to-ascii-search-and-replace is + provided for convenience and is bound to `C-F11'. This + function requires the `dd' command (only available on unix or + unix-like platforms). + + * ESS: Completion of object names is now always done + dynamically rather than allowing the option of using a + pre-computed database (by `ess-create-object-name-db') since + modern computers seem fast enough for dynamic completion. + (We expect few users, if any, have been using the + pre-computed database method.) + + * ESS: object completion in iESS buffers running on Windows was + very slow (for GNU Emacs, but not XEmacs) and has now been + fixed. Further, it was more or less broken for all versions + of S-plus 6.x, and has been fixed to work everywhere but with + the Windows' GUI of S-plus. The list of objects now shows + unique names also when an object appears more than once in + the search path. + + * ESS[R]: Completion of object names now also includes those + starting with ".". + + Changes/New Features in 5.2.3: + * ESS: When new inferior ESS processes are created, by default + they will replace the current buffer (this restores behavior + from pre 5.2.0). If you wish new ESS processes to start in + another window of the current frame, set + inferior-ess-same-window to nil. + + * New variables inferior-Splus-args and inferior-R-args provide + a way to pass command line arguments to starting S and R + processes. + + Changes/New Features in 5.2.2: + * bug-fixes for 5.2.1 (require 'executable), html docs, etc. + + * ess-lisp-directory/../doc/info added to Info-directory-list + if ess-info not found by info + + * ESS[R]: If you have other versions of R on your exec-path, + such as "R-1.8.1" with Unix or "rw1081" with Windows, ESS + will find them and create appropriate functions, such as `M-x + R-1.8.1' or `M-x rw1081', for calling them. By default only + Unix programs beginning "R-1" and "R-2" and Windows programs + parallel to the version of R in your exec-path will be found, + but see ess-r-versions and ess-rterm-versions for ways to + find other versions of R. + + * ESS[R]: Other versions of R, such as "R-1.8.1" on Unix and + "rw1081" on Windows, are added to the "ESS / Start Process / + Other" menu. + + * ESS[S]: If you have other versions of S-Plus on your Windows + computer, such as S-Plus 6.1 or S-Plus 4.5, ESS will find + them and create appropriate functions, such as `M-x splus61', + for calling the console version (Sqpe) inside an emacs + buffer. By default only programs installed in the default + location will be found, but see ess-SHOME-versions for ways + to find other versions of S-Plus. + + * ESS[S]: Other versions of Sqpe on Windows, such as "splus61", + are added to the "ESS / Start Process / Other" menu. + + * ESS[R]: (bug fix) ess-quit (bound to `C-c C-q') should now + quit the inferior R process, when issued from either the + inferior buffer, or from a .R buffer. + + Changes/New Features in 5.2.1: + * ESS[S] (R and S-plus): now have toolbar support with icons to + evaluate code in the inferior process or to switch there. + This code is experimental and likely to change as XEmacs/Emacs + issues get resolved. The toolbar should be enabled if your + Emacs displays images, but can be disabled with the variable + ess-use-toolbar. Thanks to David Smith from Insightful for + the S-plus logo. + + * ESS[SAS]: ess-sas-graph-view (`F12') enhanced; you can specify + external file viewers for each graphics file type via the + alist ess-sas-graph-view-viewer-alist; also .jpg/.gif are now + handled by image-mode on XEmacs, if available, otherwise by + graphics primitives as before + + Changes/New Features in 5.2.0: + * ESS[BUGS]: new info documentation! now supports interactive + processing thanks to Aki Vehtari (mailto:Aki.Vehtari@hut.fi); + new architecture-independent unix support as well as support + for BUGS v. 0.5 + + * ESS[SAS]: convert .log to .sas with ess-sas-transcript; info + documentation improved; Local Variable bug fixes; SAS/IML + statements/functions now highlighted; files edited remotely + by ange-ftp/EFS/tramp are recognized and pressing SUBMIT + opens a buffer on the remote host via the local variable + ess-sas-shell-buffer-remote-init which defaults to "ssh"; + changed the definition of the variable + ess-sas-edit-keys-toggle to boolean rather than 0/1; added + the function ess-electric-run-semicolon which automatically + reverse indents lines containing only "run;"; `C-F1' creates + MS RTF portrait from the current buffer; `C-F2' creates MS + RTF landscape from the current buffer; `C-F9' opens a SAS + DATASET with PROC INSIGHT rather than PROC FSVIEW; "inferior" + aliases for SAS batch: `C-c C-r' for submit region, `C-c + C-b' for submit buffer, `C-c C-x' for goto .log; `C-c C-y' + for goto .lst + + * ESS[S]: Pressing underscore ("_") once inserts " <- " (as + before); pressing underscore twice inserts a literal + underscore. To stop this smart behaviour, add + "(ess-toggle-underscore nil)" to your .emacs after ess-site + has been loaded; ess-dump-filename-template-proto (new name!) + now can be customized successfully (for S language dialects); + Support for Imenu has been improved; set ess-imenu-use-S to + non-nil to get an "Imenu-S" item on your menubar; ess-help: + Now using nice underlines (instead of `nuke-* ^H_') + + * ESS[R]: After (require 'essa-r), `M-x ess-r-var' allows to + load numbers from any Emacs buffer into an existing *R* + process; `M-x ess-rdired' gives a "directory editor" of R + objects; fixed ess-retr-lastvalue-command, i.e. .Last.value + bug (thanks to David Brahm) + + * ESS: Support for creating new window frames has been added to + ESS. Inferior ESS processes can be created in dedicated + frames by setting inferior-ess-own-frame to t. ESS help + buffers can also open in new frames; see the documentation + for ess-help-own-frame for details. (Thanks to Kevin Rodgers + for contributing code.) + + Changes/New Features in 5.1.24: + * The version number is now correct even inside ESS/Emacs + + Changes/New Features in 5.1.23: + * Minor more Makefile clean up. + + Changes/New Features in 5.1.22: + * Besides info documentation, PDF and HTML documentation are + also provided (instead of built using "make") and available + on the web as well; see ESS web page + (http://ess.r-project.org/) and StatLib + (http://lib.stat.cmu.edu/general/ESS/doc) + + * Now that info documentation is available, the README.* files + are no longer supported. However, they are still distributed + for what it's worth. + + * ESS is now an XEmacs package! See XEmacs Installation HOWTO + (http://www.xemacs.org/Install/index.html) for details + (specifically, items 10-15). + + * ESS[SAS]: more user-friendly enhancements for remote SAS + batch jobs with Kermit file transfers (LOG and OUTPUT + function key features now supported). Multiple shells now + supported so you can run SAS on different computers from + different buffers by setting the buffer-local variable + ess-sas-shell-buffer to unique buffer names. + + * Major re-vamping of Makefile/Makeconf. + + Changes/New Features in 5.1.21: + * ESS[SAS]: info documentation now available!, see ESS->Help + for SAS; `F12' opens GSASFILE nearest point for viewing + either within emacs, when available, or via an external + viewer; more syntax highlighting keywords; more enhancements + for remote SAS batch jobs with Kermit; new framework for + remote SAS interactive jobs, see ess-remote + + * ESS[S]: info documentation now available!, see ESS->Help for + the S family + + * Makefile: tag now independent of rel; info files made by + doc/Makefile and installed in new info sub-directory + + Changes/New Features in 5.1.20: + * New `options()$STERM' in the S dialects (S, S-Plus, R). The + S program can determine the environment in which it is + currently running. ESS sets the option to `iESS' or `ddeESS' + when it starts an S language process. We recommend other + specific values for S language processes that ESS does not + start. + + * New `ess-mouse-me' function, assigned to S-mouse-3 by default. + User may click on a word or region and then choose from the + menu to display the item, or a summary, or a plot, etc. This + feature is still under development. + + * GNU Emacs 21.1 is now supported (fixed for S dialects, SAS & + BUGS), (some from Stephen Eglen). + + * XEmacs 21.x is now supported (fixed w32-using-nt bug) + + * XEmacs on Win (NT) is better supported. + + * Workaround for bug in Sqpe+6 (S-PLUS 6 for Win). + + * should now work even when imenu is not available (for old + XEmacsen). + + * ESS[SAS]: XEmacs-Imenu fix; `C-TAB' is globalized along with + your function-key definitions, if specified; you can specify + your SAS library definitions outside of autoexec.sas for + ess-sas-data-view with SAS code placed in the variable + ess-sas-data-view-libname, also the dataset name is defaulted + to the nearest permanent dataset to point; Speedbar support + now works for permanent datasets, please ignore first./last.; + new font-locking is now the default with more improvements + for font-locking PROCs, macro statements, * ; and %* ; + comments; you can toggle sas-log-mode with `F10' which will + font-lock your .log (if it isn't too big); submit remote .sas + files accessed with ange-ftp, EFS or Tramp (Kermit is + experimental) by setting ess-sas-submit-method to 'sh; + ess-sas-submit-command and ess-sas-submit-command-options are + buffer-local so you can have local file variable sections at + the end of your .sas files to request different executables + or specify special options and the local file variables are + re-read at submit instead of only at file open so that if you + make a change it is picked up immediately; + + * ESS[BUGS]: font-lock with `in' fixed. + + * for STATA: font-lock bug fixed. - * for Rd mode: `C-c C-v' and `switch-process' in menu. further, - `C-c C-f' prefix (Rd-font) for inserting or surrounding a word by - things such as \code{.}, \code{\link{.}}, \emph{.} etc. + * for Rd mode: `C-c C-v' and `switch-process' in menu. + further, `C-c C-f' prefix (Rd-font) for inserting or + surrounding a word by things such as \code{.}, + \code{\link{.}}, \emph{.} etc. - * new functions (ess-directory-function) and (ess-narrow-to-defun) - ess-directory <-> default-directory logic (Jeff Mincy). + * new functions (ess-directory-function) and + (ess-narrow-to-defun) ess-directory <-> default-directory + logic (Jeff Mincy). - * Re-organized Makefile and fixed a few bugs. + * Re-organized Makefile and fixed a few bugs. - Changes/New Features in 5.1.19: - * S+6 now supported (Tony Rossini (Unix) and Rich Heiberger - (Windows)) + Changes/New Features in 5.1.19: + * S+6 now supported (Tony Rossini (Unix) and Rich Heiberger + (Windows)) - * New BUGS support through ESS[BUGS] mode (Rodney Sparapani) - Templates assist you in writing .bug and .cmd code (.cmd and .log - are replaced by .bmd and .bog to avoid emacs extension collisions). - Substitution" parameters facilitate "automagic" generation of - data...in" and "init...in" filenames, "const N=" from your data - file and "monitor()/stats()" commands. Activated by pressing - `F12'. + * New BUGS support through ESS[BUGS] mode (Rodney Sparapani) + Templates assist you in writing .bug and .cmd code (.cmd and + .log are replaced by .bmd and .bog to avoid emacs extension + collisions). Substitution" parameters facilitate "automagic" + generation of data...in" and "init...in" filenames, "const + N=" from your data file and "monitor()/stats()" commands. + Activated by pressing `F12'. - * Fixes for `ess-smart-underscore' SAS breakage (Rich Heiberger) + * Fixes for `ess-smart-underscore' SAS breakage (Rich Heiberger) - * You can change between PC and Unix, local and global SAS - function-key definitions interactively (Rich Heiberger) + * You can change between PC and Unix, local and global SAS + function-key definitions interactively (Rich Heiberger) - * `C-Submit' a highlighted region to SAS batch (Rodney Sparapani) + * `C-Submit' a highlighted region to SAS batch (Rodney + Sparapani) - * New and improved SAS syntax highlighting (Rodney Sparapani) To get - the new functionality, set ess-sas-run-make-regexp to nil. Also - available in .log files via `F10'. + * New and improved SAS syntax highlighting (Rodney Sparapani) + To get the new functionality, set ess-sas-run-make-regexp to + nil. Also available in .log files via `F10'. - * Open a permanent SAS dataset for viewing via `F9' (Rodney - Sparapani) You must have the library defined in autoexec.sas for - it to work. + * Open a permanent SAS dataset for viewing via `F9' (Rodney + Sparapani) You must have the library defined in autoexec.sas + for it to work. - * User-friendly defaults for `sas-program', - `ess-sas-batch-pre-command' and `ess-sas-batch-post-command' as - well Customize support for these and other ESS[SAS] variables - (Rodney Sparapani) + * User-friendly defaults for `sas-program', + `ess-sas-batch-pre-command' and `ess-sas-batch-post-command' + as well Customize support for these and other ESS[SAS] + variables (Rodney Sparapani) - * `ess-sas-suffix-2' now defaults to .dat via `F11' (Rodney - Sparapani) + * `ess-sas-suffix-2' now defaults to .dat via `F11' (Rodney + Sparapani) - * Emacs/XEmacs, Unix/Windows issues collectively handled in - ess-emcs.el + * Emacs/XEmacs, Unix/Windows issues collectively handled in + ess-emcs.el - * defadvice solves problem of missing *ESS* (thanks to Jeff Mincy) + * defadvice solves problem of missing *ESS* (thanks to Jeff + Mincy) - * Improved manual a bit by including things that were only in - `README'. + * Improved manual a bit by including things that were only in + `README'. - Changes/New Features in 5.1.18: - * New `ess-smart-underscore' function, now assigned to "_" by - default. Inserts `ess-S-assign' (customizable " <- "), unless - inside string and comments where plain "_" is used instead. (MM) + Changes/New Features in 5.1.18: + * New `ess-smart-underscore' function, now assigned to "_" by + default. Inserts `ess-S-assign' (customizable " <- "), + unless inside string and comments where plain "_" is used + instead. (MM) - * Fixes for longstanding interactive SAS breakage (RMH) + * Fixes for longstanding interactive SAS breakage (RMH) - Changes/New Features in 5.1.17: - * Documentation for Windows Installation (Rich Heiberger) + Changes/New Features in 5.1.17: + * Documentation for Windows Installation (Rich Heiberger) - * removal of ess-vars, finalization of customize support (in the - sense that there is no more use of ess-vars, but that we need to - fix ess-cust) (AJ Rossini) + * removal of ess-vars, finalization of customize support (in the + sense that there is no more use of ess-vars, but that we need + to fix ess-cust) (AJ Rossini) - * Many small (and large) fixes/contributions (MMaechler) + * Many small (and large) fixes/contributions (MMaechler) - * addition of the "S-equal" variable and provide `M-x - ess-add-MM-keys' a way to remap "_" to `ess-S-assign', typically " - <- ", but customizable. (MMaechler) + * addition of the "S-equal" variable and provide `M-x + ess-add-MM-keys' a way to remap "_" to `ess-S-assign', + typically " <- ", but customizable. (MMaechler) - Changes/New Features in 5.1.16: - * BUG FIXES + Changes/New Features in 5.1.16: + * BUG FIXES - * Better SAS support + * Better SAS support - Changes/New Features in 5.1.15: - * BUG FIXES + Changes/New Features in 5.1.15: + * BUG FIXES - Changes/New Features in 5.1.14: - * Yet more fixes to SAS mode, (Rich Heiberger and Rodney Sparapani) + Changes/New Features in 5.1.14: + * Yet more fixes to SAS mode, (Rich Heiberger and Rodney + Sparapani) - * Customize support (for most Emacsen which support it) (AJRossini) + * Customize support (for most Emacsen which support it) + (AJRossini) - * ARC and ViSta support out of the box, and fixes for XLispStat - (AJRossini) + * ARC and ViSta support out of the box, and fixes for XLispStat + (AJRossini) - Changes/New Features in 5.1.13: - * Version numbering finally all depending on the ./VERSION file, - thanks to Martin Maechler. + Changes/New Features in 5.1.13: + * Version numbering finally all depending on the ./VERSION file, + thanks to Martin Maechler. - * Yet more fixes to SAS mode, thanks to Rich Heiberger. + * Yet more fixes to SAS mode, thanks to Rich Heiberger. - Changes/New Features in 5.1.12: - * Splus 5.1 stabilized, thanks to Martin Maechler, Bill Venables, - Chuck Taylor, and others. + Changes/New Features in 5.1.12: + * Splus 5.1 stabilized, thanks to Martin Maechler, Bill + Venables, Chuck Taylor, and others. - * More fixes to SAS mode, thanks to Rodney Sparapani and Rich - Heiberger. + * More fixes to SAS mode, thanks to Rodney Sparapani and Rich + Heiberger. - Changes/New Features in 5.1.11: - * More fixes to Stata mode, thanks to Brendan Halpin - (mailto:brendan@essex.ac.uk). + Changes/New Features in 5.1.11: + * More fixes to Stata mode, thanks to Brendan Halpin + (mailto:brendan@essex.ac.uk). - * fixed bugs in ESS-elsewhere, thanks to many testers + * fixed bugs in ESS-elsewhere, thanks to many testers - * README.SPLUS4WIN has DETAILED instructions for S-PLUS 2000, thanks - to David Brahm (mailto:brahm@alum.mit.edu). + * README.SPLUS4WIN has DETAILED instructions for S-PLUS 2000, + thanks to David Brahm (mailto:brahm@alum.mit.edu). - * Fixes to SAS mode, thanks to Rodney Sparapani + * Fixes to SAS mode, thanks to Rodney Sparapani - Changes/New Features in 5.1.10: - * More fixes to Stata mode + Changes/New Features in 5.1.10: + * More fixes to Stata mode - * primitive generic version of ESS-elsewhere + * primitive generic version of ESS-elsewhere - * Small fixes to SAS/Stata. + * Small fixes to SAS/Stata. - Changes/New Features in 5.1.9: - * Stata mode works + Changes/New Features in 5.1.9: + * Stata mode works - * Literate Data Analysis using Noweb works + * Literate Data Analysis using Noweb works - Changes/New Features in 5.1.8: - * Bug fixes + Changes/New Features in 5.1.8: + * Bug fixes - * R documentation mode defaults changed + * R documentation mode defaults changed + + Changes/New Features in 5.1.2: + * able to use inferior iESS mode to communicate directly with a + running S-Plus 4.x process using the Microsoft DDE protocol. + We use the familiar (from Unix ESS) `C-c C-n' and related key + sequences to send lines from the S-mode file to the inferior + S process. We continue to edit S input files in ESS[S] mode + and transcripts of previous S sessions in ESS Transcript + mode. All three modes know the S language, syntax, and + indentation patterns and provide the syntactic highlighting + that eases the programming tasks. - Changes/New Features in 5.1.2: - * able to use inferior iESS mode to communicate directly with a - running S-Plus 4.x process using the Microsoft DDE protocol. We - use the familiar (from Unix ESS) `C-c C-n' and related key - sequences to send lines from the S-mode file to the inferior S - process. We continue to edit S input files in ESS[S] mode and - transcripts of previous S sessions in ESS Transcript mode. All - three modes know the S language, syntax, and indentation patterns - and provide the syntactic highlighting that eases the programming - tasks.  File: ess.info, Node: Credits, Next: Latest version, Prev: New features, Up: Introduction @@ -903,6 +1201,10 @@ for Unix and Windows. * Stephen Eglen (mailto:stephen@gnu.org) + * Sebastian P. Luque (mailto:spluque@gmail.com) + + * Henning Redestig (mailto:henning.red@googlemail.com) +  File: ess.info, Node: Latest version, Next: Manual, Prev: Credits, Up: Introduction @@ -949,7 +1251,7 @@ File: ess.info, Node: Manual, Prev: Latest version, Up: Introduction 1.5 How to read this manual =========================== -If you need to install ESS, read *Note Installation:: for details on +If you need to install ESS, read *note Installation:: for details on what needs to be done before proceeding to the next chapter. In this manual we use the standard notation for describing the @@ -987,7 +1289,7 @@ from the flexible nature of lisp. In particular, many aspects of ESS behaviour can be changed by suitable customization of lisp variables. This manual mentions some of the most frequent variables. A full list of them however is available by using the Custom facility within emacs. -(Type `M-x customize-group RET ess RET' to get started.) *Note +(Type `M-x customize-group RET ess RET' to get started.) *note Customization:: provides details of common user variables you can change to customize ESS to your taste, but it is recommended that you defer this section until you are more familiar with ESS. @@ -1013,54 +1315,89 @@ File: ess.info, Node: Unix installation, Next: Microsoft Windows installation, 2.1 Unix installation ===================== - 1. `cd' to a directory where you keep emacs lisp files, or create a - new directory (for example, `$HOME/emacs') to hold the - distribution. This directory will be referred to below as "the - ESS distribution directory". - - _Note for XEmacs packages:_ ESS is no longer available as an - XEmacs package. But, you can still install ESS into the XEmacs - package system by choosing - `ESSDIR'=`PREFIX/lib/xemacs/site-packages'. ESS requires that the - XEmacs sumo tarball (all XEmacs packages combined) also be - installed. For information on installing XEmacs packages, follow - this link: Quickstart Package Guide - (http://www.xemacs.org/Documentation/packageGuide.html). - - 2. Retrieve the latest version from ESS downloads area - (http://ess.r-project.org/downloads/ess) to `ESSDIR'. - - 3. Extract the files from the disribution. - If you are using GNU tar, `tar zxf ess-VERSION.tgz'. - Otherwise, `gunzip < ess-VERSION.tgz | tar xf -', - - The `tar' command will create the subdirectory `ess-VERSION' and - install the files there. - - 4. Edit the file `ESSDIR/ess-VERSION/lisp/ess-site.el' as explained - in the comments section of that file. - - 5. If you are using GNU Emacs add the line - (load "ESSDIR/ess-VERSION/lisp/ess-site") - to `$HOME/.emacs'. For XEmacs, if you followed the XEmacs package - system installation advice, add the line +For a Unix or Unix-like installation, please follow the next steps. +Retrieve the latest tgz file (`ess-VERSION.tgz') from ESS downloads +area (http://ess.r-project.org/index.php?Section=download). + + _GNU Emacs Simple Instructions:_ for recent versions of Emacs (22.x +or higher) and ESS, the installation process is simple. + + 1. Extract all the files from `ess-VERSION.tgz' when you are in the + current working directory of `/usr/local/share/emacs/site-lisp' + which exists for packages like ESS (and for Mac OS X create a link + to it from the directory + `/Applications/Emacs.app/Contents/Resources/site-lisp'): + %prompt gtar zxf ess-VERSION.tgz # for GNU tar + %prompt gunzip < ess-VERSION.tgz | tar xf - # for Unix tar + + 2. Then, add the line + (require 'ess-site) + to `~/.emacs' and restart Emacs. + + 3. If you see a buffer named `*ESS*', then the simple instructions + were most likely successful. If not, then read further. + + 4. It could be that you have an older version of Emacs, some other + problem with your installation or you are not a sysadmin. + Whatever the case, you may need to edit `ess-site.el' manually. + If that is the case, then you should create a directory just for + ESS like `~/ess' or `/usr/local/ess' and unpack ESS there. That + way, your changes to `ess-site.el' will not be lost if you update + Emacs later. + + 5. Replace the line above with + (load "~/ess/ess-VERSION/lisp/ess-site") + in `~/.emacs' and restart Emacs. + + 6. If you see a buffer named `*ESS*', then the manual instructions + were most likely successful. If not, then send a query to + explicitly describing your problem and + your environment including operating system, Emacs version, ESS + version, etc. + + _XEmacs Simple Instructions:_ for recent versions of XEmacs (21.x or +higher) and ESS, the installation process is simple. + + 1. Extract all the files from `ess-VERSION.tgz' when you are in the + current working directory of + `/usr/local/LOCATION/xemacs/site-packages' which exists for + packages like ESS where `LOCATION' is `lib' for legacy + installations and `share' now (and for Mac OS X create a link to + it from the directory + `/Applications/XEmacs.app/Contents/Resources/site-lisp'): + %prompt gtar zxf ess-VERSION.tgz # for GNU tar + %prompt gunzip < ess-VERSION.tgz | tar xf - # for Unix tar + + 2. Then, add the line (require 'ess-site) - to `$HOME/.xemacs/init.el'. Otherwise, for XEmacs, add the line - (load "ESSDIR/ess-VERSION/lisp/ess-site") - to `$HOME/.xemacs/init.el'. + to `~/.xemacs/init.el' and restart XEmacs. + + 3. If you see a buffer named `*ESS*', then the simple instructions + were most likely successful. If not, then read further. + + 4. It could be that you have an older version of XEmacs, some other + problem with your installation or you are not a sysadmin. + Whatever the case, you may need to edit `ess-site.el' manually. + If that is the case, then you should create a directory just for + ESS like `~/ess' or `/usr/local/ess' and unpack ESS there. That + way, your changes to `ess-site.el' will not be lost if you update + XEmacs later. + + 5. Replace the line above with + (load "~/ess/ess-VERSION/lisp/ess-site") + in `~/.xemacs/init.el' and restart XEmacs. - 6. That's it! ESS is now ready to use. (The remaining step below is - only for a custom installation.) To edit statistical programs, - just open files with the requisite extensions (`.R' for R, `.sas' - for SAS, `.bug' for BUGS, etc.). To start a statistical process - within emacs, such as R, type `M-x R'. + 6. If you see a buffer named `*ESS*', then the manual instructions + were most likely successful. If not, then send a query to + explicitly describing your problem and + your environment including operating system, XEmacs version, ESS + version, etc. - 7. (OPTIONAL) READ THIS ITEM THOROUGHLY BEFORE STARTING: + 1. (OPTIONAL) COMPILING E-LISP: - If you want to place the compiled files in other locations edit the - `LISPDIR', `INFODIR' and `ETCDIR' entries in Section 1 of - `Makeconf' in the `ESSDIR/ess-VERSION' directory (if you are using - XEmacs, then uncomment the XEmacs subsection in Section 1). + Edit the default locations of `LISPDIR', `INFODIR' and `ETCDIR' in + Section 1 of `Makeconf' (if you are using XEmacs, then edit the + XEmacs subsection in Section 1). You can compile those files by: make all @@ -1076,158 +1413,196 @@ File: ess.info, Node: Microsoft Windows installation, Next: Requirements, Pre ================================== For Microsoft Windows installation, please follow the next steps. +Retrieve the latest zip file (`ess-VERSION.zip') from ESS downloads +area (http://ess.r-project.org/index.php?Section=download). - 1. `cd' to a directory where you keep emacs lisp files, or create a - new directory (for example, `c:\emacs\') to hold the distribution. - This directory will be referred to below as "the ESS distribution - directory". - - _Note for XEmacs packages:_ ESS is no longer available as an XEmacs - package. But, you can still install ESS into the XEmacs package - system by choosing `ESSDIR'=`PREFIX\XEmacs\site-packages'. ESS - requires that the XEmacs sumo tarball (all XEmacs packages - combined) also be installed. For information on installing XEmacs - packages, follow this link: Quickstart Package Guide - (http://www.xemacs.org/Documentation/packageGuide.html). - - 2. Retrieve the latest zip file (`ess-VERSION.zip') from ESS - downloads area (http://ess.r-project.org/downloads/ess) and store - it in the ESS distribution directory. Be aware that http browsers - on Windows frequently change the "." and "-" characters in - filenames to other punctuation. Please change the names back to - their original form. - - 3. Extract all the files from `ess-VERSION.zip' into the ESS - distribution directory as `c:\emacs\ess-VERSION\'. (It is possible - to unpack the zip archive in Windows Explorer by double clicking - on the folder; you should then see a new folder called - `ess-VERSION'. Drag that folder into your ESS distribution - directory.) - - 4. If you are using GNU Emacs add the line - (load "ESSDIR/ess-VERSION/lisp/ess-site") - to `%HOME%/.emacs'. For XEmacs, if you followed the XEmacs - package system installation advice, add the line - (require 'ess-site) - to `%HOME%/.xemacs/init.el'. Otherwise, for XEmacs, add the line - (load "ESSDIR/ess-VERSION/lisp/ess-site") - to `%HOME%/.xemacs/init.el'. _Note:_ Both GNU Emacs and XEmacs - require that the HOME environment variable be set on your system, - otherwise, your initialization file will not be utilized, and - therefore, ESS will not work. - - After saving your initialization file, ESS is now installed. - Start a new emacs and you should be ready to use ESS. For - example, to edit statistical programs, load the files with the - requisite extensions (".sas" for SAS, ".S" or "s" or "q" or "Q" - for S-PLUS, ".r" or ".R" for R, and ".lsp" for XLispStat). One - further step is needed if you wish to run statistical processes, - see below. - - 5. To run statistical processes under ESS, Windows users will need to - make sure that the directories for the software they will be using - is in the PATH environment variable. On Windows 9x, add lines - similar to the following to your `c:\autoexec.bat' file: - path=%PATH%;c:\progra~1\insightful\splus70\cmd - On Windows NT/2000/XP, add the directories to the PATH using the - `My Computer/Control Panel/System/Advanced/Environment Variables' - menu. Note that the directory containing the program is added to - the PATH, not the program itself. One such line is needed for - each software program. Be sure to use the abbreviation `progra~1' - and not the long version with embedded blanks. Use backslashes - "`\'". - - An alternative, for R users, is that rather than adjusting the PATH - variable, you can add the following to your emacs initialization - file (and restart emacs): - (setq inferior-R-program-name "C:/progra~1/R/R-2.2.1/bin/Rterm.exe") - This assumes that you have installed R-2.2.1 in the default - location. Change the path otherwise to point to other locations. - - Windows users who place S-PLUS anywhere other than the default - location will also need to add the following three lines (properly - adjusted for their location) to their `%HOME%/.emacs' or - `%HOME%/.xemacs/init.el' file: - (setq-default inferior-S+6-program-name - "c:/progra~1/Insightful/SPLUS70/cmd/Splus") - (setq-default inferior-Sqpe+6-SHOME-name - "c:/progra~1/Insightful/SPLUS70") - (setq-default inferior-Sqpe+6-program-name - "c:/progra~1/Insightful/SPLUS70/cmd/Sqpe.exe") - The above example uses the default location of S-PLUS in - `c:/progra~1/Insightful'. Please note that ESS considers S-PLUS - 6, 7, and 8 to be variants of S+6. - - These users may also need to modify the emacs variable - `ess-SHOME-versions' to match their installation in order to get - the full set of S-PLUS versions on their machine into the `ESS' - menu. - - To start the S-PLUS [678].x GUI from ESS under emacs: - 1. If you use Cygwin bash as your primary shell, then - M-x S - (or `M-x S+6'). - - 2. If you use the MSDOS prompt window as your primary shell, then - M-x S+6-msdos - You will then be asked for a pathname ("S starting data - directory?"), from which to start the process. The prompt will - propose your current directory as the default. ESS will start the - S-PLUS GUI. There will be slight delay during which emacs is - temporarily frozen. ESS will arrange for communication with the - S-PLUS GUI using the DDE protocol. Send lines or regions from the - emacs buffer containing your S program (for example, `myfile.s') - to the S-PLUS Commands Window with the `C-c C-n' or `C-c C-r' keys. - (If you are still using S-PLUS 4.x or 2000,\ then use `M-x S+4' or - `M-x S+4-msdos'.) - - To start an S-PLUS [678].x session inside an emacs buffer--and - without the S-PLUS GUI: - M-x Sqpe - (or `M-x Sqpe+6'). - This works with both the bash and msdos shells. You will then be - asked for a pathname ("S starting data directory?"), from which to - start the process. The prompt will propose your current directory - as the default. You get Unix-like behavior, in particular the - entire transcript is available for emacs-style search commands. - Send lines or regions from the emacs buffer containing your S - program (for example, `myfile.s') to the *S+6* buffer with the - `C-c C-n' or `C-c C-r' keys. Interactive graphics are available - with Sqpe by using the java library supplied with S-PLUS 6.1 and - newer releases. Enter the commands: - library(winjava) - java.graph() - Graphs can be saved from the `java.graph' device in several - formats, but not PostScript. If you need a PostScript file you - will need to open a separate `postscript' device. (If you are - still using S-PLUS 4.x or 2000, then use `M-x Sqpe+4'.) - - To connect to an already running S-PLUS GUI (started, for example, - from the S-PLUS icon): - M-x S+6-existing - or - M-x S+6-msdos-existing - You will then be asked for a pathname ("S starting data - directory?"), from which to start the process. The prompt will - propose your current directory as the default. ESS will arrange - for communication with the already running S-PLUS GUI using the - DDE protocol. Send lines or regions from the emacs buffer - containing your S program (for example, `myfile.s') to the S-PLUS - Commands Window with the `C-c C-n' or `C-c C-r' keys. (If you are - still using S-PLUS 4.x or 2000, then use `M-x S+4-existing' or - `M-x S+4-msdos-existing'.) - - If you wish to run R, you can start it with: - M-x R + _GNU Emacs Simple Instructions:_ for recent versions of Emacs (22.x +or higher) and ESS, the installation process is simple. - XLispStat can not currently be run with - M-x XLS - Hopefully, this will change. However, you can still edit with - emacs, and cut and paste the results into the XLispStat *Listener* - Window under Microsoft Windows. - - 6. That's it! + 1. Extract all the files from `ess-VERSION.zip' (by double clicking + on it and selecting "Extract all files" which launches the Folders + Extraction Wizard) into the `site-lisp' directory that exists for + packages like ESS. If GNU Emacs was installed in the default + location, then this directory can be found somewhere like + `C:\Program Files\GNU Emacs\emacs-22.x\site-lisp'. + 2. Add the line + (require 'ess-site) + to `~/.emacs' and restart Emacs. + + 3. If you see a buffer named `*ESS*', then the simple instructions + were most likely successful. If not, then read further. + + 4. It could be you have an older version of Emacs or some other + problem with your installation. Either way, you may need to edit + `C:\ess\ess-VERSION\lisp\ess-site.el' manually. If that is the + case, then you should create a directory just for ESS like + `C:\ess' and unpack ESS there. That way, your changes to + `C:\ess\ess-VERSION\lisp\ess-site.el' will not be lost if you + update Emacs later. + + 5. Replace the line above with + (load "C:/ess/ess-VERSION/lisp/ess-site") + in `~/.emacs' and restart Emacs. + + 6. If you see a buffer named `*ESS*', then the manual instructions + were most likely successful. If not, then send a query to + explicitly describing your problem and + your environment including operating system, Emacs version, ESS + version, etc. + + _XEmacs Simple Instructions:_ for recent versions of XEmacs (21.x or +higher), the installation process is much simpler. Hopefully, these +simple instructions will work for you. If not, then more detailed, +manual instructions follow. + + 1. Extract all the files from `ess-VERSION.zip' (by double clicking + on it and selecting "Extract all files" which launches the Folders + Extraction Wizard) into the `site-packages' directory that exists + for packages like ESS. If XEmacs was installed in the default + location, then this directory can be found at `C:\Program + Files\XEmacs\site-packages'. + + 2. XEmacs requires the `HOME' environment variable to be defined. + You can create it by visiting the following dialog: `My + Computer->Control Panel->System->Advanced->Environment Variables' + In the User variables window, press New. And create a variable + named `HOME' with a value something like (you must use forward + slashes `/' rather than backslashes `\') `c:/Documents and + Settings/%USERNAME%/Application Data'. Then press OK for that + window and press OK for the main window. _If you also have GNU + Emacs installed, GNU Emacs will recognize `HOME' and expand `~' + accordingly._ + + 3. Now launch XEmacs and do a `C-x C-f' followed by a `~'. From the + Subdir menu, select Create Directory, and enter `.xemacs' + + 4. Add the line + (require 'ess-site) + to `~/.xemacs/init.el' and restart XEmacs. + + 5. If you see a buffer named `*ESS*', then the simple instructions + were most likely successful. If not, then read further. + + 6. It could be you have an older version of XEmacs or some other + problem with your installation. Either way, you may need to edit + `C:\ess\ess-VERSION\lisp\ess-site.el' manually. If that is the + case, then you should create a directory just for ESS like + `C:\ess' and unpack ESS there. That way, your changes to + `C:\ess\ess-VERSION\lisp\ess-site.el' will not be lost if you + update XEmacs later. + + 7. Replace the line above with + (load "C:/ess/ess-VERSION/lisp/ess-site") + in `~/.xemacs/init.el' and restart XEmacs. + + 8. If you see a buffer named `*ESS*', then the manual instructions + were most likely successful. If not, then send a query to + explicitly describing your problem and + your environment including operating system, XEmacs version, ESS + version, etc. + + Now, you should be ready to use ESS. For example, to edit +statistical programs, load the files with the requisite extensions +(".sas" for SAS, ".S" or "s" or "q" or "Q" for S-PLUS, ".r" or ".R" for +R, and ".lsp" for XLispStat). One further step is needed if you wish to +run statistical processes, see below. + + To run statistical processes under ESS, Windows users will need to +make sure that the directories for the software they will be using is +in the PATH environment variable. + + On Windows NT/2000/XP, add the directories to the PATH using the `My +Computer->Control Panel->System->Advanced->Environment Variables' menu. +Note that the directory containing the program is added to the PATH, +not the program itself. One such line is needed for each software +program. Be sure to use the abbreviation `progra~1' and not the long +version with embedded blanks as this may cause problems. Also, make +sure to use backslashes `\' since Windows requires them. + + An alternative, for R users, is that rather than adjusting the PATH +variable, you can add the following to your emacs initialization file +(and restart emacs): + (setq inferior-R-program-name "c:/progra~1/R/R-2.2.1/bin/Rterm.exe") + This assumes that you have installed R-2.2.1 in the default location. +Change the path otherwise to point to other locations. + + Windows users who place S-PLUS anywhere other than the default +location will also need to add the following three lines (properly +adjusted for their location): + (setq-default inferior-S+6-program-name + "c:/progra~1/Insightful/SPLUS70/cmd/Splus") + (setq-default inferior-Sqpe+6-SHOME-name + "c:/progra~1/Insightful/SPLUS70") + (setq-default inferior-Sqpe+6-program-name + "c:/progra~1/Insightful/SPLUS70/cmd/Sqpe.exe") + The above example uses the default location of S-PLUS in +`c:\progra~1\Insightful'. Please note that ESS considers S-PLUS 6, 7, +and 8 to be variants of S+6. + + These users may also need to modify the emacs variable +`ess-SHOME-versions' to match their installation in order to get the +full set of S-PLUS versions on their machine into the ESS menu. + + To start the S-PLUS [678].x GUI from ESS under emacs: + 1. If you use Cygwin bash as your primary shell, then + M-x S + (or `M-x S+6'). + + 2. If you use the MSDOS prompt window as your primary shell, then + M-x S+6-msdos + You will then be asked for a pathname ("S starting data +directory?"), from which to start the process. The prompt will propose +your current directory as the default. ESS will start the S-PLUS GUI. +There will be slight delay during which emacs is temporarily frozen. +ESS will arrange for communication with the S-PLUS GUI using the DDE +protocol. Send lines or regions from the emacs buffer containing your +S program (for example, `myfile.s') to the S-PLUS Commands Window with +the `C-c C-n' or `C-c C-r' keys. (If you are still using S-PLUS 4.x or +2000,\ then use `M-x S+4' or `M-x S+4-msdos'.) + + To start an S-PLUS [678].x session inside an emacs buffer--and +without the S-PLUS GUI: + M-x Sqpe + (or `M-x Sqpe+6'). + This works with both the bash and msdos shells. You will then be +asked for a pathname ("S starting data directory?"), from which to +start the process. The prompt will propose your current directory as +the default. You get Unix-like behavior, in particular the entire +transcript is available for emacs-style search commands. Send lines or +regions from the emacs buffer containing your S program (for example, +`myfile.s') to the *S+6* buffer with the `C-c C-n' or `C-c C-r' keys. +Interactive graphics are available with Sqpe by using the java library +supplied with S-PLUS 6.1 and newer releases. Enter the commands: + library(winjava) + java.graph() + Graphs can be saved from the `java.graph' device in several formats, +but not PostScript. If you need a PostScript file you will need to +open a separate `postscript' device. (If you are still using S-PLUS +4.x or 2000, then use `M-x Sqpe+4'.) + + To connect to an already running S-PLUS GUI (started, for example, +from the S-PLUS icon): + M-x S+6-existing + or + M-x S+6-msdos-existing + You will then be asked for a pathname ("S starting data +directory?"), from which to start the process. The prompt will propose +your current directory as the default. ESS will arrange for +communication with the already running S-PLUS GUI using the DDE +protocol. Send lines or regions from the emacs buffer containing your +S program (for example, `myfile.s') to the S-PLUS Commands Window with +the `C-c C-n' or `C-c C-r' keys. (If you are still using S-PLUS 4.x or +2000, then use `M-x S+4-existing' or `M-x S+4-msdos-existing'.) + + If you wish to run R, you can start it with: + M-x R + + XLispStat can not currently be run with + M-x XLS + Hopefully, this will change. However, you can still edit with +emacs, and cut and paste the results into the XLispStat *Listener* +Window under Microsoft Windows.  File: ess.info, Node: Requirements, Prev: Microsoft Windows installation, Up: Installation @@ -1235,45 +1610,13 @@ File: ess.info, Node: Requirements, Prev: Microsoft Windows installation, Up: 2.3 Requirements ================ -ESS has been tested with +ESS is most likely to work with current/recent versions of the following +statistical packages: R/S-PLUS, SAS, Stata and JAGS. BUGS, which is +quite old now, is deprecated but it might still work. - * R >=0.49 - - * S-PLUS 3.3-4, 4.5, 2000, 5.0-1, 6.0-2, 7.0, 8.0 - - * S4 - - * SAS >=6.12 - - * BUGS 0.5, 0.6 - - * JAGS 0.9 - - * Stata >=6.0 - - * XLispStat >=3.50 - - on the following platforms - - * GNU Linux (all) - - * Sun Solaris (all) - - * Microsoft Windows 98/NT/2000/XP (R, SPLUS 4.5/2000/6.0-2/7.0/8.0, - SAS, and BUGS 0.6) - - * Apple Mac OS X 10.3-4 (R, JAGS) - - with the following versions of emacs - - * GNU Emacs 20.3-7, 21.1, 21.3-4, 22.1 - - * XEmacs 21.4.0-8, 21.4.9-13(1), 21.4.14-15, 21.4.17-19, 21.5.23 - - ---------- Footnotes ---------- - - (1) require the files.el patch to revert-buffer for the Local -Variables updating problem + ESS supports current/recent versions of GNU Emacs and XEmacs. Most +notably, the GNU Emacs 22 series and XEmacs 21.4.14 or higher +(beta/pre-release versions are NOT SUPPORTED).  File: ess.info, Node: Interactive ESS, Next: Entering commands, Prev: Installation, Up: Top @@ -1625,8 +1968,8 @@ components for that object. Completion is also provided over file names, which is particularly useful when using S functions such as `get()' or `scan()' which require fully expanded file names. Whenever the cursor is within an S string, -pressing `TAB' completes the file name before point, and also expands -any `~' or environment variable references. +pressing `TAB' completes the file name before point. Since ESS 5.11, +it no longer also expands any `~' or environment variable references. If the cursor is not in a string and does not follow a (partial) object name, the key has a third use: it expands history @@ -1760,7 +2103,7 @@ Note that these two commands are analogous to `C-p' and `C-n' but apply to command lines rather than text lines. And just like `C-p' and `C-n', passing a prefix argument to these commands means to move to the ARG'th next (or previous) command. (These commands are also discussed -in *Note Shell History Copying: (emacs)Shell History Copying.) +in *note Shell History Copying: (emacs)Shell History Copying.) There are also two similar commands (not bound to any keys by default) which move to preceding or succeeding commands, but which @@ -1823,7 +2166,7 @@ go). If the current line does not begin with a prompt, an error is signalled. This feature, coupled with the command-based motion commands described above, could be used as a primitive history mechanism. ESS provides a more sophisticated mechanism, however, which -is described in *Note Command History::. +is described in *note Command History::.  File: ess.info, Node: Saving transcripts, Prev: Transcript resubmit, Up: Transcript @@ -1838,7 +2181,7 @@ name of the file, but this is not a problem. You can still use S as usual; just remember to save the file before you quit Emacs with `C-x C-s'. You can make ESS prompt you for a filename in which to save the transcript every time you start S by setting the variable `ess-ask-about-transfile' -to `t'; see *Note Customizing startup::. We recommend you save your +to `t'; see *note Customizing startup::. We recommend you save your transcripts with filenames that end in `.St'. There is a special mode (ESS transcript mode -- *note Transcript Mode::) for editing transcript files which is automatically selected for files with this suffix. @@ -2064,7 +2407,7 @@ process buffer or in a separate buffer, as indicated: Checking::, for more details. * `C-c C-v' (`ess-display-help-on-object') - Pops up a help buffer for an S object or function. See *Note + Pops up a help buffer for an S object or function. See *note Help:: for more details. * `C-c C-q' (`ess-quit') @@ -2154,7 +2497,7 @@ The following commands are also provided in the process buffer: Prompts for an object to be edited in an edit buffer. *Note Editing::. - Other commands available in Inferior S mode are discussed in *Note + Other commands available in Inferior S mode are discussed in *note Shell Mode: (emacs)Shell Mode.  @@ -2289,8 +2632,7 @@ processes (programs). This mode handles: executing process with a single keystroke [RET]. - The ability to request help from the current process for variables - and functions, and to have the results sent into a separate - buffer. + and functions, and to have the results sent into a separate buffer. - completion of object names and file names. @@ -2330,43 +2672,45 @@ wish to always call R with certain arguments, set the variable `inferior-R-args' accordingly. If you have other versions of R or S-Plus available on the system, -ESS is also able to start those versions. How this works depend on -which OS you are using: +ESS is also able to start those versions. How this exactly works +depend on which OS you are using, as described in the following +paragraphs. The general principle, regardless of OS, is that ESS +searches the paths listed in the variable `exec-path' for R binaries. +If ESS cannot find your R binaries, on Unix you can change the unix +environment variable `PATH', as this variable is used to set +`exec-path'. R on Unix systems: If you have "R-1.8.1" on your `exec-path', it can be started using `M-x R-1.8.1'. By default, ESS will find versions of R beginning "R-1" or "R-2". If your versions of R are called other names, consider renaming them with a symbolic link or change the -variable `ess-r-versions'. To see which defuns have been created for -starting different versions of R, type `M-x R-' and then hit [Tab]. -You will then see if any defuns for particular versions of R have been -created. These other versions of R can also be started from the -"ESS->Start Process->Other" menu. +variable `ess-r-versions'. To see which functions have been created +for starting different versions of R, type `M-x R-' and then hit [Tab]. +These other versions of R can also be started from the "ESS->Start +Process->Other" menu. R on Windows systems: If you have "rw1081" on your `exec-path', it can be started using `M-x rw1081'. By default, ESS will find versions of R located in directories parallel to the version of R in your `PATH'. If your versions of R are called other names, you will need to -change the variable `ess-rterm-versions'. To see which defuns have +change the variable `ess-rterm-versions'. To see which functions have been created for starting different versions of R, type `M-x rw' and -then hit [Tab]. You will then see if any defuns for particular -versions of R have been created. These other versions of R can also be -started from the "ESS->Start Process->Other" menu. +then hit [Tab]. These other versions of R can also be started from the +"ESS->Start Process->Other" menu. Once ESS has found these extra versions of R, it will then create a -new defun, called `M-x R-newest', which will call the newest version of -R that it found. (ESS examines the date in the first line of +new function, called `M-x R-newest', which will call the newest version +of R that it found. (ESS examines the date in the first line of information from `R --version' to determine which is newest.) S on Unix systems: If you have "Splus7" on your `exec-path', it can be started using `M-x Splus7'. By default, ESS will find all executables beginning "Splus" on your path. If your versions of S are called other names, consider renaming them with a symbolic link or -change the variable `ess-s-versions'. To see which defuns have been +change the variable `ess-s-versions'. To see which functions have been created for starting different versions of Splus, type `M-x Splus' and -then hit [Tab]. You will then see if any defuns for particular -versions of Splus have been created. These other versions of Splus can -also be started from the "ESS->Start Process->Other" menu. +then hit [Tab]. These other versions of Splus can also be started from +the "ESS->Start Process->Other" menu. A second mechanim is also available for running other versions of Splus. The variable `ess-s-versions-list' is a list of lists; each @@ -2390,13 +2734,12 @@ is loaded. you have an older version of S-Plus (S-Plus 6.1 for example) on your system, ir can be started inside an emacs buffer with `M-x splus61'. By default, ESS will find versions of S-Plus located in the installation -directories that Insightful uses by default. If your versions of -S-Plus are anywhere else, you will need to change the variable -`ess-SHOME-versions'. To see which defuns have been created for +directories that Insightful uses by default. If your versions of S-Plus +are anywhere else, you will need to change the variable +`ess-SHOME-versions'. To see which functions have been created for starting different versions of S-Plus, type `M-x spl' and then hit -[Tab]. You will then see if any defuns for particular versions of -S-Plus have been created. These other versions of S-Plus can also be -started from the "ESS->Start Process->Other" menu. +[Tab]. These other versions of S-Plus can also be started from the +"ESS->Start Process->Other" menu.  File: ess.info, Node: ESS-help--assistance with viewing help, Next: Philosophies for using ESS(S), Prev: iESS(S)--Inferior ESS processes, Up: ESS for the S family @@ -2564,7 +2907,7 @@ File: ess.info, Node: Customization Examples and Solutions to Problems, Prev: 1. Suppose that you are primarily an SPLUS 3.4 user, occasionally using S version 4, and sick and tired of the buffer-name *S+3* we've stuck you with. Simply edit the "ess-dialect" alist entry in the -essd-sp3.el and essd-s4.el files to be "S" instead of "S4" and +ess-sp3-d.el and ess-s4-d.el files to be "S" instead of "S4" and "S+3". This will ensure that all the inferior process buffer names are "*S*". @@ -2577,14 +2920,24 @@ in your .emacs file, the line: ) 3. Fontlocking sometimes fails to behave nicely upon errors. When -Splus dumps, a mis-matched " (double-quote) can result in the -wrong font-lock face being used for the remainder of the buffer. +Splus dumps, a mis-matched " (double-quote) can result in the wrong +font-lock face being used for the remainder of the buffer. Solution: add a " at the end of the "Dumped..." statement, to revert the font-lock face back to normal. + 4. When you change directory within a *R* or *S* session using the +setwd() command, emacs does not recognise that you have changed the +current directory. + + Solution: Use `M-x ess-change-directory'. This will prompt you for +the directory to change to. It will then change directory within the +*S* buffer, and also update the emacs variable `default-directory'. +Alternatively, if you have already executed setwd(), press `M-RET' +within the *S* buffer so that Emacs can update `default-directory'. +  -File: ess.info, Node: Editing, Next: Editing R documentation files, Prev: ESS for the S family, Up: Top +File: ess.info, Node: Editing, Next: Editing R documentation, Prev: ESS for the S family, Up: Top 7 Editing S functions ********************* @@ -2775,7 +3128,7 @@ File: ess.info, Node: Indenting, Next: Other edit buffer commands, Prev: Eval 7.5 Indenting and formatting S code =================================== -ESS now provides a sophisticated mechanism for indenting S source code +ESS provides a sophisticated mechanism for indenting S source code (thanks to Ken'ichi Shibayama). Compound statements (delimited by `{' and `}') are indented relative to their enclosing block. In addition, the braces have been electrified to automatically indent to the correct @@ -2799,6 +3152,9 @@ after the expression on the line containing the comment if it extends beyond the indentation column. You turn off the default behavior by adding the line `(setq ess-fancy-comments nil)' to your `.emacs' file. + ESS also supports Roxygen entries which is R documentation +maintained in the source code as comments *Note Roxygen::. + The indentation commands provided by ESS are: * `TAB' (`ess-indent-command') @@ -2826,10 +3182,49 @@ adding the line `(setq ess-fancy-comments nil)' to your `.emacs' file. * `M-x ess-set-style' Set the formatting style in this buffer to be one of the predefined - styles: `GNU', `BSD', `K&R', `CLB', and `C++'. The `DEFAULT' - style uses the default values for the indenting variables (unless - they have been modified in your `.emacs' file.) This command - causes all of the formatting variables to be buffer-local. + styles, including `GNU', `BSD', `K&R', `CLB', and `C++'. The + `DEFAULT' style uses the default values for the indenting + variables; The `OWN' style allows you to use your own private + values of the indentation variable, see below. + +* Menu: + +* Styles:: Changing indentation styles + + +File: ess.info, Node: Styles, Prev: Indenting, Up: Indenting + +7.5.1 Changing indentation styles +--------------------------------- + +The combined value of nine variables that control indentation are +collectively termed a style. ESS provides several styles covering the +common styles of indentation: `DEFAULT', `OWN', `GNU', `BSD', `K&R', +`C++', `RRR', `CLB'. The variable `ess-style-alist' lists the value of +each indentation variable per style. + + If you wish to change from one predefined style to another, change +the variable `ess-default-style', for example: + + (setq ess-default-style 'C++) + + The styles `DEFAULT' and `OWN' are initially identical. If you wish +to edit some of the default values, set `ess-default-style' to `'OWN' +and change `ess-own-style-list'. *Note Customization::, for convenient +ways to set both these variables. + + If you prefer not to use the custom facility, you can change +individual indentation variables within a hook, for example: + + (defun myindent-ess-hook () + (setq ess-indent-level 4)) + (add-hook 'ess-mode-hook 'myindent-ess-hook) + + In the rare case that you'd like to add an entire new indentation +style of your own, copy the definition of `ess-own-style-list' to a new +variable and ensure that the last line of the `:set' declaration calls +`ess-add-style' with a unique name for your style (e.g. `'MINE'). +Finally, add `(setq ess-default-style 'MINE)' to use your new style.  File: ess.info, Node: Other edit buffer commands, Next: Source Files, Prev: Indenting, Up: Editing @@ -3030,17 +3425,33 @@ directory. If you choose not to, or the directory cannot be created, you will not be able to edit functions.  -File: ess.info, Node: Editing R documentation files, Next: Help, Prev: Editing, Up: Top +File: ess.info, Node: Editing R documentation, Next: Help, Prev: Editing, Up: Top -8 Editing R documentation files -******************************* +8 Editing R documentation +************************* -ESS also provides support for editing "R documentation" ("Rd") files. -R objects are documented in files written in Rd format, a simple markup -language closely resembling (La)TeX, which can be processed into a -variety of formats, including LaTeX, HTML, and plain text. Rd format -is described in section "Rd format" of the "Writing R Extensions" -manual in the R distribution. +ESS provides two ways of writing documentation for R objects. Either +using the standard R documentation system or using in-source +documentation written as structured comment fields for use with the +Roxygen package. + +* Menu: + +* R documentation files:: Edit objects in a specialized buffer +* Roxygen:: Loading source files into the ESS process + + +File: ess.info, Node: R documentation files, Next: Roxygen, Prev: Editing R documentation, Up: Editing R documentation + +8.1 Editing R documentation (Rd) files +====================================== + +R objects are documented in files written in the "R documentation" +("Rd"), a simple markup language closely resembling (La)TeX, which can +be processed into a variety of formats, including LaTeX, HTML, and +plain text. Rd format is described in section "Rd format" of the +"Writing R Extensions" manual in the R distribution. ESS has several +features that facilitate editing Rd files. Visiting an Rd file as characterized by its extension `Rd' will activate Rd Mode, which provides several facilities for making editing R @@ -3131,7 +3542,105 @@ mode, add the following lines to one of your Emacs startup files: (font-lock-mode 1)))  -File: ess.info, Node: Help, Next: ESS for SAS, Prev: Editing R documentation files, Up: Top +File: ess.info, Node: Roxygen, Prev: R documentation files, Up: Editing R documentation + +8.2 Editing Roxygen documentation +================================= + +The Roxygen R package makes it possible to keep the intended contents +for Rd files as structured comments in the R source files. Roxygen can +then parse R files and generate appropriate Rd files from these +comments, fill the usage fields as well as updating `NAMESPACE' files. +See the Roxygen documentation found via `http://roxygen.org' for more +information its usage. An example of an Roxygen entry for a simple R +function can look like this: + + ##' Description of the function + ##' + ##' Further details about this function + ##' @title A title + ##' @param me all parameters must be listed and documented + ##' @return Description of the return value + ##' @author The author + myfun <- function(me) + cat("Hello", me, "\n") + The entry is immediately preceding the object to document and all +lines start with the Roxygen prefix string, in this case `##''. ESS +provides support to edit these documentation entries by providing line +filling, navigation, template generation etc. Syntax highlighting is +provided for Emacs but not for XEmacs. + + Roxygen is customized by the variables in the customization group +"Ess Roxy". Customizables include the Roxygen prefix, use of folding to +toggle visibility of Roxygen entries and the Roxygen template. + + All ESS Roxygen support is defined in `ess-roxy.el' which is loaded +by default in ESS. The following special Emacs commands are provided. + + * `C-c C-o' (`ess-roxy-update-entry') + Generate a Roxygen template or update the parameter list in Roxygen + entry at point (or above the function at the point). Documented + parameters that are not in the function are placed last in the + list, parameters that are not documented and not in the definition + are dropped. Parameter descriptions are filled if + `ess-roxy-fill-param-p' is non-nil. + + * `C-c C-e C-c' (`ess-roxy-toggle-roxy-region') + Toggle the presence of the leading Roxygen string on all lines in + the marked region. Convenient for transferring text to Roxygen + entries and to evaluate example fields. + + * `C-c C-e C-r' (`ess-roxy-preview-Rd') + Use the attached R process to parse the entry at point to obtain + the Rd code. Convenient for previewing and checking syntax. When + used with the prefix argument, i.e. `C-u C-c C-e C-r', place the + content in a buffer associated with a Rd file with the same name + as the documentation. Requires the Roxygen package to be installed. + + * `C-c C-e C-t' (`ess-roxy-preview-HTML') + Use the attached R process to parse the entry at to generate HTML + for the entry and open it in a browser. When used with the prefix + argument, i.e. `C-u C-c C-e C-t', visit the generated HTML file + instead. Requires the Roxygen and tools packages to be installed. + + * `C-c C-e p' (`ess-roxy-previous-entry') + Go to start of the Roxygen entry above point. + + * `C-c C-e n' (`ess-roxy-next-entry') + Go to end of the Roxygen entry above point. + + * `C-c C-e C-h' (`ess-roxy-hide-all') + Use the hideshow mode to fold away the visibility of all Roxygen + entries. Hide-show support must be enabled for this binding to get + defined. + + ESS also advices the following standard editing functions in order + to make Roxygen editing more intuitive: + + * `C-c TAB' (`ess-R-complete-object-name') + Complete Roxygen tag at point. E.g. doing `C-c TAB' when the point + is at the end of `@par' completes to `@param'. + + * `M-h' (`mark-paragraph') + If the transient mark mode is active, place mark and point at + start end end of the field at point and activate the mark. + + * `TAB' (`ess-indent-command') + If hide-show support is enabled, fold away the visibility of the + Roxygen entry at point. + + * `M-q' (`fill-paragraph') + Fill the Roxygen field at point. + + * `C-a' (`move-beginning-of-line') + Move to the point directly to the right of the Roxygen start + string. + + * `ENTER' (`newline-and-indent') + Insert a new line and the Roxygen prefix string. + + +File: ess.info, Node: Help, Next: ESS for SAS, Prev: Editing R documentation, Up: Top 9 Reading help files ******************** @@ -3567,7 +4076,7 @@ UNIX PC Nickname `SUBMIT' save the current `.sas' file (which is either the `.sas' file in the current buffer or the `.sas' file associated - with the `.lst' or `.log' file in the current buffer) + with the `.lst' or `.log' file in the current buffer) and submit the file as a batch SAS job `PROGRAM' switch buffer to `.sas' file @@ -3843,7 +4352,7 @@ File: ess.info, Node: ESS(SAS)--Windows, Prev: ESS(SAS)--Graphics, Up: ESS fo  -File: ess.info, Node: ESS for BUGS, Next: Miscellaneous, Prev: ESS for SAS, Up: Top +File: ess.info, Node: ESS for BUGS, Next: ESS for JAGS, Prev: ESS for SAS, Up: Top 11 ESS for BUGS *************** @@ -3854,20 +4363,18 @@ File: ess.info, Node: ESS for BUGS, Next: Miscellaneous, Prev: ESS for SAS, * ESS(BUGS)--Command files:: * ESS(BUGS)--Log files:: - ESS[BUGS] was originally designed for use with BUGS software. It -was developed by Rodney A. Sparapani and has some similarities with -ESS[SAS]. Later, it evolved to support JAGS as a dialect of the BUGS -language via ESS[JAGS]. Unless otherwise noted, whenever this -documentation says BUGS, you can assume that it applies to JAGS as -well. ESS provides 5 features. First, BUGS syntax is described to -allow for proper fontification of statements, distributions, functions, -commands and comments in BUGS model files, command files and log files. -Second, ESS creates templates for the command file from the model file -so that a BUGS batch process can be defined by a single file. Third, -ESS provides a BUGS batch script that allows ESS to set BUGS batch -parameters. Fourth, key sequences are defined to create a command file -and submit a BUGS batch process. Lastly, interactive submission of -BUGS commands is also supported. + ESS[BUGS] was originally designed for use with BUGS software. +Later, it evolved to support JAGS as a dialect of the BUGS language via +ESS[JAGS], however, ESS[JAGS] is documented in the section Help for +JAGS. ESS[BUGS] provides 5 features. First, BUGS syntax is described +to allow for proper fontification of statements, distributions, +functions, commands and comments in BUGS model files, command files and +log files. Second, ESS creates templates for the command file from the +model file so that a BUGS batch process can be defined by a single +file. Third, ESS provides a BUGS batch script that allows ESS to set +BUGS batch parameters. Fourth, key sequences are defined to create a +command file and submit a BUGS batch process. Lastly, interactive +submission of BUGS commands is also supported.  File: ess.info, Node: ESS(BUGS)--Model files, Next: ESS(BUGS)--Command files, Prev: ESS for BUGS, Up: ESS for BUGS @@ -3876,22 +4383,21 @@ File: ess.info, Node: ESS(BUGS)--Model files, Next: ESS(BUGS)--Command files, ========================== Model files with the `.bug' extension are edited in ESS[BUGS] mode if -`(require 'essd-bugs)' was performed or edited in ESS[JAGS] mode if -`(require 'essd-jags)'. Two keys are bound for your use in ESS[BUGS], -`F2' and `C-c C-c'. `F2' performs the same action as it does in -ESS[SAS], *Note ESS(SAS)--Function keys for batch processing::. `C-c -C-c' performs the function `ess-bugs-next-action' which you will use a -lot. Pressing it in an empty buffer for a model file will produce a -template for you. +`(require 'ess-bugs-d)' was performed or edited in ESS[JAGS] mode if +`(require 'ess-jags-d)'. Three keys are bound for your use in +ESS[BUGS], `F2', `C-c C-c' and `='. `F2' performs the same action as +it does in ESS[SAS], *Note ESS(SAS)--Function keys for batch +processing::. `C-c C-c' performs the function `ess-bugs-next-action' +which you will use a lot. Pressing it in an empty buffer for a model +file will produce a template for you. `=' inserts the set operator, +`<-'. ESS[BUGS] supports "replacement" variables. These variables are created as part of the template, i.e. with the first press of `C-c C-c' in an empty buffer. They are named by all capitals and start with `%': `%N', `%DATA', `%INIT', `%MONITOR' and `%STATS'. When you are finished editing your model file, pressing `C-c C-c' will perform the necessary -replacements and build your command file for you. Note that ESS[JAGS] -only supports `%MONITOR' since none of the other variables are -compatible with the JAGS dialect. +replacements and build your command file for you. The `%DATA' variable appears in the line `data in "%DATA";'. On the second press of `C-c C-c', `%DATA' will be replaced by the model file @@ -3971,9 +4477,104 @@ appear in ESS[BUGS] mode. You may find `F2' useful to refresh the `.log' if the batch process over-writes or appends it.  -File: ess.info, Node: Miscellaneous, Next: Mailing lists/bug reports, Prev: ESS for BUGS, Up: Top +File: ess.info, Node: ESS for JAGS, Next: Miscellaneous, Prev: ESS for BUGS, Up: Top + +12 ESS for JAGS +*************** + +* Menu: + +* ESS(JAGS)--Model files:: +* ESS(JAGS)--Command files:: +* ESS(JAGS)--Log files:: + + ESS[BUGS] was originally designed for use with BUGS software. +Later, it evolved to support JAGS as a dialect of the BUGS language via +ESS[JAGS]. Since BUGS and JAGS are quite similar, ESS[BUGS] and +ESS[JAGS] are necessarily similar. ESS[JAGS] provides 4 features. +First, JAGS syntax is described to allow for proper fontification of +statements, distributions, functions, commands and comments in JAGS +model files, command files and log files. Second, ESS creates +templates for the command file from the model file so that a JAGS batch +process can be defined by a single file. Third, ESS provides a JAGS +batch script that allows ESS to set JAGS batch parameters. Fourth, key +sequences are defined to create a command file and submit a JAGS batch +process. + + +File: ess.info, Node: ESS(JAGS)--Model files, Next: ESS(JAGS)--Command files, Prev: ESS for JAGS, Up: ESS for JAGS + +12.1 ESS[JAGS]-Model files +========================== + +Model files with the `.bug' extension are edited in ESS[BUGS] mode if +`(require 'ess-bugs-d)' was performed or edited in ESS[JAGS] mode if +`(require 'ess-jags-d)'. Three keys are bound for your use in +ESS[BUGS], `F2', `C-c C-c' and `='. `F2' performs the same action as +it does in ESS[SAS], *Note ESS(SAS)--Function keys for batch +processing::. `C-c C-c' performs the function `ess-bugs-next-action' +which you will use a lot. Pressing it in an empty buffer for a model +file will produce a template for you. `=' inserts the set operator, +`<-'. + + ESS[JAGS] does not support "replacement" variables which were part of +ESS[BUGS]. Although, "replacement" variables are an extremely +convenient feature, creating the elisp code for their operation was +challenging. So, a more elisp-ish approach was adopted for ESS[JAGS]: +elisp local variables. These variables are created as part of the +template, i.e. with the first press of `C-c C-c' in an empty buffer. +For your `.bug' file, they are named `ess-jags-chains', +`ess-jags-monitor', `ess-jags-thin', `ess-jags-burnin' and +`ess-jags-update'; they appear in the `Local Variables' section. When +you are finished editing your model file, pressing `C-c C-c' will +perform the necessary actions to build your command file for you. + + The `ess-jags-chains' variable is the number of chains that you want +to initialize and sample from; defaults to 1. The `ess-jags-monitor' +variable is a list of variables that you want monitored: encase each +variable in double quotes. When you press `C-c C-c', the appropriate +statements are created in the command file to monitor the list of +variables. By default, no variables are explicitly monitored which +means JAGS will implicitly monitor all "default" variables. The +`ess-jags-thin' variable is the thinning parameter. By default, the +thinning parameter is set to 1, i.e. no thinning. The +`ess-jags-burnin' variable is the number of initial samples to discard. +By default, the burnin parameter is set to 10000. The +`ess-jags-update' variable is the number of post-burnin samples to +keep. By default, the update parameter is set to 10000. Both +`ess-jags-burnin' and `ess-jags-update' are multiplied by +`ess-jags-thin' since JAGS does not do it automatically. + + +File: ess.info, Node: ESS(JAGS)--Command files, Next: ESS(JAGS)--Log files, Prev: ESS(JAGS)--Model files, Up: ESS for JAGS + +12.2 ESS[JAGS]-Command files +============================ + +To avoid extension name collision, `.bmd' is used for BUGS command +files and `.jmd' for JAGS command files. For your `.jmd' file, there +is only one variable, `ess-jags-command', in the `Local Variables' +section. When you have finished editing your model file and press `C-c +C-c', a command file is created if one does not already exist. When +you are finished editing your command file, pressing `C-c C-c' again +will submit your command file as a batch job. The `ess-jags-command' +variable allows you to specify a different JAGS program to use to run +your model; defaults to "jags". + + +File: ess.info, Node: ESS(JAGS)--Log files, Prev: ESS(JAGS)--Command files, Up: ESS for JAGS -12 Other features of ESS +12.3 ESS[JAGS]-Log files +======================== + +The `.jog' extension is used for JAGS log files. You may find `F2' +useful to refresh the `.jog' if the batch process over-writes or +appends it. + + +File: ess.info, Node: Miscellaneous, Next: Mailing lists/bug reports, Prev: ESS for JAGS, Up: Top + +13 Other features of ESS ************************ ESS has a few miscellaneous features, which didn't fit anywhere else. @@ -3987,44 +4588,45 @@ ESS has a few miscellaneous features, which didn't fit anywhere else. * Toolbar:: Support for toolbar in ESS * TAGS:: Using TAGS for S files * Rdired:: Directory editor for R objects +* Rutils:: R object/package management and help utilities +* Org:: Interaction with Org mode  File: ess.info, Node: Highlighting, Next: Parens, Prev: Miscellaneous, Up: Miscellaneous -12.1 Syntactic highlighting of buffers +13.1 Syntactic highlighting of buffers ====================================== ESS provides Font-Lock (*note Using Multiple Typefaces: (emacs)Faces.) patterns for Inferior S Mode, S Mode, and S Transcript Mode buffers. - To activate highlighting, you need to turn on Font Lock mode in the -appropriate buffers. This can be done on a per-buffer basis with `M-x -font-lock-mode', or may be done by adding `turn-on-font-lock' to -`inferior-ess-mode-hook', `ess-mode-hook' and -`ess-transcript-mode-hook'. Your systems administrator may have done -this for you in `ess-site.el' (*note Customization::). - - The font-lock patterns are defined in three variables, which you may -modify if desired: - - -- Variable: inferior-ess-font-lock-keywords - Font-lock patterns for Inferior ESS Mode. The default value - highlights prompts, inputs, assignments, output messages, vector - and matrix labels, and literals such as `NA' and `TRUE'. - - -- Variable: ess-mode-font-lock-keywords - Font-lock patterns for ESS programming mode. The default value - highlights function names, literals, assignments, source functions - and reserved words. - - -- Variable: ess-trans-font-lock-keywords - Font-lock patterns for ESS Transcript Mode. The default value - highlights the same patterns as in Inferior ESS Mode. + Syntax highlighting within ESS buffers is controlled by the variable +`ess-font-lock-mode', which by default is true. Input to inferior ESS +processes is also highlighted syntactically if +`inferior-ess-font-lock-input' is non-nil (the default). If you change +the value of either of these varibles, you need to restart emacs for +your changes to take effect. + + The font-lock patterns are defined in the following variables, which +you may modify if desired: + + -- Variable: inferior-ess-R-font-lock-keywords + Font-lock patterns for inferior *R* processes. (There is a + corresponding `inferior-ess-S-font-lock-keywords' for *S* + processes.) The default value highlights prompts, inputs, + assignments, output messages, vector and matrix labels, and + literals such as `NA' and `TRUE'. + + -- Variable: ess-R-mode-font-lock-keywords + Font-lock patterns for ESS R programming mode. (There is a + corresponding `ess-S-mode-font-lock-keywords' for S buffers.) The + default value highlights function names, literals, assignments, + source functions and reserved words.  File: ess.info, Node: Parens, Next: Graphics, Prev: Highlighting, Up: Miscellaneous -12.2 Parenthesis matching +13.2 Parenthesis matching ========================= Emacs and XEmacs have facilities for highlighting the parenthesis @@ -4040,7 +4642,7 @@ initialisation file:  File: ess.info, Node: Graphics, Next: Imenu, Prev: Parens, Up: Miscellaneous -12.3 Using graphics with ESS +13.3 Using graphics with ESS ============================ One of the main features of the `S' package is its ability to generate @@ -4056,7 +4658,7 @@ for dealing with such plots.  File: ess.info, Node: printer, Next: X11, Prev: Graphics, Up: Graphics -12.3.1 Using ESS with the `printer()' driver +13.3.1 Using ESS with the `printer()' driver -------------------------------------------- This is the simplest (and least desirable) method of using graphics @@ -4073,7 +4675,7 @@ issued, which displays the current figure.  File: ess.info, Node: X11, Next: winjava, Prev: printer, Up: Graphics -12.3.2 Using ESS with windowing devices +13.3.2 Using ESS with windowing devices --------------------------------------- Of course, the ideal way to use graphics with ESS is to use a windowing @@ -4086,7 +4688,7 @@ DISPLAY before the ESS process is started if the variable  File: ess.info, Node: winjava, Prev: X11, Up: Graphics -12.3.3 Java Graphics Device +13.3.3 Java Graphics Device --------------------------- S+6.1 and newer on Windows contains a java library that supports @@ -4102,7 +4704,7 @@ this information.)  File: ess.info, Node: Imenu, Next: Toolbar, Prev: Graphics, Up: Miscellaneous -12.4 Imenu +13.4 Imenu ========== Imenu is an Emacs tool for providing mode-specific buffer indexes. In @@ -4121,7 +4723,7 @@ various ESS variables such as `ess-imenu-S-generic-expression'.  File: ess.info, Node: Toolbar, Next: TAGS, Prev: Imenu, Up: Miscellaneous -12.5 Toolbar +13.5 Toolbar ============ The R and S editing modes have support for a toolbar. This toolbar @@ -4133,7 +4735,7 @@ ways to change the toolbar.  File: ess.info, Node: TAGS, Next: Rdired, Prev: Toolbar, Up: Miscellaneous -12.6 TAGS +13.6 TAGS ========= The Emacs tags facility can be used to navigate around your files @@ -4158,10 +4760,20 @@ should be appropriate. with the function name starting in column 0. Windows users may need to change the single quotes to double quotes. + R version 2.9.0 introduced a front-end script for finding R tags, +which calls the `rtags()' function. By default, this script will +recursively search the directories for relevant tags in R/C/Rd files. +To use this script from the command line, try the following to get +started: + + R CMD rtags --help + + For further details, see `http://developer.r-project.org/rtags.html' +  -File: ess.info, Node: Rdired, Prev: TAGS, Up: Miscellaneous +File: ess.info, Node: Rdired, Next: Rutils, Prev: TAGS, Up: Miscellaneous -12.7 Rdired +13.7 Rdired =========== Ess-rdired provides a dired-like buffer for viewing, editing and @@ -4195,10 +4807,93 @@ For example, with your point on the line of a variable, `p' will plot the object, `v' will view it, and `d' will mark the object for deletion (`x' will actually perform the deletion). + +File: ess.info, Node: Rutils, Next: Org, Prev: Rdired, Up: Miscellaneous + +13.8 Rutils +=========== + +Ess-rutils builds up on ess-rdired, providing key bindings for +performing basic R functions in the inferior-ESS process buffer, such as +loading and managing packages, object manipulation (listing, viewing, +and deleting), and alternatives to `help.start()' and `RSiteSearch()' +that use the `browse-url' Emacs function. The library can be loaded +using `M-x load-file', but the easiest is to include: + + (require 'ess-rutils) + + in your .emacs. Once R is started with `M-x R', and if the value of +the customizable variable `ess-rutils-keys' is true, several key +bindings become available in iESS process buffers: + + * `C-c C-. l' (`ess-rutils-localpkgs') + List all packages in all available libraries. + + * `C-c C-. r' (`ess-rutils-repospkgs') + List available packages from repositories listed by + `getOptions(``repos'')' in the current R session. + + * `C-c C-. u' (`ess-rutils-updatepkgs') + Update packages in a particular library and repository. + + * `C-c C-. a' (`ess-rutils-apropos') + Search for a string using apropos. + + * `C-c C-. m' (`ess-rutils-rmall') + Remove all R objects. + + * `C-c C-. o' (`ess-rutils-objs') + Manipulate R objects; wrapper for `ess-rdired'. + + * `C-c C-. w' (`ess-rutils-loadwkspc') + Load a workspace file into R. + + * `C-c C-. s' (`ess-rutils-savewkspc') + Save a workspace file. + + * `C-c C-. d' (`ess-change-directory') + Change the working directory for the current R session. + + * `C-c C-. H' (`ess-rutils-htmldocs') + Use `browse-url' to navigate R html documentation. + + + See the submenu `Rutils' under the iESS menu for alternative access +to these functions. The function `ess-rutils-rsitesearch' is provided +without a particular key binding. This function is useful in any Emacs +buffer, so can be bound to a user-defined key: + + (eval-after-load "ess-rutils" + '(global-set-key [(control c) (f6)] 'ess-rutils-rsitesearch)) + + Functions for listing objects and packages (`ess-rutils-localpkgs', +`ess-rutils-repospkgs', and `ess-rutils-objs') show results in a +separate buffer and window, in `ess-rutils-mode', providing useful key +bindings in this mode (type `?' in this buffer for a description). + + +File: ess.info, Node: Org, Prev: Rutils, Up: Miscellaneous + +13.9 Interaction with Org mode +============================== + +Org-mode (`http://orgmode.org' now supports reproducible research and +literate programming in many languages (including R) - see chapter 14 +of the Org manual +(`http://orgmode.org/org.html#Working-With-Source-Code'. For ESS +users, this offers a document-based work environment within which to +embed ESS usage. R code lives in code blocks of an Org document, from +which it can be edited in ess-mode, evaluated, extracted ("tangled") to +pure code files. The code can also be exported ("woven") with the +surrounding text to several formats including HTML and LaTeX. Results +of evaluation including figures can be captured in the Org document, and +data can be passed from the Org document (e.g. from a table) to the ESS +R process. (This section contributed by Dan Davison and Eric Schulte.) +  File: ess.info, Node: Mailing lists/bug reports, Next: Customization, Prev: Miscellaneous, Up: Top -13 Bugs and Bug Reporting, Mailing Lists +14 Bugs and Bug Reporting, Mailing Lists **************************************** * Menu: @@ -4211,7 +4906,7 @@ File: ess.info, Node: Mailing lists/bug reports, Next: Customization, Prev: M  File: ess.info, Node: Bugs, Next: Reporting Bugs, Prev: Mailing lists/bug reports, Up: Mailing lists/bug reports -13.1 Bugs +14.1 Bugs ========= * Commands like `ess-display-help-on-object' and list completion @@ -4252,7 +4947,7 @@ File: ess.info, Node: Bugs, Next: Reporting Bugs, Prev: Mailing lists/bug rep  File: ess.info, Node: Reporting Bugs, Next: Mailing Lists, Prev: Bugs, Up: Mailing lists/bug reports -13.2 Reporting Bugs +14.2 Reporting Bugs =================== Please send bug reports, suggestions etc. to @@ -4276,7 +4971,7 @@ donations are also more than welcome.  File: ess.info, Node: Mailing Lists, Next: Help with emacs, Prev: Reporting Bugs, Up: Mailing lists/bug reports -13.3 Mailing Lists +14.3 Mailing Lists ================== There is a mailing list for discussions and announcements relating to @@ -4301,7 +4996,7 @@ low-volume mailing list.  File: ess.info, Node: Help with emacs, Prev: Mailing Lists, Up: Mailing lists/bug reports -13.4 Help with emacs +14.4 Help with emacs ==================== Emacs is a complex editor with many abilities that we do not have space @@ -4345,8 +5040,7 @@ Concept Index [index] * Menu: -* .emacs file <1>: Source Directories. (line 30) -* .emacs file: Indenting. (line 59) +* .emacs file: Source Directories. (line 30) * aborting S commands: Other. (line 10) * aborting the ESS process: Other. (line 18) * arguments to S program: Customizing startup. (line 47) @@ -4357,6 +5051,8 @@ Concept Index * cleaning up: Hot keys. (line 66) * comint: Credits. (line 6) * command history: Command History. (line 6) +* command line arguments: iESS(S)--Inferior ESS processes. + (line 38) * command-line completion: Completion. (line 6) * command-line editing: Command-line editing. (line 6) @@ -4390,16 +5086,17 @@ Concept Index * errors: Error Checking. (line 6) * ESS process buffer: Starting up. (line 18) * ESS process directory: Starting up. (line 12) +* ess-roxy: Roxygen. (line 6) * evaluating code with echoed commands: Evaluating code. (line 18) * evaluating S expressions: Evaluating code. (line 24) * Font-lock mode: Highlighting. (line 7) -* formatting source code: Indenting. (line 30) +* formatting source code: Indenting. (line 33) * graphics: Graphics. (line 6) * help files: Help. (line 6) * highlighting: Highlighting. (line 7) * historic backups: Source Files. (line 40) * hot keys: Hot keys. (line 37) -* indenting: Indenting. (line 30) +* indenting: Indenting. (line 33) * installation: Installation. (line 6) * interactive use of S: Introduction. (line 31) * interrupting S commands: Other. (line 10) @@ -4429,6 +5126,8 @@ Concept Index * Remote Computers: ESS processes on Remote Computers. (line 6) * reverting function definitions: Edit buffer. (line 27) +* roxy: Roxygen. (line 6) +* Roxygen: Roxygen. (line 6) * running S: Starting up. (line 6) * search list <1>: Source Directories. (line 55) * search list: Hot keys. (line 27) @@ -4500,6 +5199,7 @@ Variable and command index * ess-ask-for-ess-directory: Customizing startup. (line 7) * ess-beginning-of-function: Other edit buffer commands. (line 9) +* ess-change-directory: Rutils. (line 45) * ess-change-sp-regexp: Completion details. (line 9) * ess-cleanup <1>: Help. (line 150) * ess-cleanup: Hot keys. (line 66) @@ -4533,20 +5233,38 @@ Variable and command index * ess-execute-search: Hot keys. (line 27) * ess-fancy-comments: Indenting. (line 28) * ess-function-template: Edit buffer. (line 17) +* ess-indent-command: Roxygen. (line 85) * ess-keep-dump-files: Source Files. (line 27) * ess-list-object-completions: Completion. (line 36) * ess-load-file <1>: Loading. (line 13) * ess-load-file: Hot keys. (line 51) -* ess-mode-font-lock-keywords: Highlighting. (line 25) * ess-parse-errors <1>: Error Checking. (line 9) * ess-parse-errors: Hot keys. (line 53) * ess-quit <1>: Help. (line 150) * ess-quit: Other. (line 18) +* ess-R-complete-object-name: Roxygen. (line 77) +* ess-R-mode-font-lock-keywords: Highlighting. (line 27) * ess-remote: ESS processes on Remote Computers. (line 6) * ess-request-a-process: Multiple ESS processes. (line 15) * ess-resynch: Completion details. (line 24) +* ess-roxy-hide-all: Roxygen. (line 69) +* ess-roxy-next-entry: Roxygen. (line 66) +* ess-roxy-preview-Rd: Roxygen. (line 50) +* ess-roxy-previous-entry: Roxygen. (line 63) +* ess-roxy-toggle-roxy-region: Roxygen. (line 45) +* ess-roxy-update-entry: Roxygen. (line 37) +* ess-rutils-apropos: Rutils. (line 30) +* ess-rutils-htmldocs: Rutils. (line 48) +* ess-rutils-loadwkspc: Rutils. (line 39) +* ess-rutils-localpkgs: Rutils. (line 20) +* ess-rutils-objs: Rutils. (line 36) +* ess-rutils-repospkgs: Rutils. (line 23) +* ess-rutils-rmall: Rutils. (line 33) +* ess-rutils-rsitesearch: Rutils. (line 58) +* ess-rutils-savewkspc: Rutils. (line 42) +* ess-rutils-updatepkgs: Rutils. (line 27) * ess-search-list: Source Directories. (line 62) * ess-skip-to-help-section: Help. (line 53) * ess-skip-to-next-section: Help. (line 42) @@ -4558,17 +5276,20 @@ Variable and command index (line 32) * ess-switch-to-ESS: Other edit buffer commands. (line 36) -* ess-trans-font-lock-keywords: Highlighting. (line 30) * ess-transcript-clean-region: Saving transcripts. (line 31) * ess-transcript-copy-command: Resubmit. (line 14) * ess-transcript-send-command: Resubmit. (line 10) * ess-transcript-send-command-and-move: Transcript resubmit. (line 22) * exit(): Hot keys. (line 61) -* inferior-ess-font-lock-keywords: Highlighting. (line 20) +* fill-paragraph: Roxygen. (line 89) * inferior-ess-program: Customizing startup. (line 44) +* inferior-ess-R-font-lock-keywords: Highlighting. (line 20) * inferior-ess-send-input <1>: Transcript resubmit. (line 13) * inferior-ess-send-input: Command-line editing. (line 10) +* mark-paragraph: Roxygen. (line 81) +* move-beginning-of-line: Roxygen. (line 92) +* newline-and-indent: Roxygen. (line 96) * objects(): Hot keys. (line 21) * printer(): printer. (line 11) * q(): Hot keys. (line 61) @@ -4585,94 +5306,102 @@ Variable and command index  Tag Table: -Node: Top272 -Node: Introduction2076 -Node: Features5053 -Node: New features8474 -Node: Credits35194 -Node: Latest version38575 -Node: Manual40359 -Node: Installation42901 -Node: Unix installation43379 -Node: Microsoft Windows installation45951 -Node: Requirements53891 -Ref: Requirements-Footnote-154620 -Node: Interactive ESS54713 -Node: Starting up55567 -Node: Multiple ESS processes56378 -Node: ESS processes on Remote Computers57413 -Node: S+elsewhere and ESS-elsewhere60563 -Node: Customizing startup63326 -Node: Entering commands66006 -Node: Command-line editing67305 -Node: Completion68589 -Node: Completion details71358 -Ref: Completion details-Footnote-172764 -Node: Transcript73044 -Node: Last command74819 -Node: Process buffer motion76309 -Node: Transcript resubmit77830 -Node: Saving transcripts80439 -Node: Command History82485 -Node: History expansion85109 -Node: Hot keys88317 -Node: Statistical Process running in ESS?91784 -Node: Emacsclient93089 -Node: Other93896 -Node: Transcript Mode94942 -Node: Resubmit96098 -Node: Clean97182 -Node: ESS for the S family97901 -Node: ESS(S)--Editing files98308 -Node: iESS(S)--Inferior ESS processes99360 -Node: ESS-help--assistance with viewing help105058 -Node: Philosophies for using ESS(S)105388 -Node: Scenarios for use (possibilities--based on actual usage)106524 -Node: Customization Examples and Solutions to Problems111215 -Node: Editing112501 -Node: Edit buffer113688 -Node: Loading115722 -Node: Error Checking116773 -Node: Evaluating code117819 -Node: Indenting121254 -Node: Other edit buffer commands124235 -Node: Source Files126152 -Node: Source Directories130682 -Node: Editing R documentation files133821 -Node: Help137670 -Node: ESS for SAS142000 -Node: ESS(SAS)--Design philosophy142722 -Node: ESS(SAS)--Editing files143676 -Node: ESS(SAS)--TAB key145536 -Node: ESS(SAS)--Batch SAS processes146834 -Node: ESS(SAS)--Function keys for batch processing151858 -Node: iESS(SAS)--Interactive SAS processes161450 -Node: iESS(SAS)--Common problems165200 -Node: ESS(SAS)--Graphics166732 -Node: ESS(SAS)--Windows167515 -Node: ESS for BUGS168094 -Node: ESS(BUGS)--Model files169240 -Node: ESS(BUGS)--Command files172484 -Node: ESS(BUGS)--Log files173800 -Node: Miscellaneous174350 -Node: Highlighting174996 -Node: Parens176410 -Node: Graphics176998 -Node: printer177514 -Node: X11178287 -Node: winjava178818 -Node: Imenu179231 -Node: Toolbar180079 -Node: TAGS180494 -Node: Rdired181473 -Node: Mailing lists/bug reports182729 -Node: Bugs182994 -Node: Reporting Bugs184657 -Node: Mailing Lists185470 -Node: Help with emacs186235 -Node: Customization186789 -Node: Key Index187554 -Node: Concept Index187709 -Node: Variable and command index195579 +Node: Top278 +Node: Introduction2104 +Node: Features5086 +Node: New features8507 +Node: Credits49395 +Node: Latest version52887 +Node: Manual54671 +Node: Installation57213 +Node: Unix installation57691 +Node: Microsoft Windows installation61784 +Node: Requirements71217 +Node: Interactive ESS71726 +Node: Starting up72580 +Node: Multiple ESS processes73391 +Node: ESS processes on Remote Computers74426 +Node: S+elsewhere and ESS-elsewhere77576 +Node: Customizing startup80339 +Node: Entering commands83019 +Node: Command-line editing84318 +Node: Completion85602 +Node: Completion details88397 +Ref: Completion details-Footnote-189803 +Node: Transcript90083 +Node: Last command91858 +Node: Process buffer motion93348 +Node: Transcript resubmit94869 +Node: Saving transcripts97478 +Node: Command History99524 +Node: History expansion102148 +Node: Hot keys105356 +Node: Statistical Process running in ESS?108823 +Node: Emacsclient110128 +Node: Other110935 +Node: Transcript Mode111981 +Node: Resubmit113137 +Node: Clean114221 +Node: ESS for the S family114940 +Node: ESS(S)--Editing files115347 +Node: iESS(S)--Inferior ESS processes116399 +Node: ESS-help--assistance with viewing help122090 +Node: Philosophies for using ESS(S)122420 +Node: Scenarios for use (possibilities--based on actual usage)123556 +Node: Customization Examples and Solutions to Problems128247 +Node: Editing130041 +Node: Edit buffer131222 +Node: Loading133256 +Node: Error Checking134307 +Node: Evaluating code135353 +Node: Indenting138788 +Node: Styles141936 +Node: Other edit buffer commands143383 +Node: Source Files145300 +Node: Source Directories149830 +Node: Editing R documentation152969 +Node: R documentation files153480 +Node: Roxygen157382 +Node: Help161599 +Node: ESS for SAS165923 +Node: ESS(SAS)--Design philosophy166645 +Node: ESS(SAS)--Editing files167599 +Node: ESS(SAS)--TAB key169459 +Node: ESS(SAS)--Batch SAS processes170757 +Node: ESS(SAS)--Function keys for batch processing175781 +Node: iESS(SAS)--Interactive SAS processes185372 +Node: iESS(SAS)--Common problems189122 +Node: ESS(SAS)--Graphics190654 +Node: ESS(SAS)--Windows191437 +Node: ESS for BUGS192016 +Node: ESS(BUGS)--Model files193036 +Node: ESS(BUGS)--Command files196208 +Node: ESS(BUGS)--Log files197524 +Node: ESS for JAGS198074 +Node: ESS(JAGS)--Model files199053 +Node: ESS(JAGS)--Command files201486 +Node: ESS(JAGS)--Log files202262 +Node: Miscellaneous202558 +Node: Highlighting203341 +Node: Parens204756 +Node: Graphics205344 +Node: printer205860 +Node: X11206633 +Node: winjava207164 +Node: Imenu207577 +Node: Toolbar208425 +Node: TAGS208840 +Node: Rdired210199 +Node: Rutils211470 +Node: Org213781 +Node: Mailing lists/bug reports214701 +Node: Bugs214966 +Node: Reporting Bugs216629 +Node: Mailing Lists217442 +Node: Help with emacs218207 +Node: Customization218761 +Node: Key Index219526 +Node: Concept Index219681 +Node: Variable and command index227844  End Tag Table