unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#67045: No way to control location of .aspell.en.prepl from within Emacs
@ 2023-11-10 16:01 Björn Lindqvist
  2023-11-10 16:49 ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Björn Lindqvist @ 2023-11-10 16:01 UTC (permalink / raw)
  To: 67045

During operation aspell creates two files; .aspell.en.pws,
.aspell.en.prepl ("en" is of course the language code). By default
these files are placed in ~/. You can control the location of
.aspell.en.pws by setting the ispell-personal-dictionary variable. But
you cannot control the location of .aspell.en.prepl.

So a new customization variable is needed to control the location of
.aspell.en.prepl. Perhaps named
ispell-personal-replacement-dictionary. It should be mapped to
aspell's --repl option which controls where the personal replacement
dictionary is stored.

-- 
mvh/best regards Björn Lindqvist





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#67045: No way to control location of .aspell.en.prepl from within Emacs
  2023-11-10 16:01 bug#67045: No way to control location of .aspell.en.prepl from within Emacs Björn Lindqvist
@ 2023-11-10 16:49 ` Eli Zaretskii
  2023-11-10 21:33   ` Björn Lindqvist
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2023-11-10 16:49 UTC (permalink / raw)
  To: Björn Lindqvist; +Cc: 67045

> From: Björn Lindqvist <bjourne@gmail.com>
> Date: Fri, 10 Nov 2023 17:01:04 +0100
> 
> During operation aspell creates two files; .aspell.en.pws,
> .aspell.en.prepl ("en" is of course the language code). By default
> these files are placed in ~/. You can control the location of
> .aspell.en.pws by setting the ispell-personal-dictionary variable. But
> you cannot control the location of .aspell.en.prepl.
> 
> So a new customization variable is needed to control the location of
> .aspell.en.prepl. Perhaps named
> ispell-personal-replacement-dictionary. It should be mapped to
> aspell's --repl option which controls where the personal replacement
> dictionary is stored.

Can't you customize ispell-extra-args?  In addition,
ispell-dictionary-alist supports language-specific options, AFAIK.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#67045: No way to control location of .aspell.en.prepl from within Emacs
  2023-11-10 16:49 ` Eli Zaretskii
@ 2023-11-10 21:33   ` Björn Lindqvist
  2023-11-11  6:58     ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Björn Lindqvist @ 2023-11-10 21:33 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 67045

I didn't know about that variable and it's not in the manual afaics. I
managed to piece some elisp together using it to set the --repl
option. It works, though I don't think it is a very user-friendly
solution.

Den fre 10 nov. 2023 kl 17:50 skrev Eli Zaretskii <eliz@gnu.org>:
>
> > From: Björn Lindqvist <bjourne@gmail.com>
> > Date: Fri, 10 Nov 2023 17:01:04 +0100
> >
> > During operation aspell creates two files; .aspell.en.pws,
> > .aspell.en.prepl ("en" is of course the language code). By default
> > these files are placed in ~/. You can control the location of
> > .aspell.en.pws by setting the ispell-personal-dictionary variable. But
> > you cannot control the location of .aspell.en.prepl.
> >
> > So a new customization variable is needed to control the location of
> > .aspell.en.prepl. Perhaps named
> > ispell-personal-replacement-dictionary. It should be mapped to
> > aspell's --repl option which controls where the personal replacement
> > dictionary is stored.
>
> Can't you customize ispell-extra-args?  In addition,
> ispell-dictionary-alist supports language-specific options, AFAIK.



-- 
mvh/best regards Björn Lindqvist





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#67045: No way to control location of .aspell.en.prepl from within Emacs
  2023-11-10 21:33   ` Björn Lindqvist
@ 2023-11-11  6:58     ` Eli Zaretskii
  2023-11-11 16:39       ` Björn Lindqvist
  2023-12-24 20:10       ` Stefan Kangas
  0 siblings, 2 replies; 6+ messages in thread
From: Eli Zaretskii @ 2023-11-11  6:58 UTC (permalink / raw)
  To: Björn Lindqvist, Stefan Kangas; +Cc: 67045

> From: Björn Lindqvist <bjourne@gmail.com>
> Date: Fri, 10 Nov 2023 22:33:17 +0100
> Cc: 67045@debbugs.gnu.org
>
> > Can't you customize ispell-extra-args?  In addition,
> > ispell-dictionary-alist supports language-specific options, AFAIK.
> 
> I didn't know about that variable and it's not in the manual afaics. I
> managed to piece some elisp together using it to set the --repl
> option. It works, though I don't think it is a very user-friendly
> solution.

Why do you consider it not a user-friendly solution?  There's no limit
to command-line options a speller can have, so it is not reasonable
IMO to expect Emacs to have a separate variable for each one of them.
Thus, our solution to have a single variable that can hold any
additional options is a reasonable compromise.

