Subject: [bug#44089] [PATCH] gnu: Add emacs-wucuo.

From: Joseph LaFreniere <[email-masked]>
Date: Mon, 19 Oct 2020 22:26:03 -0500

Patch file is attached.  There were some warnings during build 
about functions not being defined.  I believe this is just an 
issue of missing autoload declarations, and I have reported the 
warning to the package's author.

--
Joseph LaFreniere
>From dd7a1229340ee282af047689a41f95b0f1dbaf7f Mon Sep 17 00:00:00 2001
From: Joseph LaFreniere <[email-masked]>
Date: Mon, 19 Oct 2020 22:21:04 -0500
Subject: [PATCH] gnu: Add emacs-wucuo.

* gnu/packages/emacs-xyz.scm (emacs-wucuo): New variable.
---
 gnu/packages/emacs-xyz.scm | 62 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 5acb8ce6ec..1530cc275f 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -8637,6 +8637,68 @@ current frame, disabling the mode line, and adding margins to the buffer that
 restrict the text width to 80 characters.")
     (license license:bsd-3)))
 
+(define-public emacs-wucuo
+  (package
+    (name "emacs-wucuo")
+    (version "0.2.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/redguardtoo/wucuo")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1iw4jdlqvki95gh7bzl7hjidc2kz9qyc1zjd7klh63gvk0z09700"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/redguardtoo/wucuo")
+    (synopsis
+     "Fastest solution to spell check camel case code or plain text")
+    (description
+     "This package provides a spell checker on top of either aspell or
+hunspell.
+
+@itemize
+@item @code{wucuo-spell-check-file} will spell check one file and report its
+typos
+@item If @code{wucuo-flyspell-start-mode} is \"normal\", @code{wucuo-start}
+runs @code{flyspell-buffer}.  If it's \"normal\", @code{wucuo-start} runs
+@code{flyspell-region} to check visible region in current window.
+@item The interval of checking is set by @code{wucuo-update-interval}
+@end itemize
+
+See @code{wucuo-check-nil-font-face} on how to check plain text (text without
+font)
+@itemize
+@item Use @code{wucuo-current-font-face} to detect font face at point
+@item If @code{wucuo-flyspell-start-mode} is \"normal\",
+@code{wucuo-spell-check-buffer-max} specifies the maximum size of buffer to
+check.  If @code{wucuo-flyspell-start-mode} is \"fast\",
+@code{wucuo-spell-check-region-max} specifies the maximum size of visible
+region to check.
+@item You can define a function in @code{wucuo-spell-check-buffer-predicate}.
+If the function returns t, the spell checking of current buffer will continue.
+If it returns nil, the spell checking is skipped.
+@end itemize
+
+Here is sample to skip checking in specified major modes,
+@lisp
+ (setq wucuo-spell-check-buffer-predicate
+        (lambda ()
+          (not (memq major-mode
+                     '(dired-mode
+                       log-edit-mode
+                       compilation-mode
+                       help-mode
+                       profiler-report-mode
+                       speedbar-mode
+                       gud-mode
+                       calc-mode
+                       Info-mode)))))
+@end lisp")
+    (license license:gpl3+)))
+
 (define-public emacs-ido-completing-read+
   (package
     (name "emacs-ido-completing-read+")
-- 
2.28.0