Mercurial > hg > xemacs-beta
diff lisp/skk/skk-menu.el @ 219:262b8bb4a523 r20-4b8
Import from CVS: tag r20-4b8
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:09:35 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/skk/skk-menu.el Mon Aug 13 10:09:35 2007 +0200 @@ -0,0 +1,491 @@ +;;; skk-menu.el --- SKK Menul related functions. +;; Copyright (C) 1996, 1997 Mikio Nakajima <minakaji@osaka.email.ne.jp> + +;; Author: Mikio Nakajima <minakaji@osaka.email.ne.jp> +;; Version: $Id: skk-menu.el,v 1.1 1997/12/02 08:48:38 steve Exp $ +;; Keywords: japanese +;; Last Modified: $Date: 1997/12/02 08:48:38 $ + +;; 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 Free Software Foundation; either versions 2, or (at your option) +;; any later version. + +;; This program is distributed in the hope that it will be useful +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with SKK, see the file COPYING. If not, write to the Free +;; Software Foundation Inc., 59 Temple Place - Suite 330, Boston, +;; MA 02111-1307, USA. + +;;; Commentary: + +;; Following people contributed modifications to skk.el (Alphabetical order): + +;;; Change log: +;;; derived from skk.el 9.6. + +;;; Code: +(require 'skk-foreword) +(require 'skk-vars) + +(defvar skk-menu-annotation-buffer "*SKK Menu Annotation*" + "SKK $B%a%K%e!<$N$?$a$NCp<a$rI=<($9$k%P%C%U%!!#(B" ) + +(defun skk-menu-setup-annotation-buffer (annotation) + ;; skk-menu-annotation-buffer $B$r:n$j!"(BANNOTATION $B$rI=<($9$k!#(B + (if (and annotation (not (string= annotation ""))) + (save-current-buffer + (delete-other-windows) + (switch-to-buffer (get-buffer-create skk-menu-annotation-buffer)) + (delete-region (point-min) (point-max)) + (insert annotation) + (goto-char (point-min)) ))) + +(defun skk-menu-change-user-option (var on-alist off-alist) + ;; VAR $B$N%I%-%e%a%s%H$rI=<($7$F%f!<%6!<$N;X<($K=>$$$=$NCM$K(B non-nil/nil $B$rBe(B + ;; $BF~$9$k!#(B + ;; ON-ALIST $B$K$O!"%*%W%7%g%s(B VAR $B$NCM$r(B non-nil $B$K$9$k$H$-$K@_Dj$9$kJQ?t$r!"(B + ;; OFF-ALIST $B$O(B VAR $B$NCM$r(B nil $B$K$9$k>l9g$N@_Dj$r(B + ;; '(($BJQ?tL>(B0 . $BCM(B0) ($BJQ?tL>(B1 . $BCM(B1) ... ($BJQ?tL>(Bn . $BCM(Bn)) + ;; $B$N7A$GO"A[%j%9%H$G;XDj$9$k!#(BON-ALIST, OFF-ALIST $B$K$O(B VAR $B<+?H$N@_Dj$b;XDj(B + ;; $B$9$kI,MW$,$"$k!#(B + (let ( + ;; $B%@%$%"%m%0%\%C%/%9$,%U%l!<%`$NCf1{$K=P$F(B annotation $B%P%C%U%!$,FI$a(B + ;; $B$J$$$N$G!"%@%$%"%m%0%\%C%/%9$r=P$5$J$$$h$&$K$9$k!#(B + (last-nonmenu-event t) + (on (symbol-value var)) + answer ) + (save-window-excursion + (skk-menu-setup-annotation-buffer + (concat (format "$B8=:_$N(B %S $B$NCM$O!"(B%S $B$G$9!#(B\n\n" var on) + (documentation-property var 'variable-documentation) )) + ;; y-or-n-p $B$G$bNI$$$N$@$,!"(By-or-n-p $B$O%_%K%P%C%U%!$rMxMQ$7$F$$$F%_%K%P%C(B + ;; $B%U%!$r;H$C$F$J$$$N$G!"(Bannotation buffer $B$K%+!<%=%k$r0\$7!"J8;zNs$r%3(B + ;; $B%T!<$7$?$j$G$-$J$/$J$C$F$7$^$&!#(B + (setq answer (yes-or-no-p (format + (if skk-japanese-message-and-error + "$B$3$N%*%W%7%g%s$r(B %S $B$K$7$^$9$+!)(B" + "Turn %S this option?" ) + (if on "off" "on") ))) + (if answer + (if on + ;; turn off + (skk-menu-change-user-option-1 off-alist) + ;; turn on + (skk-menu-change-user-option-1 on-alist) ))))) + +(defun skk-menu-change-user-option-1 (alist) + ;; ALIST $B$r(B skk-menu-modified-user-option $B$N:G8eJ}$KO"7k$7!"(BALIST $B$NCM$NMWAG(B + ;; $B$N(B car $B$K(B cdr $B$NCM$rBeF~$9$k!#(B + (let ((n 0) + cell modified ) + (while (setq cell (nth n alist)) + (setq n (1+ n) + modified (assq (car cell) skk-menu-modified-user-option) ) + (if modified + (setq skk-menu-modified-user-option + ;; $B4{$KF1$8JQ?t$r%b%G%#%U%!%$$7$F$$$?$i!"8E$$$b$N$r:o=|$9$k!#(B + (delq modified skk-menu-modified-user-option) )) + (set (car cell) (cdr cell)) ) + (setq skk-menu-modified-user-option + (nconc skk-menu-modified-user-option alist) ))) + +;;;###skk-autoload +(defun skk-menu-save-modified-user-option () + ;; SKK $B$N%a%K%e!<$GJQ99$5$l$?%f!<%6!<%*%W%7%g%s$r(B skk-init-file $B$NKvHx$KJ]B8(B + ;; $B$9$k!#(B + (if (and + skk-menu-modified-user-option + (skk-yes-or-no-p + "SKK $B%*%W%7%g%s$,5/F08eJQ99$5$l$F$$$^$9!#$3$NCM$rJ]B8$7$^$9$+!)(B" + "Changed user options after SKK invoked. Save the variables?" )) + (progn + (skk-menu-save-modified-user-option-1) + (skk-message + "SKK $B$N%*%W%7%g%s@_Dj$r(B %s $B$KJ]B8$7$^$7$?(B" + "Save user options of SKK in %s" + skk-init-file ) + (sit-for 1) ))) + +(defun skk-menu-save-modified-user-option-1 () + ;; skk-menu-save-modified-user-option-1 $B$N%5%V%k!<%A%s!#(B~/.skk $B$K(B + ;; skk-menu-modified-user-option $B$NCM$r=q$-9~$_<!$K(B skk.el $B$,5/F0$5$l$?$H$-(B + ;; $B$G$bJQ99$5$l$?CM$rM-8z$K$9$k!#(B + ;; $B2a5n$K4{$K$3$N4X?t$K$h$j<0$,=q$-9~$^$l$F$$$?$i!"4{DjCM$H$ND4@0$b9T$J$&!#(B + (save-match-data + (with-current-buffer (find-file-noselect (expand-file-name skk-init-file)) + (let ( + ;; $B%G%3%l!<%7%g%s$J$7!#(B + (hilit-auto-highlight-maxout 0) + (font-lock-maximum-size 0) + (require-final-newline t) + buffer-read-only + start first-kiss cell ) + (goto-char (point-min)) + (setq first-kiss + (not + (re-search-forward + "^;; $B2<5-$N<0$O(B SKK $B$K$h$C$F<+F0E*$K=q$-9~$^$l$?$b$N$G$9!#(B$" + nil t ))) + (if first-kiss + (progn + (setq start (goto-char (point-max))) + (insert + ";; $B2<5-$N<0$O(B SKK $B$K$h$C$F<+F0E*$K=q$-9~$^$l$?$b$N$G$9!#(B\n" + )) + (let ((alist skk-menu-modified-user-option) + var) + (setq start (point)) + (re-search-forward + "^;; $B>e5-$N<0$O(B SKK $B$K$h$C$F<+F0E*$K=q$-9~$^$l$?$b$N$G$9!#(B$" + nil ) + (while (setq var (car (car alist))) + (skk-save-point + (and (re-search-backward (prin1-to-string var) start t) + (delete-region (progn (beginning-of-line) (point)) + (progn (forward-line 1) (point)) ))) + (setq alist (cdr alist)) ) + (beginning-of-line) )) + ;; $B$5$F!"$3$3$+$i$O6&DL$N=hM}$G$9!#(B + (while skk-menu-modified-user-option + (setq cell (car skk-menu-modified-user-option) + skk-menu-modified-user-option + (cdr skk-menu-modified-user-option) ) + (insert "(setq " (prin1-to-string (car cell)) " " + (prin1-to-string (cdr cell)) ")\n" )) + ;;(delete-char -1) + (if first-kiss + (insert + ";; $B>e5-$N<0$O(B SKK $B$K$h$C$F<+F0E*$K=q$-9~$^$l$?$b$N$G$9!#(B\n" + )) + (save-buffer) + (kill-buffer (current-buffer)) )))) + +;;;###skk-autoload +(defun skk-menu-process-okuri-early () + "skk-process-okuri-early $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B +$BN>N)$G$-$J$$%*%W%7%g%s$NCM$rD4@0$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-process-okuri-early + ;; on-alist + '((skk-process-okuri-early . t) + (skk-auto-okuri-process . nil) + (skk-henkan-okuri-strictly . nil) + (skk-henkan-strict-okuri-precedence . nil) + (skk-kakutei-early . nil) ) + ;; off-alist + '((skk-process-okuri-early . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-henkan-okuri-strictly () + "skk-henkan-okuri-strictly $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B +$BN>N)$G$-$J$$%*%W%7%g%s$NCM$rD4@0$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-henkan-okuri-strictly + ;; on-alist + '((skk-henkan-okuri-strictly . t) + (skk-process-okuri-early . nil) ) + ;; off-alist + '((skk-henkan-okuri-strictly . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-henkan-strict-okuri-precedence () + "skk-henkan-strict-okuri-precedence $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B +$BN>N)$G$-$J$$%*%W%7%g%s$NCM$rD4@0$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-henkan-strict-okuri-precedence + ;; on-alist + '((skk-henkan-strict-okuri-precedence . t) + (skk-henkan-okuri-strictly . nil) + (skk-process-okuri-early . nil) ) + ;; off-alist + '((skk-henkan-strict-okuri-precedence . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-auto-okuri-process () + "skk-auto-okuri-process $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B +$BN>N)$G$-$J$$%*%W%7%g%s$NCM$rD4@0$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-auto-okuri-process + ;; on-alist + '((skk-auto-okuri-process . t) + (skk-process-okuri-early . nil) ) + ;; off-alist + '((skk-auto-okuri-process . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-kakutei-early () + "skk-kakutei-early $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B +$BN>N)$G$-$J$$%*%W%7%g%s$NCM$rD4@0$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-kakutei-early + ;; on-alist + '((skk-kakutei-early . t) + (skk-process-okuri-early . nil) ) + ;; off-alist + '((skk-kakutei-early . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-egg-like-newline () + "skk-egg-like-newline $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-egg-like-newline + '((skk-egg-like-newline . t)) + '((skk-egg-like-newline . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-delete-implies-kakutei () + "skk-delete-implies-kakutei $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-delete-implies-kakutei + '((skk-delete-implies-kakutei . t)) + '((skk-delete-implies-kakutei . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-allow-spaces-newlines-and-tabs () + "skk-allow-spaces-newlines-and-tabs $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-allow-spaces-newlines-and-tabs + '((skk-allow-spaces-newlines-and-tabs . t)) + '((skk-allow-spaces-newlines-and-tabs . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-convert-okurigana-into-katakana () + "skk-convert-okurigana-into-katakana $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-convert-okurigana-into-katakana + '((skk-convert-okurigana-into-katakana . t)) + '((skk-convert-okurigana-into-katakana . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-delete-okuri-when-quit () + "skk-delete-okuri-when-quit $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-delete-okuri-when-quit + '((skk-delete-okuri-when-quit . t)) + '((skk-delete-okuri-when-quit . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-echo () + "skk-echo $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-echo + '((skk-echo . t)) + '((skk-echo . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-use-numeric-conversion () + "skk-use-numeric-conversion $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-use-numeric-conversion + '((skk-use-numeric-conversion . t)) + '((skk-use-numeric-conversion . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-use-overlay () + "skk-use-face $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-use-face + '((skk-use-face . t)) + '((skk-use-face . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-auto-insert-paren () + "skk-auto-insert-paren $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-auto-insert-paren + '((skk-auto-insert-paren . t)) + '((skk-auto-insert-paren . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-japanese-message-and-error () + "skk-japanese-message-and-error $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-japanese-message-and-error + '((skk-japanese-message-and-error . t)) + '((skk-japanese-message-and-error . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +;;(defun skk-menu-byte-compile-init-file () +;; "skk-byte-compile-init-file $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" +;; (interactive) +;; (skk-menu-change-user-option +;; 'skk-byte-compile-init-file +;; '((skk-byte-compile-init-file . t)) +;; '((skk-byte-compile-init-file . nil)) ) +;; (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-count-private-jisyo-entries-exactly () + "skk-count-private-jisyo-candidates-exactly $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-count-private-jisyo-candidates-exactly + '((skk-count-private-jisyo-candidates-exactly . t)) + '((skk-count-private-jisyo-candidates-exactly . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-auto-henkan () + "skk-auto-start-henkan $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-auto-start-henkan + '((skk-auto-start-henkan . t) + (skk-auto-okuri-process . t) ) + '((skk-auto-start-henkan . nil)) ) + (skk-set-cursor-properly) ) + +;; for skk-comp.el +;;;###skk-autoload +(defun skk-menu-dabbrev-like-completion () + "skk-dabbrev-like-completion $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (require 'skk-comp) + (skk-menu-change-user-option + 'skk-dabbrev-like-completion + '((skk-dabbrev-like-completion . t)) + '((skk-dabbrev-like-completion . nil)) ) + (skk-set-cursor-properly) ) + +;; for skk-gadget.el +;;;###skk-autoload +(defun skk-menu-date-ad () + "skk-date-ad $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (require 'skk-gadget) + (skk-menu-change-user-option + 'skk-date-ad + '((skk-date-ad . t)) + '((skk-date-ad . nil)) ) + (skk-set-cursor-properly) ) + +;; for skk-kakasi.el +;;;###skk-autoload +(defun skk-menu-romaji-*-by-hepburn () + "skk-romaji-*-by-hepburn $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (require 'skk-kakasi) + (skk-menu-change-user-option + 'skk-romaji-*-by-hepburn + '((skk-romaji-*-by-hepburn . t)) + '((skk-romaji-*-by-hepburn . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-use-kakasi () + "skk-use-kakasi $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (require 'skk-kakasi) + (skk-menu-change-user-option + 'skk-use-kakasi + '((skk-use-kakasi . t)) + '((skk-use-kakasi . nil)) ) + (skk-set-cursor-properly) ) + +;; for skk-num.el +;;;###skk-autoload +(defun skk-menu-numeric-conversion-float-num () + "skk-numeric-conversion-float-num $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (require 'skk-num) + (skk-menu-change-user-option + 'skk-numeric-conversion-float-num + '((skk-numeric-conversion-float-num . t)) + '((skk-numeric-conversion-float-num . nil)) ) + (skk-set-cursor-properly) ) + +;; for skk-server.el +;;;###skk-autoload +(defun skk-menu-report-server-response () + "skk-report-server-response $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (require 'skk-server) + (skk-menu-change-user-option + 'skk-report-server-response + '((skk-report-server-response . t)) + '((skk-report-server-response . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-server-debug () + "skk-server-debug $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (require 'skk-server) + (skk-menu-change-user-option + 'skk-server-debug + '((skk-server-debug . t)) + '((skk-server-debug . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-compare-jisyo-size-when-saving () + "skk-compare-jisyo-size-when-saving $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-compare-jisyo-size-when-saving + '((skk-compare-jisyo-size-when-saving . t)) + '((skk-compare-jisyo-size-when-saving . nil)) ) + (skk-set-cursor-properly) ) + +;;;###skk-autoload +(defun skk-menu-use-color-cursor () + "skk-use-color-cursor $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-use-color-cursor + '((skk-use-color-cursor . t)) + '((skk-use-color-cursor . nil)) ) + (skk-set-cursor-properly) ) + +(defun skk-menu-uniq-numerals () + "skk-uniq-numerals $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" + (interactive) + (skk-menu-change-user-option + 'skk-uniq-numerals + '((skk-uniq-numerals . t)) + '((skk-uniq-numerals . nil)) )) + +;;(defun skk-menu- () +;; "skk- $B$r%9%$%C%A%*%s(B/$B%*%U$9$k!#(B" +;; (interactive) +;; (skk-menu-change-user-option +;; 'skk- +;; '((skk- . t)) +;; '((skk- . nil)) )) + +;;; skk-menu.el ends here