org-babel: chargez toutes les langues à la demande

Je suis un grand fan de supporter autant de langues que possible. En particulier, je ne voudrais pas exclure de org-babel la prise en charge d’une langue en particulier. (Qui sait? Peut-être aurai-je besoin d'écrire du Fortran un jour.) Cependant, je sais que le chargement du support pour toutes les langues disponibles à la fois peut être pénible.

Existe-t-il un moyen pour org-babel de charger la prise en charge des langues lorsque j'essaie réellement d'utiliser un bloc de code avec cette langue?

EDIT: org-babel-execute-src-block est probablement la fonction à conseiller.

6

1 Réponses

Cela semble le faire pour moi:

#+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

Au moins, cela a fonctionné pour gnuplot (après avoir installé le paquet gnuplot et son exécutable).

4
ajouté
C'est génial! Merci!
ajouté l'auteur PythonNut, source