all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: rms@gnu.org
Cc: m.eliachevitch@posteo.de, emacs-devel@gnu.org
Subject: Re: jinx
Date: Fri, 31 Mar 2023 09:51:45 +0300	[thread overview]
Message-ID: <83sfdl2z26.fsf@gnu.org> (raw)
In-Reply-To: <E1pi6OB-0007Ci-MU@fencepost.gnu.org> (message from Richard Stallman on Fri, 31 Mar 2023 00:29:23 -0400)

> From: Richard Stallman <rms@gnu.org>
> Cc: emacs-devel@gnu.org
> Date: Fri, 31 Mar 2023 00:29:23 -0400
> 
>   > But as far as I know it doesn't have yet the ability to check and
>   > list the spelling mistakes in the entire buffer. Therefore, I will
>   > probably still be using ispell-buffer to iterate through all
>   > spelling errors.
> 
> It was pointed out that there is a way to do this.  Of course, if we
> install it in Emacs we could adjust the calling conventions however we
> think users will like.  We could make `ispell-buffer' call jinx
> if that's what we want.
> 
> Given that, do you still think you would have a need for the existing
> `ispell-buffer' that uses ispell.el, if jinx were always available?

We cannot assume that "jinx is always available", since it requires
Emacs to be linked against the enchant library.

Anyway, after looking at jinx, I must say that I don't see why we
should replace ispell and flyspell with jinx.  From my POV, ispell and
flyspell provide all the required spell-checking functionalities:

  . spell-check a word
  . spell-check a region
  . spell-check the entire buffer
  . spell-check comments and strings in a prog-mode buffer
  . spell-check as you type

jinx spell-checks the visible portion of the window.  I don't see why
we would need that.  Suppose I scroll the window by 2 lines: why would
I want the new visible portion to be spell-checked again, when the
overlap with the last check is so large?  In any case, if someone
wants a handy command to spell-check only the part that is currently
visible in the window, we can add such a command to ispell.el.  (Btw,
jinx relies on window-end for this, and window-end is a problematic
function which cannot be trusted.)

Another feature of jinx is the ability to skip some buffer text, e.g.,
relying on font-lock faces or user-defined regexps to identify the
parts that should be skipped.  We have similar features:
spell-checking of comments and strings, but if that is not enough, we
could extend these capabilities in ispell and flyspell by simple
enough additions.

All those are minor extensions of the existing spell-checking
capabilities that require no deep changes in the infrastructure and
documentation, which have been stable and useful for many years.

Having jinx as an ELPA package is fine, of course.  Likewise, it's
fine if someone wants to work on redesigning and reimplementing the
low level of ispell.el so that it could optionally use libenchant if
that is available.  But I see no reason to throw out the window the
whole spelling infrastructure we have and replacing it with what jinx
provides.  That would require not just coding and testing, but also
rewriting the manual and will require people to re-learn how they use
spell-checking features in Emacs.  I see no justification for that,
especially since jinx doesn't bring any new spell-checking technology
to Emacs -- libenchant uses those same spell-checking programs, aspell
and hunspell, that we have been using for ages.

