Skip to content

Instantly share code, notes, and snippets.

@cxa
Last active October 4, 2023 07:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cxa/e6a197019f36ff0d285bffb13921be4a to your computer and use it in GitHub Desktop.
Save cxa/e6a197019f36ff0d285bffb13921be4a to your computer and use it in GitHub Desktop.
Enable `eglot` for org babel code editor
(require 'eglot) ;; avoid `eglot--lookup-mode' being void
(defun sloth/org-babel-edit-prep (info)
(setq buffer-file-name (or (alist-get :file (caddr info))
"org-src-babel.tmp"))
(eglot-ensure))
(advice-add 'org-edit-src-code
:before (defun sloth/org-edit-src-code/before (&rest args)
(when-let* ((element (org-element-at-point))
(type (org-element-type element))
(lang (org-element-property :language element))
(mode (org-src-get-lang-mode lang))
((eglot--lookup-mode mode))
(edit-pre (intern
(format "org-babel-edit-prep:%s" lang))))
(if (fboundp edit-pre)
(advice-add edit-pre :after #'sloth/org-babel-edit-prep)
(fset edit-pre #'sloth/org-babel-edit-prep)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment