doc: Initial version.
[mes.git] / .dir-locals.el
1 ((nil
2   .
3   ((indent-tabs-mode . nil)
4    (eval
5     .
6     (progn
7       (let ((top (locate-dominating-file default-directory ".dir-locals.el"))))
8
9       (defun guile--manual-look-up (id mod)
10         (message "guile--manual-look-up id=%s => %s mod=%s" id (symbol-name id) mod)
11         (let ((info-lookup-other-window-flag
12                geiser-guile-manual-lookup-other-window-p))
13           (info-lookup-symbol (symbol-name id) 'scheme-mode))
14         (when geiser-guile-manual-lookup-other-window-p
15           (switch-to-buffer-other-window "*info*"))
16         (search-forward (format "%s" id) nil t))
17
18       (add-hook 'before-save-hook 'delete-trailing-whitespace nil t)
19
20       (defun guix-switch-profile (&optional profile)
21         "reset Emacs' environment by snarfing PROFILE/etc/profile"
22
23         (defun matches-in-string (regexp string)
24           "return a list of matches of REGEXP in STRING."
25           (let ((matches))
26             (save-match-data
27               (string-match "^" "")
28               (while (string-match regexp string (match-end 0))
29                 (push (or (match-string 1 string) (match-string 0 string)) matches)))
30             matches))
31
32         (interactive "fprofile: ")
33         (let* ((output (shell-command-to-string (concat "GUIX_PROFILE= /bin/sh -x " profile "/etc/profile")))
34                (exports (matches-in-string "^[+] export \\(.*\\)" output)))
35           (mapcar (lambda (line) (apply #'setenv (split-string line "="))) exports )))
36 ))))
37  (makefile-mode
38   (indent-tabs-mode . t))
39  (scheme-mode
40   .
41   ((geiser-active-implementations . (guile))
42    (eval
43     .
44     (progn
45       (defun prefix-dir-locals-dir (elt)
46         (concat (locate-dominating-file buffer-file-name ".dir-locals.el") elt))
47       (mapcar
48        (lambda (dir) (add-to-list 'geiser-guile-load-path dir))
49        (mapcar
50         #'prefix-dir-locals-dir
51         '("scripts" "guile")))))))
52   (texinfo-mode    . ((indent-tabs-mode . nil)
53                      (fill-column . 72))))