Added Babel diff function.
This commit is contained in:
parent
c970a86cd6
commit
0c94f4f92d
|
@ -138,5 +138,15 @@
|
||||||
"#+title: %<%Y-%m-%d>\n#+filetags: %<:%Y:%B:>\n"
|
"#+title: %<%Y-%m-%d>\n#+filetags: %<:%Y:%B:>\n"
|
||||||
("Goals")))))
|
("Goals")))))
|
||||||
|
|
||||||
|
(defun org-babel-execute:diff (body params)
|
||||||
|
"Applies diff patches. Use with care.
|
||||||
|
See https://emacs.stackexchange.com/questions/63517/org-mode-evaluate-diff-code-block"
|
||||||
|
(with-temp-buffer
|
||||||
|
(insert body "\n")
|
||||||
|
(shell-command-on-region (point-min) (point-max) "patch --strip=1" "*patch*")
|
||||||
|
(prog1
|
||||||
|
(with-current-buffer "*patch*" (buffer-string))
|
||||||
|
(kill-buffer "*patch*"))))
|
||||||
|
|
||||||
;(add-hook! 'org-mode-hook #'solaire-mode)
|
;(add-hook! 'org-mode-hook #'solaire-mode)
|
||||||
;(add-hook 'mixed-pitch-mode-hook #'solaire-mode-reset)
|
;(add-hook 'mixed-pitch-mode-hook #'solaire-mode-reset)
|
||||||
|
|
|
@ -451,7 +451,6 @@ literate
|
||||||
(default +bindings +smartparens)
|
(default +bindings +smartparens)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
** Additional Keybinds
|
** Additional Keybinds
|
||||||
Keybinds custom keybinds can be located at =$DOOMDIR/+keybinds.el=.
|
Keybinds custom keybinds can be located at =$DOOMDIR/+keybinds.el=.
|
||||||
|
|
||||||
|
@ -749,6 +748,57 @@ We'll
|
||||||
|
|
||||||
**** Keybinds
|
**** Keybinds
|
||||||
These were declared in [[id:f9ffe9df-a417-45c4-8bf2-6ee655140648][Roam Keybinds]] section above. See there for more details.
|
These were declared in [[id:f9ffe9df-a417-45c4-8bf2-6ee655140648][Roam Keybinds]] section above. See there for more details.
|
||||||
|
*** Babel stuff
|
||||||
|
Babel execute can be tweaked per the syntax see orgmode docs [[https://orgmode.org/manual/Evaluating-Code-Blocks.html][here]].
|
||||||
|
|
||||||
|
**** Diff
|
||||||
|
The snippet below is largely pulled from John Kitchin [[https://emacs.stackexchange.com/questions/63517/org-mode-evaluate-diff-code-block/63520#63520][Stackexchange Post]].
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp :tangle "+orgmode.el" :noweb no-export :comments no
|
||||||
|
(defun org-babel-execute:diff (body params)
|
||||||
|
"Applies diff patches. Use with care.
|
||||||
|
See https://emacs.stackexchange.com/questions/63517/org-mode-evaluate-diff-code-block"
|
||||||
|
(with-temp-buffer
|
||||||
|
(insert body "\n")
|
||||||
|
(shell-command-on-region (point-min) (point-max) "patch --strip=1" "*patch*")
|
||||||
|
(prog1
|
||||||
|
(with-current-buffer "*patch*" (buffer-string))
|
||||||
|
(kill-buffer "*patch*"))))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
As an sample:
|
||||||
|
|
||||||
|
#+begin_example
|
||||||
|
#+BEGIN_SRC org :tangle a.org
|
||||||
|
1
|
||||||
|
2
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+BEGIN_SRC org :tangle b.org
|
||||||
|
1
|
||||||
|
3
|
||||||
|
#+END_SRC
|
||||||
|
#+begin_src diff
|
||||||
|
--- a.org 2021-02-21 20:20:27.000000000 -0500
|
||||||
|
+++ b.org 2021-02-21 20:20:27.000000000 -0500
|
||||||
|
@@ -1,2 +1,2 @@
|
||||||
|
1
|
||||||
|
-2
|
||||||
|
+3
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
: patching file a.org
|
||||||
|
|
||||||
|
#+BEGIN_SRC sh
|
||||||
|
cat a.org
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
| 1 |
|
||||||
|
| 3 |
|
||||||
|
#+end_example
|
||||||
|
|
||||||
*** Solaire
|
*** Solaire
|
||||||
#+begin_src emacs-lisp :tangle "+orgmode.el" :noweb no-export :comments no
|
#+begin_src emacs-lisp :tangle "+orgmode.el" :noweb no-export :comments no
|
||||||
;(add-hook! 'org-mode-hook #'solaire-mode)
|
;(add-hook! 'org-mode-hook #'solaire-mode)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user