;; -*- mode: lisp -*- ;; 2009-02-24 (Tue): for Linux ;; 2009-02-25 (Wed): Converted for Leopard ;; 2009-03-04 (Wed): streamlined arange-abbrev (lookup-use-package "ndeb+/Users/fukuda/Dicts/OALD_7" "oald7-pkg") ;(lookup-use-package "ndeb+/Users/fukuda/Dicts/ldoce4" "oald7-pkg") (defun oald7-arrange-examples (entry) ;; (while (re-search-forward "\\(》[ ]?\n\\)" nil t) ;; (replace-match "》 " t t nil 1)) ;; (goto-line 1) (while (re-search-forward "《\\([^》]+\\)》" nil t) (let ((start (match-beginning 1)) (end (match-end 1))) (goto-char end) (add-text-properties start end '(face italic)) (delete-region end (match-end 0)) (delete-region (match-beginning 0) start)))) (defun oald7-arrange-numbers (entry) (while (re-search-forward "♂\\([^♀]+\\)♀" nil t) (replace-match "\\1 ") (let ((start (match-beginning 0)) (end (match-end 0))) (goto-char end) (add-text-properties start end '(face bold))))) (defun oald7-arrange-numbers-2 (entry) (while (re-search-forward "♂\\([^♀]+\\)♀" nil t) ;; (replace-match "\\1 ") (let ((start (match-beginning 1)) (end (match-end 1))) (goto-char end) (add-text-properties start end '(face bold)) (delete-region end (match-end 0)) (delete-region (match-beginning 0) start)))) (defun oald7-arrange-abbrev (entry) (while (re-search-forward "\n[ \t]+↑ \\([^↓ ]+\\) ↓" nil t) (replace-match "[\\1]") (let ((start (match-beginning 0)) (end (match-end 0))) ;; (goto-char end) (add-text-properties start end '(face small-capital)) (goto-char start) (insert-string " ") )) (goto-line 1) (while (re-search-forward "\n[ \t]+\\(---[^ ]+ \\)" nil t) (replace-match " \\1") ) (goto-line 1) (while (re-search-forward "\\(→[  ]\\)" nil t) (replace-match "⇒ ") (let ((start (match-beginning 0)) (end (match-end 0))) ;; (goto-char end) (add-text-properties start end '(face bold)) ))) (defun oald7-arrange-headwords (entry) (while (re-search-forward "♯\\([^♭]+\\)♭" nil t) (replace-match "\\1") (let ((start (match-beginning 0)) (end (match-end 0))) ;; (goto-char end) (add-text-properties start end '(face font-lock-headwords-face)) ;; (goto-char start) ;; (insert-string " ") ))) (defun oald7-arrange-remove-abbrev (entry) (while (re-search-forward "\\(; NAmE[ \t]+\\)[/;]" nil t) (replace-match "" t t nil 1)) (goto-line 1) (while (re-search-forward "\\(; NAmE[ \t]+\\)[^ ]" nil t) (replace-match "; NAmE " t t nil 1))) (defun oald7-arrange-remove-spaces (entry) (while (re-search-forward "/\\( [ ]+\\)" nil t) (replace-match "" t t nil 1)) (goto-line 1) (while (re-search-forward "\\( / \\)" nil t) (replace-match "/" t t nil 1)) (goto-line 1) (while (re-search-forward "\\( ◆ \\)" nil t) (replace-match "/" t t nil 1)) (goto-line 1) (while (re-search-forward "[ \t]?\\([:;]\\)[ \t\n]+" nil t) (replace-match "\\1 ")) (goto-line 1) ;; (while (re-search-forward "\\(\n[\n]+\\)" nil t) ;; (replace-match "\n")) ) (defun oald7-arrange-panels (entry) (while (re-search-forward "【[^】]+】" nil t) (replace-match "[HELP] ") (let ((start (match-beginning 0)) (end (match-end 0))) (add-text-properties start end '(face small-capital)))) (goto-line 1) (while (re-search-forward "〔[^〕]+〕" nil t) (replace-match "[ETYMOL] ") (let ((start (match-beginning 0)) (end (match-end 0))) (add-text-properties start end '(face small-capital)))) (goto-line 1) (while (re-search-forward "「[^」]+」" nil t) (replace-match "[IDM] ") (let ((start (match-beginning 0)) (end (match-end 0))) (add-text-properties start end '(face small-capital)))) (goto-line 1) (while (re-search-forward "『[^』]+』" nil t) (replace-match "\n[PHR V] ") (let ((start (match-beginning 0)) (end (match-end 0))) (add-text-properties start end '(face small-capital))))) (defun oald7-arrange-panels-2 (entry) (while (re-search-forward "[【〔「『][▼]?[ ]?\\([^】』」〕】]+\\)[】』」〕】]" nil t) ;; (while (re-search-forward "【[▼]?[ ]?\\([^】]+\\)】" nil t) (replace-match "(\\1) ") (let ((start (match-beginning 0)) (end (match-end 0))) (add-text-properties start end '(face small-capital))))) (lookup-set-dictionary-option "ndeb+/Users/fukuda/Dicts/OALD_7:oald7" ':arranges '(ndeb-arrange-bmp ndeb-arrange-jpeg ndeb-arrange-wave ndeb-arrange-indent ndeb-arrange-scripts ndeb-arrange-ignore ndeb-arrange-no-newline ndeb-arrange-prev-next lookup-arrange-references lookup-arrange-gaijis lookup-arrange-squeezed-references lookup-arrange-default-headings oald7-arrange-examples oald7-arrange-numbers ;; oald7-arrange-abbrev ;; oald7-arrange-name ;; oald7-arrange-remove-abbrev ;; oald7-arrange-remove-spaces ;; oald7-arrange-headwords ;; oald7-arrange-panels-2 ;; ndeb-arrange-fill-lines ndeb-arrange-snd-autoplay))