X-Git-Url: https://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-keyword.el;h=a2c8797e70f367a42a1eb17d9800412d1395f2a0;hp=37056e2270b50c9f12d413f279c782b6cd6a130e;hb=86e0bdac6469b7e99270e11d299d8545d697a92e;hpb=132e10f9d686391e69187de89744a13400ab9b2c diff --git a/lisp/riece-keyword.el b/lisp/riece-keyword.el index 37056e2..a2c8797 100644 --- a/lisp/riece-keyword.el +++ b/lisp/riece-keyword.el @@ -33,7 +33,7 @@ (defgroup riece-keyword nil "Highlight keyword in IRC buffer." - :group 'riece-vars) + :group 'riece) (defcustom riece-keywords nil "Keywords to be highlightened." @@ -66,10 +66,16 @@ and the matched message object." :group 'riece-highlight-faces) (defvar riece-keyword-face 'riece-keyword-face) +(defvar riece-keyword-enabled nil) + +(defconst riece-keyword-description + "Highlight keywords in IRC buffers") + ;;; The old XEmacs package doesn't have autoload setting for regexp-opt. (autoload 'regexp-opt "regexp-opt") (defun riece-keyword-message-filter (message) - (if (and riece-keywords + (if (and riece-keyword-enabled + riece-keywords ;; Ignore messages which belongs to myself. (not (riece-message-own-p message))) (let* (keywords @@ -88,11 +94,10 @@ and the matched message object." (setq index 0) (while (string-match (car (car alist)) (riece-message-text message) index) - (if (memq 'riece-highlight riece-addons) - (put-text-property (match-beginning (cdr (car alist))) - (match-end (cdr (car alist))) - 'riece-keyword t - (riece-message-text message))) + (put-text-property (match-beginning (cdr (car alist))) + (match-end (cdr (car alist))) + 'riece-overlay-face riece-keyword-face + (riece-message-text message)) (run-hook-with-args 'riece-notify-keyword-functions (match-string (cdr (car alist)) (riece-message-text message))) @@ -103,21 +108,18 @@ and the matched message object." (setq alist (cdr alist))))) message) -(defun riece-keyword-scan-region (start end) - (riece-scan-property-region - 'riece-keyword - start end - (lambda (start end) - (riece-overlay-put (riece-make-overlay start end) - 'face riece-keyword-face)))) - (defun riece-keyword-requires () (if (memq 'riece-highlight riece-addons) '(riece-highlight))) (defun riece-keyword-insinuate () - (add-hook 'riece-message-filter-functions 'riece-keyword-message-filter) - (add-hook 'riece-after-insert-functions 'riece-keyword-scan-region)) + (add-hook 'riece-message-filter-functions 'riece-keyword-message-filter)) + +(defun riece-keyword-enable () + (setq riece-keyword-enabled t)) + +(defun riece-keyword-disable () + (setq riece-keyword-enabled nil)) (provide 'riece-keyword)