]> git.donarmstrong.com Git - lib.git/blob - emacs_el/configuration/ess_configuration.el
override permanent local in ess
[lib.git] / emacs_el / configuration / ess_configuration.el
1 (eval-after-load "ess"
2   '(mapcar 'ess-noweb-make-variable-permanent-local
3            '(ess-noweb-mode
4              ess-local-process-name ;; also made permanent in ess-mode, but let it be
5              ess-dialect
6              ess-language
7              ess-noweb-narrowing
8              ess-noweb-chunk-vector
9              ess-noweb-doc-mode
10              ess-noweb-code-mode
11              ess-noweb-default-code-mode
12              ess-noweb-last-chunk-index)))
13
14 (defun ess-change-directory (path)
15   "Set the current working directory to PATH for both *R* and Emacs."
16   (interactive "DDirectory to change to: ")
17
18   (when (file-exists-p path)
19     (ess-command (concat "setwd(\"" path "\")\n"))
20     ;; use file-name-as-directory to ensure it has trailing /
21     (setq default-directory (file-name-as-directory path))))
22 (add-hook 'ess-mode-hook 'flyspell-prog-mode)
23 ;;; outlining support for ess modes
24 (add-hook 'ess-mode-hook
25       '(lambda ()
26          (outline-minor-mode)
27          (setq outline-regexp "\\(^#\\{4,5\\} \\)\\|\\(^[a-zA-Z0-9_\.]+ ?<- ?function\\)")
28          (defun outline-level ()
29            (cond ((looking-at "^##### ") 1)
30              ((looking-at "^#### ") 2)
31              ((looking-at "^[a-zA-Z0-9_\.]+ ?<- ?function(.*{") 3)
32              (t 1000)))
33          ))
34 (add-hook 'ess-mode-hook
35           '(lambda ()
36              (local-set-key (kbd "C-c C-R")
37                             'dla/ess-region-remote-eval)))