27 ("\\[[^]]+]" . font-lock-type-face) |
27 ("\\[[^]]+]" . font-lock-type-face) |
28 )) |
28 )) |
29 |
29 |
30 (defun dict-c5-font-lock-extend-region () |
30 (defun dict-c5-font-lock-extend-region () |
31 "Look for '_____' expression and extend `font-lock-beg' and `font-lock-end'." |
31 "Look for '_____' expression and extend `font-lock-beg' and `font-lock-end'." |
32 (let ((changed nil)) |
32 ;; (message "%d, %d:%d" (point) font-lock-beg font-lock-end) |
|
33 ;; (message "lines: %d" (count-lines font-lock-beg font-lock-end)) |
|
34 (cond |
|
35 ((and |
|
36 (< (count-lines font-lock-beg font-lock-end) 5) |
|
37 (< font-lock-end (point-max)) |
|
38 (< (point-min) font-lock-beg)) |
|
39 (message "XXX") |
33 (save-excursion |
40 (save-excursion |
34 ;; (message "%d, %d:%d" point font-lock-beg font-lock-end) |
|
35 (goto-char font-lock-beg) |
|
36 (beginning-of-line) |
|
37 (when (eq (char-after (point)) ?_) |
|
38 (forward-line 3) |
|
39 (setq font-lock-end (point)) |
|
40 (setq changed t)) |
|
41 (goto-char font-lock-beg) |
41 (goto-char font-lock-beg) |
42 (forward-line -2) |
42 (forward-line -2) |
43 (when (eq (char-after (point)) ?_) |
43 (setq font-lock-beg (point)) |
44 (setq font-lock-beg (point)) |
44 (goto-char font-lock-end) |
45 (setq changed t)) |
45 (forward-line 3) |
|
46 (setq font-lock-end (point)) |
46 ) |
47 ) |
47 changed |
48 t) |
48 )) |
49 (t nil) |
|
50 )) |
49 |
51 |
50 ;;;###autoload |
52 ;;;###autoload |
51 (define-derived-mode dict-c5-mode fundamental-mode "Dict-c5" |
53 (define-derived-mode dict-c5-mode fundamental-mode "Dict-c5" |
52 "Derived mode for editing C5 dictd source file." |
54 "Derived mode for editing C5 dictd source file." |
53 (add-to-list 'auto-mode-alist (cons "\\.dict-c5$" 'dict-c5-mode)) |
55 (add-to-list 'auto-mode-alist (cons "\\.dict-c5$" 'dict-c5-mode)) |