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




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

2014-04-07 Thread Nicolas Goaziou


Nicolas Goaziou  writes:

Correcting myself,

> Sebastien Vauban 
> 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




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

2014-04-07 Thread Nicolas Goaziou


Hello,

Sebastien Vauban 
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 Sacha Chua
Sebastien Vauban 
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




[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