From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.user/18061 Path: news.gmane.org!not-for-mail From: Pietro Newsgroups: gmane.emacs.gnus.user Subject: Re: Trigger spell checking before sending Date: Fri, 12 Feb 2016 08:05:10 -0600 Message-ID: <87vb5uvxbd.fsf@pietrop-debian64RfL.eng.citrite.net> References: <874mde27a9.fsf@posteo.net> <874mdeddos.fsf@debian.uxu> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1455286102 10496 80.91.229.3 (12 Feb 2016 14:08:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 12 Feb 2016 14:08:22 +0000 (UTC) To: info-gnus-english@gnu.org Original-X-From: info-gnus-english-bounces+gegu-info-gnus-english=m.gmane.org@gnu.org Fri Feb 12 15:08:12 2016 Return-path: Envelope-to: gegu-info-gnus-english@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aUEOK-00017a-2O for gegu-info-gnus-english@m.gmane.org; Fri, 12 Feb 2016 15:08:12 +0100 Original-Received: from localhost ([::1]:32874 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUEOJ-00054c-8D for gegu-info-gnus-english@m.gmane.org; Fri, 12 Feb 2016 09:08:11 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54234) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUEOH-00054P-0q for info-gnus-english@gnu.org; Fri, 12 Feb 2016 09:08:10 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUEOC-000216-0V for info-gnus-english@gnu.org; Fri, 12 Feb 2016 09:08:08 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:40657) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUEOB-00020w-P7 for info-gnus-english@gnu.org; Fri, 12 Feb 2016 09:08:03 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1aUEOA-0000xm-9j for info-gnus-english@gnu.org; Fri, 12 Feb 2016 15:08:02 +0100 Original-Received: from 185.25.64.249 ([185.25.64.249]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 12 Feb 2016 15:08:02 +0100 Original-Received: from pulsarpietro by 185.25.64.249 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 12 Feb 2016 15:08:02 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 119 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 185.25.64.249 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) Cancel-Lock: sha1:pcNUyylETEuC4n1/I00i6Io1SyA= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: info-gnus-english@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Announcements and discussions for GNUS, the GNU Emacs Usenet newsreader \(in English\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: info-gnus-english-bounces+gegu-info-gnus-english=m.gmane.org@gnu.org Original-Sender: info-gnus-english-bounces+gegu-info-gnus-english=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.gnus.user:18061 Archived-At: Emanuel Berg writes: > Pietro writes: > >> I normally use the ispell-buffer command before >> sending an email or article to check what I have >> written, anyway sometimes I just forgot it. >> >> Is there a way to configure Gnus to start the spell >> check before sending the message ? I was thinking of >> an "hook" which can be configured to call a function >> - as ispell-buffer - triggered by the send command. > > There are many options to achieve what you want. > As for the hooks, yes: > > message-send-hook ; early > > message-send-mail-hook ; late > message-send-news-hook > > But that might not be the best move. Spelling can be > confusing with a lot of options and strange words will > pop up that makes your mind wander and you bring up > Emacs-w3m to Google it and you... oh, the message! > > Or the opposite, when you are in a rush and you have > written a three liner and it yams every time you send > it, the thrice-accursed spellchecker starting > all over! > > Instead, I'd do it like this: > > Write one defun "message-send-no-check" that *always* > sends. It could be `C-u C-c C-c' or whatever. > > Then write another defun > "message-send-ask-if-not-spelled" (`C-c C-c') which > checks a variable "is-spelled". This variable is > (re)set to nil when you create a new message (put it > in `message-setup-hook', likely). When you spell, the > variable is set to t. > > If is-spelled is nil, message-send-ask-if-not-spelled > simply says "Hey, it is not spelled. Use `C-u C-c C-c' > to send anyway." If it is t, the message is sent > normally by means of `message-send-and-exit'. > > This perhaps sounds complicated but it is super simple > - just setting, testing, and branching, like all > programming. Nothing new under the Sun Microsystems. > > Here is what I have for spelling: > > http://user.it.uu.se/~embe8573/conf/emacs-init/spell-new.el > > Note especially the `ispell-message' stuff! Which has > a bug by the way if you do `C-g' while spelling... But > you only get a wierd message (in the echo area, not > a message-message). > > And for the message mode: > > http://user.it.uu.se/~embe8573/conf/emacs-init/gnus/message-my.el > > Good luck! Ask more if need be! Thanks for all your answers guys. Well my first language isn't English and I do like the idea of focusing on what I am writing and only at a second time run the spell checker to make sure everything is correct, I did not know of fly spell but I would prefer not to use it. I am pretty sure there is not an unique answer to this matter and everybody has his own preferences, this is why a fully customizable tools like Gnus comes in handy. The more I use it the more I like it. I prefer to run the spell checker at a separate stage since it takes a bit of concentration to me when I am writing in English I couldn't cope with external interactions/distractions of any sort very well, however this is a *pretty personal* view. I went through the links you pointed me in and they gave me the spark to more patiently read the Gnus manual and there I found these these few lines : Page 138, right at the top: (add-hook 'message-send-hook #'ispell-message) Even though I was excited at the idea of writing my own function everything was already there and I haven't been the first to think about it :-) Now that I got this working my following question is : would it be possible to auto-detect the language the spell checker should check ? Alternatively I am thinking of writing a function which asks the user for the language the ispell function should check for, it does not need to accept all the languages and for instance I would be more than happy to have something like that : Mini-buffer says: [Which language ?[e : English, i: Italian] In this manner I do not need to remember all the dictionary names but I could set up a simple mapping inside my functions for the ones I more often using. For example typing 'e' would cause: (ispell-change-dictionary 'english) (ispell-message) Such function would be inserted among the 'message-send-hook functions' list. Am I talking completely non-sense ?