From: Eli Zaretskii <eliz@gnu.org>
To: Emanuel Berg <incal@dataswamp.org>
Cc: emacs-devel@gnu.org
Subject: Re: auto-detect multiple languages -- ispell-detect.el
Date: Sun, 04 Aug 2024 08:09:12 +0300 [thread overview]
Message-ID: <86r0b4ub5z.fsf@gnu.org> (raw)
In-Reply-To: <87v80hgyzy.fsf@dataswamp.org> (message from Emanuel Berg on Sat, 03 Aug 2024 21:58:09 +0200)
> From: Emanuel Berg <incal@dataswamp.org>
> Date: Sat, 03 Aug 2024 21:58:09 +0200
>
> (defun ispell-spell-all (&optional beg end)
> (interactive
> (when (use-region-p)
> (list (region-beginning)
> (region-end))))
> (or beg (setq beg (point)))
> (or end (setq end (point-max)))
> (cl-loop for (lang dict) in ispell-langs do
> (let* ((this (format "-->{%s}" lang))
> (all "-->{[[:alpha:]]\\{2\\}}")
> (ispell-skip-region-alist
> `(,(list this)
> ,(list all (lambda ()
> (unless (re-search-forward this nil t)
> (goto-char end))))
> ,@ispell-skip-region-alist)))
> (unless (string= dict ispell-current-dictionary)
> (ispell-change-dictionary dict))
> (ispell-region beg end))))
Looping through several languages and restarting the speller each time
has the disadvantage that it is quite expensive, and will ask whether
to save the local dictionary each time, which is a minor nuisance,
IMO.
And if one uses Hunspell, one can set up the speller so that it
spell-checks several languages in parallel, in which case the above is
not needed. This has an advantage that different languages can be
mixed in the same region, instead of separating them. (If you don't
separate, then spelling in one language will mark text ion another
language as misspellings.)
next prev parent reply other threads:[~2024-08-04 5:09 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-31 11:42 auto-detect multiple languages -- ispell-detect.el Emanuel Berg
2024-08-02 2:53 ` Richard Stallman
2024-08-02 8:06 ` Gregor Zattler
2024-08-02 22:32 ` Emanuel Berg
2024-08-03 2:02 ` Emanuel Berg
2024-08-04 6:52 ` Uwe Brauer via Emacs development discussions.
2024-08-03 13:25 ` Emanuel Berg
2024-08-03 17:14 ` Emanuel Berg
2024-08-03 19:58 ` Emanuel Berg
2024-08-04 5:09 ` Eli Zaretskii [this message]
2024-08-04 5:31 ` Emanuel Berg
2024-08-04 5:50 ` Eli Zaretskii
2024-08-04 6:14 ` Emanuel Berg
2024-08-04 6:27 ` Eli Zaretskii
2024-08-04 6:40 ` Emanuel Berg
2024-08-04 7:08 ` Eli Zaretskii
2024-08-04 10:30 ` Stefan Kangas
2024-08-04 15:25 ` Uwe Brauer via Emacs development discussions.
2024-08-04 15:56 ` Emanuel Berg
2024-08-04 17:45 ` tomas
2024-08-04 7:13 ` Emanuel Berg
2024-08-07 15:41 ` Björn Bidar
[not found] ` <87wmkspcgn.fsf@>
2024-08-08 2:01 ` guess-language package Richard Stallman
2024-08-08 6:42 ` Joost Kremers
2024-08-12 1:47 ` Richard Stallman
2024-08-08 6:55 ` auto-detect multiple languages -- ispell-detect.el Joost Kremers
2024-08-12 1:47 ` Richard Stallman
2024-08-04 11:03 ` Emanuel Berg
2024-08-04 5:42 ` Emanuel Berg
2024-08-04 5:52 ` Eli Zaretskii
2024-08-04 7:17 ` Uwe Brauer via Emacs development discussions.
2024-08-04 9:30 ` Emanuel Berg
2024-08-04 2:05 ` Richard Stallman
2024-08-07 15:36 ` Björn Bidar
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=86r0b4ub5z.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=incal@dataswamp.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.