As for its discoverability: in general, when you are faced with a
problem in some Emacs Lisp package, my advice is first to see whether
a solution already exists by browsing all the defcustom's of that
package (and its parent packages, if that is appropriate).  One way of
doing that is by using "M-x customize-group" bu giving it the group of
the package.

Stefan, WDYT?





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#67045: No way to control location of .aspell.en.prepl from within Emacs
  2023-11-11  6:58     ` Eli Zaretskii
@ 2023-11-11 16:39       ` Björn Lindqvist
  2023-12-24 20:10       ` Stefan Kangas
  1 sibling, 0 replies; 6+ messages in thread
From: Björn Lindqvist @ 2023-11-11 16:39 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 67045, Stefan Kangas

I care little about what speller backend Emacs uses. I just want it to
follow the XDG (which I think it should do by default because dumping
dotfiles in ~/ is for neanderthals, but that's a different
story). Getting it to work was very difficult especially as I'm
often switching between languages. Here is part of my setup:

    (defun set-language (code name)
      (let* ((dir (expand-file-name "~/.config/aspell/"))
             (pd (concat dir code ".pws"))
             (rd (concat dir code ".prepl")))
        (make-directory dir t)
        (setq ispell-personal-dictionary pd)
        (setq ispell-extra-args (list "--repl" rd)))
      (ispell-change-dictionary code)
      (flyspell-buffer)
      (message (format "Switched to %s" name)))

    (setq flyspell-issue-message-flag nil)
    (add-hook 'text-mode-hook 'flyspell-mode)
    (add-hook 'flyspell-mode-hook
              (lambda ()
                (set-language "en" "English")))

I also have keybindings setup to quickly restart aspell because having
one buffer spell-checked in one language and another buffer in a
different language is not supported. I would be happier if I could
write:

    (setq ispell-personal-directory "~/.config/aspell")

and have ispell understand that it should dump all user configuration
files to that directory.

Den lör 11 nov. 2023 kl 07:58 skrev Eli Zaretskii <eliz@gnu.org>:
>
> > From: Björn Lindqvist <bjourne@gmail.com>
> > Date: Fri, 10 Nov 2023 22:33:17 +0100
> > Cc: 67045@debbugs.gnu.org
> >
> > > Can't you customize ispell-extra-args?  In addition,
> > > ispell-dictionary-alist supports language-specific options, AFAIK.
> >
> > I didn't know about that variable and it's not in the manual afaics. I
> > managed to piece some elisp together using it to set the --repl
> > option. It works, though I don't think it is a very user-friendly
> > solution.
>
> Why do you consider it not a user-friendly solution?  There's no limit
> to command-line options a speller can have, so it is not reasonable
> IMO to expect Emacs to have a separate variable for each one of them.
> Thus, our solution to have a single variable that can hold any
> additional options is a reasonable compromise.
>
> As for its discoverability: in general, when you are faced with a
> problem in some Emacs Lisp package, my advice is first to see whether
> a solution already exists by browsing all the defcustom's of that
> package (and its parent packages, if that is appropriate).  One way of
> doing that is by using "M-x customize-group" bu giving it the group of
> the package.
>
> Stefan, WDYT?



-- 
mvh/best regards Björn Lindqvist





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#67045: No way to control location of .aspell.en.prepl from within Emacs
  2023-11-11  6:58     ` Eli Zaretskii
  2023-11-11 16:39       ` Björn Lindqvist
@ 2023-12-24 20:10       ` Stefan Kangas
  1 sibling, 0 replies; 6+ messages in thread
From: Stefan Kangas @ 2023-12-24 20:10 UTC (permalink / raw)
  To: Eli Zaretskii, Björn Lindqvist; +Cc: 67045

Eli Zaretskii <eliz@gnu.org> writes:

> Why do you consider it not a user-friendly solution?  There's no limit
> to command-line options a speller can have, so it is not reasonable
> IMO to expect Emacs to have a separate variable for each one of them.
> Thus, our solution to have a single variable that can hold any
> additional options is a reasonable compromise.
[...]
> Stefan, WDYT?

I could go either way with this one, to be really honest.  Eli is right
that proliferating our user options with all the details of concrete
spell checkers will start getting unwieldy at some point.

Personally, I'd rather see the interface of ispell.el get more
abstracted away from concrete spell checkers.  I don't think users of
Emacs shouldn't have to mess with aspell/ispell/hunspell/enchant (unless
they want to, of course).

So I'm not entirely sure that adding a new user option like this is
moving things in the right thing direction.





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-12-24 20:10 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-10 16:01 bug#67045: No way to control location of .aspell.en.prepl from within Emacs Björn Lindqvist
2023-11-10 16:49 ` Eli Zaretskii
2023-11-10 21:33   ` Björn Lindqvist
2023-11-11  6:58     ` Eli Zaretskii
2023-11-11 16:39       ` Björn Lindqvist
2023-12-24 20:10       ` Stefan Kangas

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).