summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--init.org119
-rw-r--r--org.org6
2 files changed, 11 insertions, 114 deletions
diff --git a/init.org b/init.org
index 4d98134..7f23382 100644
--- a/init.org
+++ b/init.org
@@ -2214,116 +2214,15 @@
#+end_src
* Programming languages
*** Elisp
-***** Functions to operate on elisp sexps a la slime or geiser
-
- #+begin_src emacs-lisp
- (defun elisp-disassemble (function)
- (interactive (list (function-called-at-point)))
- (disassemble function))
-
- (defun elisp-pp (sexp)
- (with-output-to-temp-buffer "*Pp Eval Output*"
- (pp sexp)
- (with-current-buffer standard-output
- (emacs-lisp-mode))))
-
- (defun elisp-macroexpand (form)
- (interactive (list (form-at-point 'sexp)))
- (elisp-pp (macroexpand form)))
-
- (defun elisp-macroexpand-all (form)
- (interactive (list (form-at-point 'sexp)))
- (elisp-pp (cl-macroexpand-all form)))
-
- (defun elisp-push-point-marker ()
- (require 'etags)
- (cond ((featurep 'xemacs)
- (push-tag-mark))
- (t (ring-insert find-tag-marker-ring (point-marker)))))
-
- (defun elisp-pop-found-function ()
- (interactive)
- (cond ((featurep 'xemacs) (pop-tag-mark nil))
- (t (pop-tag-mark))))
-
- (defun elisp-find-definition (name)
- "Jump to the definition of the function (or variable) at point."
- (interactive (list (thing-at-point 'symbol)))
- (cond (name
- (let ((symbol (intern-soft name))
- (search (lambda (fun sym)
- (let* ((r (save-excursion (funcall fun sym)))
- (buffer (car r))
- (point (cdr r)))
- (cond ((not point)
- (error "Found no definition for %s in %s"
- name buffer))
- (t
- (switch-to-buffer buffer)
- (goto-char point)
- (recenter 1)))))))
- (cond ((fboundp symbol)
- (elisp-push-point-marker)
- (funcall search 'find-function-noselect symbol))
- ((boundp symbol)
- (elisp-push-point-marker)
- (funcall search 'find-variable-noselect symbol))
- (t
- (message "Symbol not bound: %S" symbol)))))
- (t (message "No symbol at point"))))
-
- (defun elisp-bytecompile-and-load ()
- (interactive)
- (or buffer-file-name
- (error "The buffer must be saved in a file first"))
- (require 'bytecomp)
- ;; Recompile if file or buffer has changed since last compilation.
- (when (and (buffer-modified-p)
- (y-or-n-p (format "save buffer %s first? " (buffer-name))))
- (save-buffer))
- (let ((filename (expand-file-name buffer-file-name)))
- (with-temp-buffer
- (byte-compile-file filename t))))
-
- #+end_src
-
- Bindinging the functions above to "natural" keys in elisp buffers:
-
- #+begin_src emacs-lisp
- (defvar elisp-extra-keys
- '(
- ;; ((kbd "C-c d") 'elisp-disassemble)
- ((kbd "C-c C-m") 'elisp-macroexpand)
- ((kbd "C-c C-M") 'elisp-macroexpand-all)
- ((kbd "C-c C-c") 'compile-defun)
- ((kbd "C-c C-k") 'elisp-bytecompile-and-load)
- ((kbd "C-c C-l") 'load-file)
- ((kbd "C-c C-p") 'pp-eval-last-sexp)
- ((kbd "M-.") 'elisp-find-definition)
- ((kbd "M-,") 'elisp-pop-found-function)
- ((kbd "C-c <") 'list-callers)))
-
- (dolist (binding elisp-extra-keys)
- (let ((key (eval (car binding))) (val (eval (cadr binding))))
- (define-key emacs-lisp-mode-map key val)
- (define-key lisp-interaction-mode-map key val)))
- #+end_src
-***** Literate elisp
- #+begin_src emacs-lisp
- (use-package poly-org :ensure t)
-
- ;; (use-package org-auto-tangle
- ;; :ensure t
- ;; :hook (org-mode . org-auto-tangle-mode)
- ;; :diminish)
-
- #+end_src
-***** Some helper packages
- #+begin_SRC emacs-lisp
- (use-package edit-list :ensure t)
- (use-package package-lint :ensure t)
- #+end_SRC
-
+ #+begin_src emacs-lisp
+ (use-package edit-list :ensure t)
+ (use-package package-lint :ensure t)
+ (use-package el-spice
+ :ensure t
+ :config
+ (add-hook 'emacs-lisp-mode-hook 'el-spice-mode)
+ (add-hook 'lisp-interaction-mode-hook 'el-spice-mode))
+ #+end_src
*** Erlang
#+begin_src emacs-lisp
(use-package erlang
diff --git a/org.org b/org.org
index bd7ea50..a3015b3 100644
--- a/org.org
+++ b/org.org
@@ -148,7 +148,7 @@
"pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"))
#+end_src
-* Babel
+* Babel and literate programming
- [[http://cachestocaches.com/2018/6/org-literate-programming][Literate Programming with Org-mode]]
- [[http://howardism.org/Technical/Emacs/literate-devops.html][Literate DevOps]]
@@ -156,9 +156,7 @@
(setq org-src-window-setup 'other-window) ;; current-window
(require 'org-tempo nil t) ;; <s TAB for 9.2 and later
- ;; (use-package ob-elixir
- ;; :ensure t
- ;; :after org)
+ (use-package poly-org :ensure t)
(use-package ob-prolog
:ensure t