]> git.donarmstrong.com Git - lib.git/blobdiff - emacs_el/configuration/don-configuration.org
ess configuration is now in don-configuration.org
[lib.git] / emacs_el / configuration / don-configuration.org
index aea3448e2b249a3d15ee729b3e70cb893100115c..feb124ddc35c1cd6ac281feb12d6daf786410640 100644 (file)
@@ -532,7 +532,36 @@ value, scrolling continues until there is no more output.
 #+BEGIN_SRC emacs-lisp
   (use-package ess
     :ensure t
-    :config (require 'ess_configuration))
+    :config
+    (defun ess-change-directory (path)
+      "Set the current working directory to PATH for both *R* and Emacs."
+      (interactive "DDirectory to change to: ")
+    
+      (when (file-exists-p path)
+        (ess-command (concat "setwd(\"" path "\")\n"))
+        ;; use file-name-as-directory to ensure it has trailing /
+        (setq default-directory (file-name-as-directory path))))
+    (add-hook 'ess-mode-hook 'flyspell-prog-mode)
+    ;; outlining support for ess modes
+    (add-hook
+     'ess-mode-hook
+     '(lambda ()
+        (outline-minor-mode)
+        (setq outline-regexp "\\(^#\\{4,5\\} \\)\\|\\(^[a-zA-Z0-9_\.]+ ?<- ?function\\)")
+        (defun outline-level ()
+          (cond ((looking-at "^##### ") 1)
+                ((looking-at "^#### ") 2)
+                ((looking-at "^[a-zA-Z0-9_\.]+ ?<- ?function(.*{") 3)
+                (t 1000)))
+        ))
+    (add-hook 'ess-mode-hook
+              '(lambda ()
+                 (local-set-key (kbd "C-c C-R")
+                                'dla/ess-region-remote-eval)))
+
+    ;; Don't restore history or save workspace image
+    '(inferior-R-args "--no-restore-history --no-save")
+    )
 #+END_SRC
 
 ** Rainbowmode