Stealing someone elses hard work to make babel src editing nicer + misc.
This commit is contained in:
parent
43f191ced1
commit
af44300ac7
32
config.org
32
config.org
|
@ -936,6 +936,38 @@ My spelling is atrocious, so let's get flycheck going.
|
|||
#+BEGIN_SRC emacs-lisp
|
||||
(after! org (add-hook 'org-mode-hook 'turn-on-flyspell))
|
||||
#+END_SRC
|
||||
|
||||
Now, by default, LSPs don't really function at all in ~src~ blocks.
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(cl-defmacro lsp-org-babel-enable (lang)
|
||||
"Support LANG in org source code block."
|
||||
(setq centaur-lsp 'lsp-mode)
|
||||
(cl-check-type lang stringp)
|
||||
(let* ((edit-pre (intern (format "org-babel-edit-prep:%s" lang)))
|
||||
(intern-pre (intern (format "lsp--%s" (symbol-name edit-pre)))))
|
||||
`(progn
|
||||
(defun ,intern-pre (info)
|
||||
(let ((file-name (->> info caddr (alist-get :file))))
|
||||
(unless file-name
|
||||
(setq file-name (make-temp-file "babel-lsp-")))
|
||||
(setq buffer-file-name file-name)
|
||||
(lsp-deferred)))
|
||||
(put ',intern-pre 'function-documentation
|
||||
(format "Enable lsp-mode in the buffer of org source block (%s)."
|
||||
(upcase ,lang)))
|
||||
(if (fboundp ',edit-pre)
|
||||
(advice-add ',edit-pre :after ',intern-pre)
|
||||
(progn
|
||||
(defun ,edit-pre (info)
|
||||
(,intern-pre info))
|
||||
(put ',edit-pre 'function-documentation
|
||||
(format "Prepare local buffer environment for org source block (%s)."
|
||||
(upcase ,lang))))))))
|
||||
(defvar org-babel-lang-list
|
||||
'("go" "python" "ipython" "bash" "sh"))
|
||||
(dolist (lang org-babel-lang-list)
|
||||
(eval `(lsp-org-babel-enable ,lang)))
|
||||
#+END_SRC
|
||||
**** Super agenda
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package! org-super-agenda
|
||||
|
|
Loading…
Reference in New Issue