bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#13109: 24.1; flyspell highlights words containing curly quotes which


From: Reuben Thomas
Subject: bug#13109: 24.1; flyspell highlights words containing curly quotes which ispell-buffer accepts
Date: Fri, 3 May 2013 21:48:27 +0100

On 3 May 2013 21:20, Reuben Thomas <address@hidden> wrote:
On 3 May 2013 21:15, Reuben Thomas <address@hidden> wrote:
On 11 December 2012 23:07, Juri Linkov <address@hidden> wrote:
>> `ispell-aspell-find-dictionary' reads the ispell data from
This fix means that aspell developers added a mapping from
2019 (RIGHT SINGLE QUOTATION MARK) to 27 (APOSTROPHE)
in their character `compat' table.  This explains why
`ispell-buffer' does work while `ispell-word' and `flyspell' don't.

`ispell-word' and `flyspell' still use the information from
/usr/lib/aspell/en.dat to parse the buffer to find the next word to check,
and fail because they don't use the `compat' mappings from iso-8859-1.cmap.
 
This finally annoyed me sufficiently that I decided I wanted a workaround. Fortunately, this is easy, as it merely involves reapplying a version of the fix I used to use when ispell-buffer didn't work. I now have the following line in my custom.el:

 '(ispell-local-dictionary-alist (quote (("british" "[[:alpha:]]" "[^[:alpha:]]" "'’" t ("-d" "en_GB") nil utf-8))))

I've copied the default settings and added a curly single quote to the list of permitted "other characters". I imagine one can do the same for other languages. It's ugly (principally because it copies rather than overwriting information) but that information (the other entries in the record) doesn't change often, so it'll do until a more comprehensive solution is applied.

Belay that, it doesn't work. It seems I have to type a new word for flyspell to complain; merely passing the cursor over an old one (which suffices to remove a highlight in a word that has been added to the dictionary) does not suffice.

If anyone can offer a functioning workaround, I'd be most grateful.

I read the documentation for ispell-dictionary-alist more carefully, and came up with:

 '(ispell-local-dictionary-alist (quote (("british" "[[:alpha:]]" "[^[:alpha:]]" "['’]" t ("-d" "en_GB") nil utf-8))))

where I made the "others" character set a character class.

I checked the aspell command actually being run (with "ps") to ensure that it is indeed using "-d en_GB", and if I change the second argument to the (bizarre) setting of "fr_FR", this is used, so my settings in ispell-local-dictionary-alist are being used. If I run ispell-get-otherchars, I get

['’]

as expected. If I run "(looking-at (ispell-get-otherchars))" while sitting on a curly quote, I get:

t

Actually, now I see something weird is happening. I type:

"didn’", i.e. "didn" followed by a curly quote, and the word is highlighted as misspelt. If I then type "t" to finish the word, it is unhighlighted, after a pause.

Is there some other part of flyspell that is more rough-and-ready which I also have to tweak?

--
http://rrt.sc3d.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]