[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] 186/352: Muutetaan face-predikaattitoiminto selkeämmäksi
From: |
Stefan Monnier |
Subject: |
[elpa] 186/352: Muutetaan face-predikaattitoiminto selkeämmäksi |
Date: |
Mon, 07 Jul 2014 14:03:48 +0000 |
monnier pushed a commit to branch master
in repository elpa.
commit 1f5bd63c733a1df4ceb897eb831f36c19570baab
Author: Teemu Likonen <address@hidden>
Date: Mon Dec 27 12:19:06 2010 +0000
Muutetaan face-predikaattitoiminto selkeämmäksi
Piilotetaan enemmän koodia wcheck-generate-face-predicate -funktioon.
---
wcheck-mode.el | 79 ++++++++++++++++++++++++-------------------------------
1 files changed, 35 insertions(+), 44 deletions(-)
diff --git a/wcheck-mode.el b/wcheck-mode.el
index f04300f..0abe3cb 100644
--- a/wcheck-mode.el
+++ b/wcheck-mode.el
@@ -1061,12 +1061,7 @@ elements between BEG and END; all hidden parts are
omitted."
(discard (wcheck-query-language-data language 'regexp-discard))
(case-fold-search
(wcheck-query-language-data language 'case-fold))
- (user-faces (wcheck-major-mode-faces language major-mode))
- (face-p (if (and font-lock-mode user-faces)
- (wcheck-generate-face-predicate
- (wcheck-major-mode-op-mode language major-mode)
- user-faces)
- t))
+ (face-p (wcheck-generate-face-predicate language major-mode))
(search-spaces-regexp nil)
(old-point 0)
words)
@@ -1114,12 +1109,7 @@ visible in BUFFER within position range from BEG to END."
(syntax (eval (wcheck-query-language-data language 'syntax)))
(case-fold-search
(wcheck-query-language-data language 'case-fold))
- (user-faces (wcheck-major-mode-faces language major-mode))
- (face-p (if (and font-lock-mode user-faces)
- (wcheck-generate-face-predicate
- (wcheck-major-mode-op-mode language major-mode)
- user-faces)
- t))
+ (face-p (wcheck-generate-face-predicate language major-mode))
(search-spaces-regexp nil)
(ol-face (wcheck-query-language-data language 'face))
(ol-keymap (make-sparse-keymap))
@@ -1412,38 +1402,16 @@ or nil."
(delete-dups faces)))
-(defun wcheck-major-mode-op-mode (language major-mode)
- "Return the associated operation mode for MAJOR-MODE.
-See the variable `wcheck-language-data' and its
-read-or-skip-faces option for more information."
- (cadr (assq major-mode (wcheck-query-language-data
- language 'read-or-skip-faces))))
-
-
-(defun wcheck-major-mode-faces (language major-mode)
- "Return the face list configuration for MAJOR-MODE.
-See the variable `wcheck-language-data' and its
-read-or-skip-faces optionfor more information."
- (cddr (assq major-mode (wcheck-query-language-data
- language 'read-or-skip-faces))))
-
-
-(defun wcheck-generate-face-predicate (op-mode faces)
- "Generate a predicate expression for reading words.
-This function creates a predicate expression which, by evaluating
-it, is used to check whether or not the current match should be
-read or skipped. OP-MODE is either symbol `read' or `skip' and
-FACES is a list of faces. This is only for `wcheck-mode's
-internal use."
- (cond ((eq 'read op-mode)
- `(wcheck-face-found-p
- ',faces (wcheck-collect-faces (match-beginning 1)
- (match-end 1))))
- ((eq 'skip op-mode)
- `(not (wcheck-face-found-p
- ',faces (wcheck-collect-faces (match-beginning 1)
- (match-end 1)))))
- (t)))
+(defun wcheck-major-mode-face-settings (language major-mode)
+ "Return read/skip face settings for MAJOR-MODE."
+ (let ((data (wcheck-query-language-data language 'read-or-skip-faces))
+ conf)
+ (catch 'answer
+ (while data
+ (setq conf (pop data))
+ (when (or (eq nil (car conf))
+ (eq major-mode (car conf)))
+ (throw 'answer conf))))))
(defun wcheck-face-found-p (user-faces buffer-faces)
@@ -1455,6 +1423,29 @@ Both arguments are lists."
(throw 'found t)))))
+(defun wcheck-generate-face-predicate (language major-mode)
+ "Generates a face predicate expression for scanning buffer.
+Return a predicate expression that is used to decide whether
+`wcheck-mode' should read or paint text at the current point
+position with LANGUAGE and MAJOR-MODE. Evaluating the predicate
+expression will return a boolean."
+ (let* ((face-settings (wcheck-major-mode-face-settings
+ language major-mode))
+ (mode (nth 1 face-settings))
+ (faces (nthcdr 2 face-settings)))
+ (cond ((not font-lock-mode)
+ t)
+ ((eq mode 'read)
+ `(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))))
+
+
;;; Miscellaneous low-level functions
- [elpa] 177/352: wcheck-choose-suggestion-minibuffer siirtää kursorin rivin loppuun, (continued)
- [elpa] 177/352: wcheck-choose-suggestion-minibuffer siirtää kursorin rivin loppuun, Stefan Monnier, 2014/07/07
- [elpa] 183/352: Vaihdetaan esimerkkiin "Finnish" entisen "suomi":n tilalle, Stefan Monnier, 2014/07/07
- [elpa] 171/352: Täydennetään funktioiden kuvauksia ym. pientä järjestelyä, Stefan Monnier, 2014/07/07
- [elpa] 170/352: Välitetään hiiritapahtuma oikolukuehdotusfunktiolle, Stefan Monnier, 2014/07/07
- [elpa] 184/352: Lisätään ;;;###autoload, Stefan Monnier, 2014/07/07
- [elpa] 173/352: Täydennetään funktion wcheck-spelling-suggestions kuvausta, Stefan Monnier, 2014/07/07
- [elpa] 185/352: Customize-asetusten hienosäätöä, Stefan Monnier, 2014/07/07
- [elpa] 188/352: Customize tukemaan uusia read-or-skip-faces-toimintoja, Stefan Monnier, 2014/07/07
- [elpa] 180/352: Tulostetaan [Empty string], mikäli korvattava teksti on tyhjä merkkijono, Stefan Monnier, 2014/07/07
- [elpa] 179/352: Uusi ominaisuus: oikolukuohjelma voi olla myös Emacs Lisp -funktio, Stefan Monnier, 2014/07/07
- [elpa] 186/352: Muutetaan face-predikaattitoiminto selkeämmäksi,
Stefan Monnier <=
- [elpa] 187/352: Muutetaan wcheck-query-language-data-funktion rakennetta, Stefan Monnier, 2014/07/07
- [elpa] 190/352: Asennusohjeen kielellistä säätöä, Stefan Monnier, 2014/07/07
- [elpa] 194/352: Muutetaan virheilmoitus yhdenmuotoiseksi muiden vastaavien kanssa, Stefan Monnier, 2014/07/07
- [elpa] 189/352: Muuttujien dokumentit ja esimerkkiasetukset ajan tasalle, Stefan Monnier, 2014/07/07
- [elpa] 195/352: Päivitetään versionumero: 2010.12.27, Stefan Monnier, 2014/07/07
- [elpa] 182/352: Uusi ominaisuus: käyttäjä voi nyt vaikuttaa oletusasetuksiin, Stefan Monnier, 2014/07/07
- [elpa] 191/352: Muuttujan dokumentin kielellistä säätöä, Stefan Monnier, 2014/07/07
- [elpa] 192/352: Muutetaan wcheck-customize-ryhmän otsikko, Stefan Monnier, 2014/07/07
- [elpa] 198/352: Dokumentteja ajan tasalle: tarkistusohjelma voi olla myös funktio, Stefan Monnier, 2014/07/07
- [elpa] 197/352: Muutetaan monet word-sanat string-sanoiksi, Stefan Monnier, 2014/07/07