When spell correcting, this package forces you to fix your mistakes
   three times to re-write your muscle memory into typing it correctly.

* Motivation

   I used to type 'necessary' wrong... ALL THE TIME.  I misspelled it so
   often that it became part of my muscle memory.  It is one of *THOSE*
   words for me.  There are others, that by muscle or brain memory,
   are "burned in" as a particular pattern.

   This is an attempt to break that pattern, by forcing you to re-type
   your misspelled words 3 times.  This should help overcome any broken
   muscle and brain memory.

* Usage

** Fixing Spelling Mistakes
   - Step 1 :: Require this file
   - Step 2 :: Use M-$ to check the spelling of your misspelled word
   - Step 3 :: follow the directions of the prompt

** Fixing Spelling Mistakes Automagickally

   If you want, you can customize the
   `fix-muscle-memory-load-problem-words' variable, and that will
   force you to fix the typos when you make them, rather than at
   spell-check time.  Alternatively just call
   `fix-muscle-memory-load-problem-words' with nil and an alist of
   problem words in the format of (("tyop" . "typo")).

   Because this uses abbrev mode, you will need to make sure to enable
   it.

** Helping with Extended commands

  If you find yourself using `execute-extended-command' in place of a
  keybinding, using this will help train you.  The first three
  instances of the same extended command will go through normally.
  The next time however you will be told the key-combo to use and then
  prompted to enter it three times.

  Customize `fix-muscle-memory-enable-extended-command' and you're off
  to the races.

** Getting out

  Entering in the wrong answer more than 6 times or so will exit out
  of the loop.  Alternatively C-g (quit) will get you out as well.

** Super Kawaii

  Customize the variable `fix-muscle-memory-use-emoji' to true to use
  cute emoji icons along with text.

** Easy Setup with use-package
#+begin_src emacs-lisp
(use-package 'fix-muscle-memory
  :init
  (setq fix-muscle-memory-use-emoji t)
  :config
  (fix-muscle-memory-load-problem-words 'foo
                                        '(("teh" . "the")
                                          ("comptuer" . "computer")
                                          ("destory" . "destroy")
                                          ("occured" . "occurred")))
  (add-hook 'text-mode-hook 'abbrev-mode)
  (add-hook 'prog-mode-hook 'abbrev-mode)

  (turn-on-fix-muscle-memory-on-extended-command))
#+end_src

* Changelog

   - v 0.1 :: First Version.
   - v 0.2 ::
     - Minor documentation fix.
   - v 0.3 ::
     - Fix bug when using Ispell.
   - v 0.90 :: Almost ready for 1.0!
     - Gave it it's own repository (finally).
     - Added abbrev hook for fixing as-you-type-mistakes.
     - properly manage the response back from `ispell-command-loop'.
     - Added cute emoji.  I couldn't help myself.
     - Added fix-muscle-memory-extended-command
   - v 0.91 ::
     - Fix Spelling mistakes in code.
   - v 0.92 ::
     - Package format fixes from syohex
   - v 0.93 ::
     - Forgot to include emoji jiggerypokery. :(
   - v 0.94 ::
     - Emacs 27 compatability fix.