Re: [O] Redshank gets loaded when exporting ELisp code blocks to HTML!?

2014-05-02 Thread Sebastien Vauban
Hello Sacha and Nicolas,

Answering after a (too) long time with very intermittent Internet
access...

Sacha Chua wrote:
 Sebastien Vauban writes:

 Why are Emacs Lisp minor modes loaded for exporting the Org document
 to HTML?  If not necessary, this seems suboptimal (performance-wise).

 org-export-format-source-code-or-example loads the mode associated
 with the language in org-src-lang-modes in order to fontify the
 block.

Only to fontify, not to indent, right?

 You could check if org-export-current-backend is nil before
 loading anything that you want to use only interactively.

 Maybe like so?

   (add-hook 'emacs-lisp-mode-hook (lambda ()
 (unless org-export-current-backend
   (turn-on-redshank-mode

This seems to be a solution (although I did not test it), but it seems
as well impractical: I'd have to chase almost all minor modes of all
languages...

Can't we assume that the major modes have all the information to fontify
the code blocks, and -- if yes -- have a manner to forbid loading all
the minor modes at once (as, then, they'd be completely useless for the
export process)?

Best regards,
  Seb

-- 
Sebastien Vauban




[O] Redshank gets loaded when exporting ELisp code blocks to HTML!?

2014-04-07 Thread Sebastien Vauban
Hello,

Incidentally, because I had removed `paredit.el' from my load-path,
I could not export any Org file anymore which contained just one simple
`emacs-lisp' code block, such as:

--8---cut here---start-8---
* ECM

Type:

#+begin_src emacs-lisp
M-x load-library RET ox-beamer RET
#+end_src
--8---cut here---end---8---

I found the culprit lines being:

--8---cut here---start-8---
  ;; Common Lisp editing extensions
  (autoload 'redshank-mode redshank
Minor mode for restructuring Lisp code (i.e., refactoring). t)

  (add-hook 'emacs-lisp-mode-hook 'turn-on-redshank-mode)
--8---cut here---end---8---

because:

- Redshank requires ParEdit, and
- ParEdit was not found anymore.

What I don't understand is:

Why are Emacs Lisp minor modes loaded for exporting
the Org document to HTML?

If not necessary, this seems suboptimal (performance-wise).

Is it really necessary?  I don't think so, because if I comment the
Redshank activation, then I can still export to HTML as before.  I just
loose the editing features in my real Emacs Lisp buffers.

So, is there a way to disactivate those minor modes during export?

Best regards,
  Seb

-- 
Sebastien Vauban




Re: [O] Redshank gets loaded when exporting ELisp code blocks to HTML!?

2014-04-07 Thread Sacha Chua
Sebastien Vauban sva-n...@mygooglest.com
writes:

Hello, Sebastien!

 Why are Emacs Lisp minor modes loaded for exporting
 the Org document to HTML?
 If not necessary, this seems suboptimal (performance-wise).

org-export-format-source-code-or-example loads the mode associated with
the language in org-src-lang-modes in order to fontify the block. You
could check if org-export-current-backend is nil before loading anything
that you want to use only interactively.

Maybe like so?

  (add-hook 'emacs-lisp-mode-hook (lambda ()
(unless org-export-current-backend
  (turn-on-redshank-mode

Sacha




Re: [O] Redshank gets loaded when exporting ELisp code blocks to HTML!?

2014-04-07 Thread Nicolas Goaziou


Hello,

Sebastien Vauban sva-news-D0wtAvR13HarG/idocf...@public.gmane.org
writes:

 What I don't understand is:

 Why are Emacs Lisp minor modes loaded for exporting
 the Org document to HTML?

As a final filter, `set-auto-mode' is called in order to indent the
buffer properly. See `org-html-final-function'. When the major mode
switch happens, all associated minor modes are installed.

It also happens when exporting to a temporary buffer.

Of course, this doesn't explain why Emacs lisp minor modes are attached
to an HTML buffer. I guess there is something funny happening with
`set-auto-mode'.

 If not necessary, this seems suboptimal (performance-wise).

 Is it really necessary?

Not really. We could be more careful when generating code, i.e., 
we could generate code already indented.

Another option is to change major mode only when `org-html-indent' is
non-nil.

 So, is there a way to disactivate those minor modes during export?

Not at the moment.


Regards,

-- 
Nicolas Goaziou




Re: [O] Redshank gets loaded when exporting ELisp code blocks to HTML!?

2014-04-07 Thread Nicolas Goaziou


Nicolas Goaziou n.goaz...@gmail.com writes:

Correcting myself,

 Sebastien Vauban sva-news-D0wtAvR13HarG/idocf...@public.gmane.org
 writes:

 What I don't understand is:

 Why are Emacs Lisp minor modes loaded for exporting
 the Org document to HTML?

 As a final filter, `set-auto-mode' is called in order to indent the
 buffer properly. See `org-html-final-function'. When the major mode
 switch happens, all associated minor modes are installed.

Err, I'm wide of the mark.  Sacha is right.


Regards,

-- 
Nicolas Goaziou