diff options
author | Yuchen Pei <id@ypei.org> | 2023-06-24 13:41:13 +1000 |
---|---|---|
committer | Yuchen Pei <id@ypei.org> | 2023-06-24 13:41:13 +1000 |
commit | e8267b4b165f6a6a086f4a9786e9df8ffe31d55c (patch) | |
tree | e72d5e02e0a61eed2e8c439f4c96506e24610629 /emacs/.emacs.d/lisp | |
parent | 9cc73b30c269cbfa35feed46ee8805ee5a4d2ef0 (diff) |
Enhancements for org and elisp
- org: adding an :after advice to org-insert-structure-template so
that it goes into editing immediately
- elisp: C-M-x evals a region when region is active
Diffstat (limited to 'emacs/.emacs.d/lisp')
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-buffer.el | 1 | ||||
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-org.el | 8 | ||||
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-prog.el | 8 |
3 files changed, 17 insertions, 0 deletions
diff --git a/emacs/.emacs.d/lisp/my/my-buffer.el b/emacs/.emacs.d/lisp/my/my-buffer.el index 63b16be..9c7da4a 100644 --- a/emacs/.emacs.d/lisp/my/my-buffer.el +++ b/emacs/.emacs.d/lisp/my/my-buffer.el @@ -104,6 +104,7 @@ With two prefixes: create a buffer of the chosen major mode." buffer-create-function is `my-buffer-create-scratch'.") (defun my-read-major-mode () + "Read a major-mode in a prompt" (intern (completing-read "Major mode: " diff --git a/emacs/.emacs.d/lisp/my/my-org.el b/emacs/.emacs.d/lisp/my/my-org.el index 28c5354..9411f72 100644 --- a/emacs/.emacs.d/lisp/my/my-org.el +++ b/emacs/.emacs.d/lisp/my/my-org.el @@ -1013,5 +1013,13 @@ When BLOCK-REGEXP is non-nil, use this regexp to find blocks." (interactive "p") (my-org-vote-up (- points))) +;; used to add advice to `org-insert-structure-template'. +(require 'my-buffer) +(defun my-org-edit-special (type) + (when (equal type "src") + (insert (string-remove-suffix + "-mode" (prin1-to-string (my-read-major-mode))))) + (org-edit-special)) + (provide 'my-org) ;;; my-org.el ends here diff --git a/emacs/.emacs.d/lisp/my/my-prog.el b/emacs/.emacs.d/lisp/my/my-prog.el index 309df2e..e38a866 100644 --- a/emacs/.emacs.d/lisp/my/my-prog.el +++ b/emacs/.emacs.d/lisp/my/my-prog.el @@ -434,5 +434,13 @@ left and the source buffer on the right. (unless (derived-mode-p 'haskell-mode 'c-mode 'c++-mode) (eglot-format-buffer)))) +;;; lisp +(defun my-eval-defun-or-region (&optional arg) + "Call `eval-region' if region is active, otherwise call `eval-defun'" + (interactive "P") + (if (region-active-p) + (eval-region (region-beginning) (region-end) t) + (eval-defun arg))) + (provide 'my-prog) ;;; my-prog.el ends here |