From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Davison Subject: Re: [babel] Execute checks before trying to load Babel languages Date: Wed, 09 Feb 2011 15:29:50 +0000 Message-ID: References: <80oc6l9x6x.fsf@missioncriticalit.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from [140.186.70.92] (port=49626 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PnBzX-0000EA-GR for emacs-orgmode@gnu.org; Wed, 09 Feb 2011 10:30:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PnBzT-00084m-Ju for emacs-orgmode@gnu.org; Wed, 09 Feb 2011 10:30:00 -0500 Received: from mail-wy0-f169.google.com ([74.125.82.169]:38144) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PnBzT-00084b-CV for emacs-orgmode@gnu.org; Wed, 09 Feb 2011 10:29:59 -0500 Received: by wyj26 with SMTP id 26so302058wyj.0 for ; Wed, 09 Feb 2011 07:29:58 -0800 (PST) In-Reply-To: <80oc6l9x6x.fsf@missioncriticalit.com> (=?utf-8?Q?=22S=C3=A9b?= =?utf-8?Q?astien?= Vauban"'s message of "Wed, 09 Feb 2011 14:03:50 +0100") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: =?utf-8?Q?S=C3=A9bastien?= Vauban Cc: emacs org-mode mailing list Hey Seb, > I am sharing my .emacs file, and this is beginning to cause problems with > people who don't have the same environment as I do. In particular with the > following: > > #+begin_src emacs-lisp > (org-babel-do-load-languages > 'org-babel-load-languages > '( > (C . t) > (R . t) > (calc . t) > (ditaa . t) [...] > (sqlite . t))) > #+end_src > A couple of ideas: 1. I use this, which loads all languages supported in the current version of Org. dan/org-babel-list-supported-languages is a personal function, code below. #+begin_src emacs-lisp (setq org-babel-load-languages (mapcar (lambda (lang) (cons lang t)) (dan/org-babel-list-supported-languages))) (org-babel-do-load-languages 'org-babel-load-languages org-babel-load-languages) #+end_src [...] > In fact, this is much more general than checking the Org-version: it addresses > as well installed packages such as > > - Rterm (R and ess-mode) > - ditaa (requires =sudo aptitude install openjdk-6-jre=) > - gnuplot (requires gnuplot-mode) I don't think any of these are required in order to load the language. They should only be required when executing a block (and in the case of 'ess, when :session is used) > - ledger (requires that =ob-ledger= is found...) > - org (requires that =ob-org= is found...) 2. Seeing as you're sharing config files, maybe the solution is to accept that some bits of the configuration are by their nature specific to a paticular user and not robust across different installations. So in your main shared config file you could make a conservative decision to activate only emacs-lisp, or a set of core languages that you are confident will be present on your colleagues' systems. Then in addition you would have your own personal config file that gets loaded after the shared config, which activates your own languages. Dan #+begin_src emacs-lisp (require 'cl) (defun dan/org-babel-list-supported-languages () (interactive) (sort (set-difference (mapcar (lambda (s) (intern (progn (string-match "^ob-\\(.+\\)\.el$" s) (match-string 1 s)))) (directory-files (save-window-excursion (file-name-directory (buffer-file-name (find-library "ob")))) nil "^ob-.+\.el$")) '(comint eval exp keys lob ref table tangle)) (lambda (x y) (string< (downcase (symbol-name x)) (downcase (symbol-name y)))))) #+end_src > - ruby > > Do I have to check myself for such executables in a way similar to: > > #+begin_src emacs-lisp > (when (find-exec "Rterm") > ... add R language ... > ) > > (when (file-exists-p "ob-ledger") > ... add ledger language ... > ) > #+end_src > > or could we come up with some more generic and compact solution that would > easily be usable by all of us? > > Maybe such a check should be made, by default, in every language file? > > Best regards, > Seb