all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Aleksey Cherepanov <aleksey.4erepanov@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 16800@debbugs.gnu.org, agustin.martin@hispalinux.es
Subject: bug#16800: 24.3; flyspell works slow on very short words at the end of big file
Date: Sat, 22 Feb 2014 20:02:17 +0400	[thread overview]
Message-ID: <20140222160217.GA15616@openwall.com> (raw)
In-Reply-To: <83vbw72t05.fsf@gnu.org>

On Sat, Feb 22, 2014 at 03:10:02PM +0200, Eli Zaretskii wrote:
> > Date: Sat, 22 Feb 2014 16:44:13 +0400
> > From: Aleksey Cherepanov <aleksey.4erepanov@gmail.com>
> > Cc: Agustin Martin <agustin.martin@hispalinux.es>, 16800@debbugs.gnu.org
> > 
> > Also GNU coding standards say to avoid arbitrary limits (parts 2.1
> > and 4.2).
> > http://www.gnu.org/prep/standards/standards.html
> 
> This limit is not arbitrary.

Anyway it is a limit that could be avoided.

> > > > > I tried to patch flyspell-word-search-backward and
> > > > > flyspell-word-search-forward functions from flyspell.el replacing
> > > > > search-backward with word-search-backward and search-forward with
> > > > > word-search-forward (perl -pe 's/\(search-/(word-search-/' ). It
> > > > > solved the problem but I do not know what it broke.
> > > 
> > > And this doesn't change behavior?  See below.
> > 
> > No, it seems that my setup works the same. See below.
> 
> Your setup _might_ work the same, especially if you don't mix
> different languages in the same buffer.  But in general, your change
> does affect behavior.

I mix languages. I am pretty sure that my setup works the same.

BTW solution around reduction of jump points does not not affect
faces: "nd" or "badnd" at the end of "good badnd good " does not call
spell check on the first "badnd".

> > The difference is in word bounds. We are in trouble if flyspell's word
> > on its ends does not have ends of emacs' word. If flyspell's word has
> > ends of emacs' word on its ends and even contain them inside then we
> > are ok (try to search "a b" over "aa bb a b aa bb"). So could ends of
> > flyspell's word do not match with ends of emacs' word?
> 
> Yes, definitely.  See what flyspell-get-word does to find where the
> word begins and where it ends.  Flyspell's "words" are
> language-sensitive, whereas Emacs's words are not.

I saw this function.

Emacs words are language sensitive too. Emacs jumps through all ends
of words from RU and EN languages even if the words are not separated.

Example:
Word of 3 parts: English "asdf", Russian "фыва" (execute-kbd-macro
(kbd "C-q 02104 RET C-q 02113 RET C-q 02062 RET C-q 02060 RET")),
English "asdf".

asdfфываasdf
^   ^   ^   ^
b   b   b
    f   f   f

M-b and C-M-r \< jumps through positions marked by b. M-f and
C-M-r \> jumps through positions marked by f. It is one word for
flyspell in my setup and in LANG=C emacs -Q.

But I do not know if it is applicable to other languages and/or other
setups. How could it be improved? Other solutions?

I'd propose as a variant to use emacs' words for flyspell and vice
versa but it would a bad idea. My emacs jumps over asdf'asdf in one
hop and similar behaviour could be done for other languages with their
respective 'otherchars' but it would be inconvenient for some users
including me (python-mode has _ as a part of word by default, both
questions how to enable it everywhere and how to disable it in
python-mode exist).

Thanks!

-- 
Regards,
Aleksey Cherepanov





  reply	other threads:[~2014-02-22 16:02 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-18 20:56 bug#16800: 24.3; flyspell works slow on very short words at the end of big file Aleksey Cherepanov
2014-02-21 10:15 ` Eli Zaretskii
2014-02-21 14:38   ` Agustin Martin
2014-02-21 15:12     ` Eli Zaretskii
2014-02-21 15:21       ` Eli Zaretskii
2014-02-22 12:44       ` Aleksey Cherepanov
2014-02-22 13:10         ` Eli Zaretskii
2014-02-22 16:02           ` Aleksey Cherepanov [this message]
2014-02-22 16:41             ` Eli Zaretskii
2014-02-22 18:55               ` Aleksey Cherepanov
2014-02-22 20:16                 ` Aleksey Cherepanov
2014-02-22 21:03                 ` Eli Zaretskii
2014-02-23  1:26                   ` Agustin Martin
2014-02-23 18:36                     ` Eli Zaretskii
2014-02-23 19:56                     ` Aleksey Cherepanov
2014-02-23 23:02                       ` Aleksey Cherepanov
2014-02-24 16:03                         ` Aleksey Cherepanov
2014-02-26 20:32                           ` Agustin Martin
2014-02-28 11:45                             ` Agustin Martin
2014-02-28 11:51                               ` Eli Zaretskii
2014-03-01 21:44                                 ` Aleksey Cherepanov
2014-03-02  3:56                                   ` Eli Zaretskii
2014-03-09 17:36                                     ` Agustin Martin
2014-03-09 18:02                                       ` Aleksey Cherepanov
2014-03-09 18:24                                         ` Eli Zaretskii
2014-02-28 23:11                               ` Aleksey Cherepanov
2014-03-01 10:33                                 ` Aleksey Cherepanov
2014-03-01 15:50                                   ` Aleksey Cherepanov
2014-03-01 21:39                                 ` Aleksey Cherepanov
2014-03-09 17:25                                 ` Agustin Martin
2015-03-06 21:46                                   ` Agustin Martin
2015-03-07  8:09                                     ` Eli Zaretskii
2014-02-23 20:39                     ` Aleksey Cherepanov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140222160217.GA15616@openwall.com \
    --to=aleksey.4erepanov@gmail.com \
    --cc=16800@debbugs.gnu.org \
    --cc=agustin.martin@hispalinux.es \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.