1
1
;;; ess-custom.el --- Customize variables for ESS
3
3
;; Copyright (C) 1997--2010 A.J. Rossini, Rich M. Heiberger, Martin
4
;; Maechler, Kurt Hornik, Rodney Sparapani, and Stephen Eglen.
4
;; Maechler, Kurt Hornik, Rodney Sparapani, and Stephen Eglen.
5
5
;; Copyright (C) 2011--2012 A.J. Rossini, Richard M. Heiberger, Martin Maechler,
6
;; Kurt Hornik, Rodney Sparapani, Stephen Eglen and Vitalie Spinu.
6
;; Kurt Hornik, Rodney Sparapani, Stephen Eglen and Vitalie Spinu.
8
;; Original Author: A.J. Rossini <blindglobe@gmail.com>
8
;; Author: A.J. Rossini <blindglobe@gmail.com>
9
9
;; Created: 05 June 2000
10
;; Maintainers: ESS-core <ESS-core@r-project.org>
10
;; Maintainer: ESS-core <ESS-core@r-project.org>
12
;; Keywords: editing and process modes.
12
;; Keywords: languages
14
14
;; This file is part of ESS
179
(defcustom ess-handy-commands '(("change-directory" . ess-change-directory)
180
("install.packages" . ess-install.packages)
181
("library" . ess-library)
182
("objects[ls]" . ess-execute-objects)
183
("help-index" . ess-display-index)
184
("help-object" . ess-display-help-on-object)
185
("search" . ess-execute-search)
186
("set-width" . ess-execute-screen-options)
187
("setRepos" . ess-setRepositories)
189
("vignettes" . ess-display-vignettes)
176
(defcustom ess-handy-commands '(("change-directory" . ess-change-directory)
177
("install.packages" . ess-install.packages)
178
("library" . ess-library)
179
("objects[ls]" . ess-execute-objects)
180
("help-index" . ess-display-index)
181
("help-object" . ess-display-help-on-object)
182
("search" . ess-execute-search)
183
("set-width" . ess-execute-screen-options)
184
("setRepos" . ess-setRepositories)
186
("vignettes" . ess-display-vignettes)
191
188
"An alist of custom ESS commands available for call by `ess-smart-comma' function."
193
190
:type (if (featurep 'emacs) 'alist 'list))
634
631
(defvar ess-default-style-list
636
(cons 'ess-indent-level ess-indent-level)
637
(cons 'ess-continued-statement-offset ess-continued-statement-offset)
638
(cons 'ess-brace-offset ess-brace-offset)
639
(cons 'ess-expression-offset ess-expression-offset)
640
(cons 'ess-else-offset ess-else-offset)
641
(cons 'ess-brace-imaginary-offset ess-brace-imaginary-offset)
642
(cons 'ess-continued-brace-offset ess-continued-brace-offset)
643
(cons 'ess-arg-function-offset ess-arg-function-offset)
644
(cons 'ess-arg-function-offset-new-line ess-arg-function-offset-new-line)
645
(cons 'ess-close-brace-offset ess-close-brace-offset))
633
(cons 'ess-indent-level ess-indent-level)
634
(cons 'ess-continued-statement-offset ess-continued-statement-offset)
635
(cons 'ess-brace-offset ess-brace-offset)
636
(cons 'ess-expression-offset ess-expression-offset)
637
(cons 'ess-else-offset ess-else-offset)
638
(cons 'ess-brace-imaginary-offset ess-brace-imaginary-offset)
639
(cons 'ess-continued-brace-offset ess-continued-brace-offset)
640
(cons 'ess-arg-function-offset ess-arg-function-offset)
641
(cons 'ess-arg-function-offset-new-line ess-arg-function-offset-new-line)
642
(cons 'ess-close-brace-offset ess-close-brace-offset))
646
643
"Default style constructed from initial values of indentation variables.")
648
645
(defvar ess-style-alist
649
646
(cons ess-default-style-list
650
'((GNU (ess-indent-level . 2)
651
(ess-continued-statement-offset . 2)
652
(ess-brace-offset . 0)
653
(ess-arg-function-offset . 4)
654
(ess-arg-function-offset-new-line . 4)
655
(ess-expression-offset . 2)
656
(ess-else-offset . 0)
657
(ess-close-brace-offset . 0))
658
(BSD (ess-indent-level . 8)
659
(ess-continued-statement-offset . 8)
660
(ess-brace-offset . -8)
661
(ess-arg-function-offset . 0)
662
(ess-arg-function-offset-new-line . 0)
663
(ess-expression-offset . 8)
664
(ess-else-offset . 0)
665
(ess-close-brace-offset . 0))
666
(K&R (ess-indent-level . 5)
667
(ess-continued-statement-offset . 5)
668
(ess-brace-offset . -5)
669
(ess-arg-function-offset . 0)
670
(ess-arg-function-offset-new-line . 0)
671
(ess-expression-offset . 5)
672
(ess-else-offset . 0)
673
(ess-close-brace-offset . 0))
674
(C++ (ess-indent-level . 4)
675
(ess-continued-statement-offset . 4)
676
(ess-brace-offset . -4)
677
(ess-arg-function-offset . 0)
678
(ess-arg-function-offset-new-line . 0)
679
(ess-expression-offset . 4)
680
(ess-else-offset . 0)
681
(ess-close-brace-offset . 0))
682
;; R added ajr 17Feb04 to match "common R" use
683
(RRR (ess-indent-level . 4)
684
(ess-continued-statement-offset . 4)
685
(ess-brace-offset . 0)
686
(ess-arg-function-offset . 4)
687
(ess-arg-function-offset-new-line . 4)
688
(ess-expression-offset . 4)
689
(ess-else-offset . 0)
690
(ess-close-brace-offset . 0))
691
;; CLB added rmh 2Nov97 at request of Terry Therneau
692
(CLB (ess-indent-level . 2)
693
(ess-continued-statement-offset . 4)
694
(ess-brace-offset . 0)
695
(ess-arg-function-offset . 0)
696
(ess-arg-function-offset-new-line . 0)
697
(ess-expression-offset . 4)
698
(ess-else-offset . 0)
699
(ess-close-brace-offset . 2))))
647
'((GNU (ess-indent-level . 2)
648
(ess-continued-statement-offset . 2)
649
(ess-brace-offset . 0)
650
(ess-arg-function-offset . 4)
651
(ess-arg-function-offset-new-line . 4)
652
(ess-expression-offset . 2)
653
(ess-else-offset . 0)
654
(ess-close-brace-offset . 0))
655
(BSD (ess-indent-level . 8)
656
(ess-continued-statement-offset . 8)
657
(ess-brace-offset . -8)
658
(ess-arg-function-offset . 0)
659
(ess-arg-function-offset-new-line . 0)
660
(ess-expression-offset . 8)
661
(ess-else-offset . 0)
662
(ess-close-brace-offset . 0))
663
(K&R (ess-indent-level . 5)
664
(ess-continued-statement-offset . 5)
665
(ess-brace-offset . -5)
666
(ess-arg-function-offset . 0)
667
(ess-arg-function-offset-new-line . 0)
668
(ess-expression-offset . 5)
669
(ess-else-offset . 0)
670
(ess-close-brace-offset . 0))
671
(C++ (ess-indent-level . 4)
672
(ess-continued-statement-offset . 4)
673
(ess-brace-offset . -4)
674
(ess-arg-function-offset . 0)
675
(ess-arg-function-offset-new-line . 0)
676
(ess-expression-offset . 4)
677
(ess-else-offset . 0)
678
(ess-close-brace-offset . 0))
679
;; R added ajr 17Feb04 to match "common R" use
680
(RRR (ess-indent-level . 4)
681
(ess-continued-statement-offset . 4)
682
(ess-brace-offset . 0)
683
(ess-arg-function-offset . 4)
684
(ess-arg-function-offset-new-line . 2)
685
(ess-expression-offset . 4)
686
(ess-else-offset . 0)
687
(ess-close-brace-offset . 0))
688
;; CLB added rmh 2Nov97 at request of Terry Therneau
689
(CLB (ess-indent-level . 2)
690
(ess-continued-statement-offset . 4)
691
(ess-brace-offset . 0)
692
(ess-arg-function-offset . 0)
693
(ess-arg-function-offset-new-line . 0)
694
(ess-expression-offset . 4)
695
(ess-else-offset . 0)
696
(ess-close-brace-offset . 2))))
700
697
"Predefined formatting styles for ESS code.
701
698
Values for all groups, except OWN, are fixed. To change the
702
699
value of variables in the OWN group, customize the variable
1268
1277
;;(if ess-microsoft-p
1269
1278
;; (let* ((SHOME (getenv "SHOME"))
1270
;; (PATH (getenv "PATH"))
1271
;; (split-PATH (split-string PATH ";")) ;; Unix uses ":"
1279
;; (PATH (getenv "PATH"))
1280
;; (split-PATH (split-string PATH ";")) ;; Unix uses ":"
1274
1283
;; (if (not SHOME)
1275
;; (while (< num (length split-PATH))
1276
;; (setq pathname (concat (nth num split-PATH) "/Sqpe.exe"))
1277
;; (if (not (file-exists-p pathname))
1278
;; (setq num (1+ num))
1280
;; (setq num (length split-PATH))
1281
;; (setq SHOME (expand-file-name (concat pathname "/../..")))))))
1284
;; (while (< num (length split-PATH))
1285
;; (setq pathname (concat (nth num split-PATH) "/Sqpe.exe"))
1286
;; (if (not (file-exists-p pathname))
1287
;; (setq num (1+ num))
1289
;; (setq num (length split-PATH))
1290
;; (setq SHOME (expand-file-name (concat pathname "/../..")))))))
1282
1291
;; (setq-default inferior-Sqpe+6-SHOME-name SHOME)))
1284
1293
(defcustom ess-S-quit-kill-buffers-p nil
1865
1881
"Warning messages"))
1866
1882
(defvar ess-S-message-prefixes
1867
1883
(append ess-R-message-prefixes
1868
'("Syntax error:" "Dumped")))
1884
'("Syntax error:" "Dumped")))
1871
1887
(defvar ess-R-assign-ops
1872
1888
'("<<-" "<-" "->") ; don't want "=" here which is not only for assign
1874
1890
(defvar ess-S-assign-ops
1875
1891
'("<<-" "<-" "_" "->") ; don't want "=" here which is not only for assign
1878
1894
;; Note: \\s\" is really \s" which means match a char belonging to the
1879
1895
;; "quote character" syntax class.
1880
1896
(defvar ess-R-function-name-regexp
1881
1897
(concat "\\s\"?\\(\\(\\sw\\|\\s_\\)+"
1882
"\\(<-\\)?\\)\\s\"?\\s-*\\(<-\\)"
1883
"\\(\\s-\\|\n\\)*function")
1898
"\\(<-\\)?\\)\\s\"?\\s-*\\(<-\\)"
1899
"\\(\\s-\\|\n\\)*function")
1885
1901
(defvar ess-S-function-name-regexp
1886
1902
ess-R-function-name-regexp ; since "_" is deprecated for S-plus as well
1889
1905
(defvar ess-R-common-font-lock-keywords
1891
1907
(cons (regexp-opt ess-R-assign-ops)
1892
'font-lock-reference-face) ; assign
1908
'font-lock-reference-face) ; assign
1893
1909
(cons (concat "\\<" (regexp-opt ess-R-constants 'enc-paren) "\\>")
1894
'font-lock-type-face) ; constants
1910
'font-lock-type-face) ; constants
1895
1911
(cons (concat "\\<" (regexp-opt ess-R-modifyiers 'enc-paren) "\\>")
1896
'font-lock-reference-face) ; modify search list or source
1912
'font-lock-reference-face) ; modify search list or source
1898
1914
(cons ess-R-function-name-regexp
1899
'(1 font-lock-function-name-face t))
1915
'(1 font-lock-function-name-face t))
1902
1918
"Font-lock patterns used in `R-mode' and R-output buffers.")
1904
1920
(defvar ess-R-mode-font-lock-keywords
1905
1921
(append ess-R-common-font-lock-keywords
1906
(list (cons (concat "\\<" (regexp-opt ess-R-keywords 'enc-paren) "\\>")
1907
'font-lock-keyword-face))) ; keywords
1922
(list (cons (concat "\\<" (regexp-opt ess-R-keywords 'enc-paren) "\\>")
1923
'font-lock-keyword-face))) ; keywords
1908
1924
"Font-lock patterns used in `R-mode' buffers.")
1910
1926
(defvar ess-S-common-font-lock-keywords
1912
1928
(cons (regexp-opt ess-S-assign-ops)
1913
'font-lock-reference-face) ; assign
1929
'font-lock-reference-face) ; assign
1914
1930
(cons (concat "\\<" (regexp-opt ess-S-constants 'enc-paren) "\\>")
1915
'font-lock-type-face) ; constants
1931
'font-lock-type-face) ; constants
1916
1932
(cons (concat "\\<" (regexp-opt ess-S-modifyiers 'enc-paren) "\\>")
1917
'font-lock-reference-face) ; modify search list or source
1933
'font-lock-reference-face) ; modify search list or source
1919
1935
(cons ess-S-function-name-regexp
1920
'(1 font-lock-function-name-face t))
1936
'(1 font-lock-function-name-face t))
1923
1939
"Font-lock patterns used in `S-mode' and S-output buffers.")
1925
1941
(defvar ess-S-mode-font-lock-keywords
1926
1942
(append ess-S-common-font-lock-keywords
1927
(list (cons (concat "\\<" (regexp-opt ess-S-keywords 'enc-paren) "\\>")
1928
'font-lock-keyword-face))) ; keywords
1943
(list (cons (concat "\\<" (regexp-opt ess-S-keywords 'enc-paren) "\\>")
1944
'font-lock-keyword-face))) ; keywords
1929
1945
"Font-lock patterns used in `S-mode' buffers.")