As an aside, a technology I would like to see in Emacs is grammar
checking.  Last I looked, there are no free grammar-checking libraries
or services out there, even just for the English language.  But if
that's no longer true, then adding such capabilities to Emacs will be
very welcome, I think, since word-based spell-checking is clearly not
enough these days.



  reply	other threads:[~2023-03-31  6:51 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-29  3:00 jinx Richard Stallman
2023-03-29  9:02 ` jinx Philip Kaludercic
2023-03-31  4:29   ` jinx Richard Stallman
2023-03-31  7:15     ` jinx Philip Kaludercic
2023-04-01  3:11       ` jinx Richard Stallman
2023-04-01  6:01         ` jinx Eli Zaretskii
2023-04-01 12:43           ` jinx Peter Oliver
2023-04-01 13:02             ` jinx Eli Zaretskii
2023-04-01 13:21               ` jinx Peter Oliver
2023-04-01  8:54         ` jinx Augusto Stoffel
2023-03-29 22:46 ` jinx Michael Eliachevitch
2023-03-30  1:02   ` jinx João Pedro
2023-03-30  5:23   ` jinx Eli Zaretskii
2023-03-31  4:29   ` jinx Richard Stallman
2023-03-31  6:51     ` Eli Zaretskii [this message]
2023-03-31  7:10       ` jinx Gregory Heytings
2023-03-31  7:15         ` Grammar checking (was: jinx) Eli Zaretskii
2023-03-31  7:47           ` Grammar checking Philip Kaludercic
2023-03-31  8:09             ` Gregory Heytings
2023-03-31  8:38               ` Philip Kaludercic
2023-03-31  9:02                 ` Gregory Heytings
2023-03-31 11:37               ` Lynn Winebarger
2023-03-31 12:01                 ` Gregory Heytings
2023-03-31 12:45                   ` Peter Oliver
2023-03-31 15:29                     ` Philip Kaludercic
2023-03-31 17:00                       ` Peter Oliver
2023-03-31 12:54               ` Peter Oliver
2023-03-31 13:09                 ` Gregory Heytings
2023-03-31 11:23             ` Eli Zaretskii
2023-03-31 12:12               ` Peter Oliver
2023-03-31 15:25               ` Philip Kaludercic
2023-03-31  8:40           ` Nasser Alkmim
2023-03-31  8:45             ` Michael Eliachevitch
2023-03-31 13:44               ` Felician Nemeth
2023-03-31 16:03               ` Peter Oliver
2023-03-31  8:48             ` Gregory Heytings
2023-04-01 12:59               ` Lynn Winebarger
2023-04-01 13:18                 ` Gregory Heytings
2023-04-01 13:37                 ` Eli Zaretskii
2023-04-01 17:30                   ` Lynn Winebarger
2023-04-01 17:35                     ` Eli Zaretskii
2023-04-02  3:12                 ` Richard Stallman
2023-04-02 15:24                   ` Lynn Winebarger
2023-04-03  3:05                     ` Richard Stallman
2023-04-03  3:05                     ` Richard Stallman
2023-04-06 12:29                       ` Lynn Winebarger
2023-04-08  3:28                         ` Richard Stallman
2023-04-08 13:33                           ` Lynn Winebarger
2023-04-08 13:23                             ` Eli Zaretskii
2023-04-08  3:28                         ` Richard Stallman
2023-04-08 15:20                           ` Lynn Winebarger
2023-04-19  5:13                             ` Richard Stallman
2023-04-09  9:02                           ` Philip Kaludercic
2023-04-09 12:31                             ` Lynn Winebarger
2023-04-22  2:22                               ` Richard Stallman
2023-04-23  2:25                                 ` Richard Stallman
2023-04-23 14:14                                 ` Lynn Winebarger
2023-04-08  3:28                         ` Richard Stallman
2023-04-08 14:23                           ` Lynn Winebarger
2023-03-31 10:59             ` Eli Zaretskii
2023-04-02  3:11               ` Richard Stallman
2023-04-02  3:40                 ` Emanuel Berg
2023-03-31 16:20           ` Grammar checking (was: jinx) João Távora
2023-04-05 13:05         ` jinx Rudolf Adamkovič
2023-04-05 18:37           ` jinx Philip Kaludercic
2023-03-31 18:33       ` jinx Arash Esbati
2023-03-31 19:11         ` jinx Eli Zaretskii
2023-03-31 19:35           ` jinx Arash Esbati
2023-04-01  7:20             ` jinx Eli Zaretskii
2023-04-01  7:42               ` jinx Arash Esbati
2023-04-01  8:13                 ` jinx Eli Zaretskii
2023-04-02 11:29                   ` jinx Arash Esbati
2023-04-03 12:32                   ` jinx Michael Heerdegen
2023-04-03 13:51                     ` jinx Michael Eliachevitch
2023-04-03 14:26                     ` jinx Eli Zaretskii
2023-04-03 15:13                       ` jinx Michael Eliachevitch
2023-04-04  2:56                         ` jinx Richard Stallman
2023-04-04 12:27                           ` jinx Michael Heerdegen
2023-04-05  2:35                             ` jinx Richard Stallman
2023-04-05  9:02                               ` jinx Philip Kaludercic
2023-04-05 10:51                                 ` jinx Michael Heerdegen
2023-04-05 11:25                                   ` jinx Michael Heerdegen
2023-04-05 11:55                                     ` jinx Eli Zaretskii
2023-04-05 13:17                                       ` jinx Michael Heerdegen
2023-04-05  2:34                           ` jinx Richard Stallman
2023-04-05  7:58                             ` jinx Po Lu
2023-04-05  8:01                             ` jinx Arash Esbati
2023-04-05  8:15                               ` jinx Emanuel Berg
2023-04-01 13:11               ` jinx Lynn Winebarger
2023-04-01  8:32             ` jinx Augusto Stoffel
2023-04-01  8:29         ` jinx Augusto Stoffel
2023-04-01 11:21           ` jinx Eli Zaretskii
2023-04-01 11:39             ` jinx Augusto Stoffel
2023-04-01 11:54               ` jinx Eli Zaretskii
2023-04-01 12:32                 ` jinx Augusto Stoffel
2023-04-01 12:57                   ` jinx Eli Zaretskii
2023-04-01  3:11       ` jinx Richard Stallman
2023-04-01  5:56         ` jinx Eli Zaretskii
2023-04-01  8:35           ` jinx Augusto Stoffel
2023-04-01  8:25       ` jinx Emanuel Berg
  -- strict thread matches above, loose matches on Subject: below --
2023-04-19 22:09 jinx Gustavo Barros

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=83sfdl2z26.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=m.eliachevitch@posteo.de \
    --cc=rms@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.