org-babel: загружать (все) языки по требованию

Я большой поклонник поддержки как можно большего количества языков. В частности, я не хотел бы исключать поддержку какого-либо конкретного языка из org-babel . (Кто знает? Может быть, мне нужно будет написать Fortran в один прекрасный день.) Однако я знаю, что загрузка поддержки всех доступных языков сразу может быть болезненной.

Есть ли способ для org-babel загружать поддержку языков, когда я действительно пытаюсь использовать блок кода с этим языком?

EDIT: org-babel-execute-src-block , вероятно, является функцией, которая должна быть рекомендована.

6

1 ответы

Кажется, это делает это для меня:

#+BEGIN_SRC emacs-lisp
(defadvice org-babel-execute-src-block (around load-language nil activate)
  "Load language if needed"
  (let ((language (org-element-property :language (org-element-at-point))))
    (unless (cdr (assoc (intern language) org-babel-load-languages))
      (add-to-list 'org-babel-load-languages (cons (intern language) t))
      (org-babel-do-load-languages 'org-babel-load-languages org-babel-load-languages))
    ad-do-it))
#+END_SRC

По крайней мере, он работал для gnuplot (после установки пакета gnuplot и исполняемого файла).

4
добавлено
Это круто! Благодаря!
добавлено автор PythonNut, источник