programs such as Ispell, Enchant and Hunspell, but actually any tool
that can receive text from standard input stream and send text to
standard output can be used. Wcheck mode sends parts of buffer's content
-to an external program or an Emacs Lisp function and, based on their
+to an external program or an Emacs Lisp function and, relying on their
output, decides if some parts of text should be marked in the buffer.
[Emacs]: http://www.gnu.org/software/emacs/
Install
-------
-You can install Wcheck mode through [Marmalade][] or [Melpa][] package
-archive. Alternatively you can put `wcheck-mode.el` file to some
-directory in your Emacs's `load-path` and add the following lines to
-Emacs's initialization file (`~/.emacs` or `~/.emacs.d/init.el`):
+You can install Wcheck mode through [Melpa][] package archive.
+Alternatively you can put `wcheck-mode.el` file to some directory in
+your Emacs's `load-path` and add the following lines to Emacs's
+initialization file (`~/.emacs` or `~/.emacs.d/init.el`):
(autoload 'wcheck-mode "wcheck-mode"
"Toggle wcheck-mode." t)
(autoload 'wcheck-jump-backward "wcheck-mode"
"Move point backward to previous marked text area." t)
-[Marmalade]: http://marmalade-repo.org/
-[Melpa]: http://melpa.milkbox.net/
+[Melpa]: https://melpa.org/
Configuration and basic usage
Copyright and license
---------------------
-Copyright (C) 2009-2014 Teemu Likonen <<tlikonen@iki.fi>>
+Copyright (C) 2009-2016 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
;;; wcheck-mode.el --- General interface for text checkers
-;; Copyright (C) 2009-2014 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
;; Author: Teemu Likonen <tlikonen@iki.fi>
;; Maintainer: Teemu Likonen <tlikonen@iki.fi>
;; Created: 2009-07-04
;; URL: https://github.com/tlikonen/wcheck-mode
;; Keywords: text spell check languages ispell
-;; Version: 2014.6.21
+;; Version: 2016.1.5
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; actually any tool that can receive text from standard input stream
;; and send text to standard output can be used. Wcheck mode sends parts
;; of buffer's content to an external program or an Emacs Lisp function
-;; and, based on their output, decides if some parts of text should be
+;; and, relying on their output, decides if some parts of text should be
;; marked in the buffer.
;;; Code:
Wcheck is a minor mode for automatically checking and marking
strings in Emacs buffer. Wcheck sends (parts of) buffer's content
-to a text-checker back-end and, based on its output, decides if
+to a text-checker back-end and, relying on its output, decides if
some parts of text should be marked.
Wcheck can be used with external spell-checker programs such as
(match-beginning 1) 'invisible buffer
end)))
- ((and (eval face-p)
+ ((and (funcall face-p)
(or (equal regexp-discard "")
(not (string-match
regexp-discard
(goto-char (next-single-char-property-change
(match-beginning 1) 'invisible buffer
end)))
- ((eval face-p)
+ ((funcall face-p)
;; Make an overlay.
(wcheck--make-overlay
buffer ol-face ol-mouse-face ol-help-echo ol-keymap
(mode (nth 1 face-settings))
(faces (nthcdr 2 face-settings)))
(cond ((not font-lock-mode)
- t)
+ (lambda () t))
((eq mode 'read)
- `(wcheck--face-found-p
- ',faces (wcheck--collect-faces
- (match-beginning 1) (match-end 1))))
+ `(lambda ()
+ (wcheck--face-found-p
+ ',faces (wcheck--collect-faces
+ (match-beginning 1) (match-end 1)))))
((eq mode 'skip)
- `(not (wcheck--face-found-p
- ',faces (wcheck--collect-faces
- (match-beginning 1) (match-end 1)))))
- (t t))))
+ `(lambda ()
+ (not (wcheck--face-found-p
+ ',faces (wcheck--collect-faces
+ (match-beginning 1) (match-end 1))))))
+ (t (lambda () t)))))
;;; Miscellaneous low-level functions
(high (nth 0 idle))
(low (nth 1 idle))
(micros (nth 2 idle)))
- (+ (* high
- (expt 2 16))
+ (+ (* high 65536)
low
(/ micros 1000000.0))))
If optional TARGET-KEY is not given return all data associated
with the matching KEY VALUE."
(catch 'answer
- (dolist (item wcheck--buffer-data)
- (when (equal value (aref item (wcheck--buffer-data-key-index key)))
- (throw 'answer (if target-key
- (aref item (wcheck--buffer-data-key-index
- target-key))
- item))))))
+ (let ((index (wcheck--buffer-data-key-index key)))
+ (dolist (item wcheck--buffer-data)
+ (when (equal value (aref item index))
+ (throw 'answer (if target-key
+ (aref item (wcheck--buffer-data-key-index
+ target-key))
+ item)))))))
(defun wcheck--buffer-data-get-all (&optional key)