Subject: 24.0.93; fly-spell-buffer should init flyspell-generic-check-word-predicate
From: Jambunathan K <[email-masked]>
To: [email-masked]
Date: Mon, 13 Feb 2012 23:51:35 +0530
List-Id: <debbugs-submit.debbugs.gnu.org>

Summary: fly-spell-buffer should init
flyspell-generic-check-word-predicate

Create a flyspell.org with the following contents:

--8<---------------cut here---------------start------------->8---
* Testing

#+BEGIN_SRC emacs-lisp
  (defun msg ())
#+END_SRC
--8<---------------cut here---------------end--------------->8---

Install the following advice for org-mode buffers:

--8<---------------cut here---------------start------------->8---
(defadvice org-mode-flyspell-verify
  (after my-org-mode-flyspell-verify activate)
  "Don't spell check src blocks."
  (setq ad-return-value
	(and ad-return-value
	     (not (org-in-src-block-p))
	     (not (member 'org-block-begin-line (text-properties-at (point))))
	     (not (member 'org-block-end-line (text-properties-at (point)))))))

;; (ad-deactivate 'org-mode-flyspell-verify)
;; (ad-activate 'org-mode-flyspell-verify)
--8<---------------cut here---------------end--------------->8---

Experiment:1
============

C-x C-f flyspell.org
M-x fly-spell-buffer    

Note that there *are* spelling errors reported within babel block ie.,
installed advice is *not* honored.

M-: flyspell-generic-check-word-predicate
=> nil

Experiment:2
============

;; current buffer is flyspell.org
C-x k
C-x C-f flyspell.org

;; turn on flyspell-mode
M-x flyspell-mode

Note that there are no spelling errors reported in the babel block. This
behaviour is along expected lines.

M-: flyspell-generic-check-word-predicate
=> org-mode-flyspell-verify

;; turn off flyspell-mode

M-: flyspell-generic-check-word-predicate
=> org-mode-flyspell-verify

Additional Note:
===============

Note that there are no known performance issues when flyspell-mode is
persistently turned on in org mode buffers. So an informed user is
likely to have flyspell-mode *off* and run flyspell-buffer as a one-off
checking in org mode buffers. 

Not sure what the behaviour of flyspelling on *large* buffers.

In GNU Emacs 24.0.93.1 (i386-mingw-nt5.1.2600)
 of 2012-01-30 on MARVIN
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.6) --no-opt --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-3.0.9/include --ldflags
 -LD:/devel/emacs/libs/gnutls-3.0.9/lib'