Revision: 7424
Author: deton.kih
Date: Mon Jan 23 02:43:00 2012
Log: * Support binding procedure to key sequence.
* scm/tutcode.scm
- (tutcode-stroke-help-update-alist-with-rule):
Add label for procedure.
- (tutcode-proc-state-on,
tutcode-proc-state-yomi,
tutcode-proc-state-bushu,
tutcode-proc-state-interactive-bushu):
Call procedure bound to key sequence.
- (tutcode-selection-filter): New function.
http://code.google.com/p/uim/source/detail?r=7424
Modified:
/trunk/scm/tutcode.scm
=======================================
--- /trunk/scm/tutcode.scm Wed Jan 11 00:17:24 2012
+++ /trunk/scm/tutcode.scm Mon Jan 23 02:43:00 2012
@@ -1963,75 +1963,81 @@
(cadr candlist))
(car candlist)))
(candstr
- (case cand
- ((tutcode-mazegaki-start) "¡þ")
- ((tutcode-latin-conv-start) "/")
- ((tutcode-kanji-code-input-start) "¢¢")
- ((tutcode-history-start) "¡ý")
- ((tutcode-bushu-start) "¢¡")
- ((tutcode-interactive-bushu-start) "¢§")
- ((tutcode-postfix-bushu-start) "¢¥")
- ((tutcode-selection-mazegaki-start) "¢¤s")
- ((tutcode-selection-mazegaki-inflection-start) "¡½s")
- ((tutcode-postfix-mazegaki-start) "¢¤")
- ((tutcode-postfix-mazegaki-1-start) "¢¤1")
- ((tutcode-postfix-mazegaki-2-start) "¢¤2")
- ((tutcode-postfix-mazegaki-3-start) "¢¤3")
- ((tutcode-postfix-mazegaki-4-start) "¢¤4")
- ((tutcode-postfix-mazegaki-5-start) "¢¤5")
- ((tutcode-postfix-mazegaki-6-start) "¢¤6")
- ((tutcode-postfix-mazegaki-7-start) "¢¤7")
- ((tutcode-postfix-mazegaki-8-start) "¢¤8")
- ((tutcode-postfix-mazegaki-9-start) "¢¤9")
- ((tutcode-postfix-mazegaki-inflection-start) "¡½")
- ((tutcode-postfix-mazegaki-inflection-1-start) "¡½1")
- ((tutcode-postfix-mazegaki-inflection-2-start) "¡½2")
- ((tutcode-postfix-mazegaki-inflection-3-start) "¡½3")
- ((tutcode-postfix-mazegaki-inflection-4-start) "¡½4")
- ((tutcode-postfix-mazegaki-inflection-5-start) "¡½5")
- ((tutcode-postfix-mazegaki-inflection-6-start) "¡½6")
- ((tutcode-postfix-mazegaki-inflection-7-start) "¡½7")
- ((tutcode-postfix-mazegaki-inflection-8-start) "¡½8")
- ((tutcode-postfix-mazegaki-inflection-9-start) "¡½9")
- ((tutcode-selection-katakana-start) "¥«s")
- ((tutcode-postfix-katakana-start) "¥«")
- ((tutcode-postfix-katakana-1-start) "¥«1")
- ((tutcode-postfix-katakana-2-start) "¥«2")
- ((tutcode-postfix-katakana-3-start) "¥«3")
- ((tutcode-postfix-katakana-4-start) "¥«4")
- ((tutcode-postfix-katakana-5-start) "¥«5")
- ((tutcode-postfix-katakana-6-start) "¥«6")
- ((tutcode-postfix-katakana-7-start) "¥«7")
- ((tutcode-postfix-katakana-8-start) "¥«8")
- ((tutcode-postfix-katakana-9-start) "¥«9")
- ((tutcode-selection-kanji2seq-start) "/s")
- ((tutcode-postfix-kanji2seq-start) "/@")
- ((tutcode-postfix-kanji2seq-1-start) "/1")
- ((tutcode-postfix-kanji2seq-2-start) "/2")
- ((tutcode-postfix-kanji2seq-3-start) "/3")
- ((tutcode-postfix-kanji2seq-4-start) "/4")
- ((tutcode-postfix-kanji2seq-5-start) "/5")
- ((tutcode-postfix-kanji2seq-6-start) "/6")
- ((tutcode-postfix-kanji2seq-7-start) "/7")
- ((tutcode-postfix-kanji2seq-8-start) "/8")
- ((tutcode-postfix-kanji2seq-9-start) "/9")
- ((tutcode-selection-seq2kanji-start) "´Ás")
- ((tutcode-clipboard-seq2kanji-start) "´Ác")
- ((tutcode-postfix-seq2kanji-start) "´Á@")
- ((tutcode-postfix-seq2kanji-1-start) "´Á1")
- ((tutcode-postfix-seq2kanji-2-start) "´Á2")
- ((tutcode-postfix-seq2kanji-3-start) "´Á3")
- ((tutcode-postfix-seq2kanji-4-start) "´Á4")
- ((tutcode-postfix-seq2kanji-5-start) "´Á5")
- ((tutcode-postfix-seq2kanji-6-start) "´Á6")
- ((tutcode-postfix-seq2kanji-7-start) "´Á7")
- ((tutcode-postfix-seq2kanji-8-start) "´Á8")
- ((tutcode-postfix-seq2kanji-9-start) "´Á9")
- ((tutcode-auto-help-redisplay) "¢ã")
- ((tutcode-help) "¡©")
- ((tutcode-help-clipboard) "?c")
- ((tutcode-undo) "¢Î")
- (else cand)))
+ (cond
+ ((string? cand)
+ cand)
+ ((symbol? cand)
+ (case cand
+ ((tutcode-mazegaki-start) "¡þ")
+ ((tutcode-latin-conv-start) "/")
+ ((tutcode-kanji-code-input-start) "¢¢")
+ ((tutcode-history-start) "¡ý")
+ ((tutcode-bushu-start) "¢¡")
+ ((tutcode-interactive-bushu-start) "¢§")
+ ((tutcode-postfix-bushu-start) "¢¥")
+ ((tutcode-selection-mazegaki-start) "¢¤s")
+ ((tutcode-selection-mazegaki-inflection-start) "¡½s")
+ ((tutcode-postfix-mazegaki-start) "¢¤")
+ ((tutcode-postfix-mazegaki-1-start) "¢¤1")
+ ((tutcode-postfix-mazegaki-2-start) "¢¤2")
+ ((tutcode-postfix-mazegaki-3-start) "¢¤3")
+ ((tutcode-postfix-mazegaki-4-start) "¢¤4")
+ ((tutcode-postfix-mazegaki-5-start) "¢¤5")
+ ((tutcode-postfix-mazegaki-6-start) "¢¤6")
+ ((tutcode-postfix-mazegaki-7-start) "¢¤7")
+ ((tutcode-postfix-mazegaki-8-start) "¢¤8")
+ ((tutcode-postfix-mazegaki-9-start) "¢¤9")
+ ((tutcode-postfix-mazegaki-inflection-start) "¡½")
+ ((tutcode-postfix-mazegaki-inflection-1-start) "¡½1")
+ ((tutcode-postfix-mazegaki-inflection-2-start) "¡½2")
+ ((tutcode-postfix-mazegaki-inflection-3-start) "¡½3")
+ ((tutcode-postfix-mazegaki-inflection-4-start) "¡½4")
+ ((tutcode-postfix-mazegaki-inflection-5-start) "¡½5")
+ ((tutcode-postfix-mazegaki-inflection-6-start) "¡½6")
+ ((tutcode-postfix-mazegaki-inflection-7-start) "¡½7")
+ ((tutcode-postfix-mazegaki-inflection-8-start) "¡½8")
+ ((tutcode-postfix-mazegaki-inflection-9-start) "¡½9")
+ ((tutcode-selection-katakana-start) "¥«s")
+ ((tutcode-postfix-katakana-start) "¥«")
+ ((tutcode-postfix-katakana-1-start) "¥«1")
+ ((tutcode-postfix-katakana-2-start) "¥«2")
+ ((tutcode-postfix-katakana-3-start) "¥«3")
+ ((tutcode-postfix-katakana-4-start) "¥«4")
+ ((tutcode-postfix-katakana-5-start) "¥«5")
+ ((tutcode-postfix-katakana-6-start) "¥«6")
+ ((tutcode-postfix-katakana-7-start) "¥«7")
+ ((tutcode-postfix-katakana-8-start) "¥«8")
+ ((tutcode-postfix-katakana-9-start) "¥«9")
+ ((tutcode-selection-kanji2seq-start) "/s")
+ ((tutcode-postfix-kanji2seq-start) "/@")
+ ((tutcode-postfix-kanji2seq-1-start) "/1")
+ ((tutcode-postfix-kanji2seq-2-start) "/2")
+ ((tutcode-postfix-kanji2seq-3-start) "/3")
+ ((tutcode-postfix-kanji2seq-4-start) "/4")
+ ((tutcode-postfix-kanji2seq-5-start) "/5")
+ ((tutcode-postfix-kanji2seq-6-start) "/6")
+ ((tutcode-postfix-kanji2seq-7-start) "/7")
+ ((tutcode-postfix-kanji2seq-8-start) "/8")
+ ((tutcode-postfix-kanji2seq-9-start) "/9")
+ ((tutcode-selection-seq2kanji-start) "´Ás")
+ ((tutcode-clipboard-seq2kanji-start) "´Ác")
+ ((tutcode-postfix-seq2kanji-start) "´Á@")
+ ((tutcode-postfix-seq2kanji-1-start) "´Á1")
+ ((tutcode-postfix-seq2kanji-2-start) "´Á2")
+ ((tutcode-postfix-seq2kanji-3-start) "´Á3")
+ ((tutcode-postfix-seq2kanji-4-start) "´Á4")
+ ((tutcode-postfix-seq2kanji-5-start) "´Á5")
+ ((tutcode-postfix-seq2kanji-6-start) "´Á6")
+ ((tutcode-postfix-seq2kanji-7-start) "´Á7")
+ ((tutcode-postfix-seq2kanji-8-start) "´Á8")
+ ((tutcode-postfix-seq2kanji-9-start) "´Á9")
+ ((tutcode-auto-help-redisplay) "¢ã")
+ ((tutcode-help) "¡©")
+ ((tutcode-help-clipboard) "?c")
+ ((tutcode-undo) "¢Î")
+ (else cand)))
+ ((procedure? cand)
+ "¦Ë")))
(cand-hint
(or
;; ¥·¡¼¥±¥ó¥¹ÅÓÃæ¤Î¾ì¹ç¤Ïhint-mark(*)ÉÕ¤
@@ -2997,157 +3003,161 @@
(if (and tutcode-use-completion?
(> tutcode-completion-chars-min 0))
(tutcode-check-completion pc #f 0)))
- ((eq? res 'tutcode-mazegaki-start)
- (tutcode-context-set-latin-conv! pc #f)
- (tutcode-context-set-postfix-yomi-len! pc 0)
- (tutcode-context-set-state! pc 'tutcode-state-yomi))
- ((eq? res 'tutcode-latin-conv-start)
- (tutcode-context-set-latin-conv! pc #t)
- (tutcode-context-set-postfix-yomi-len! pc 0)
- (tutcode-context-set-state! pc 'tutcode-state-yomi))
- ((eq? res 'tutcode-kanji-code-input-start)
- (tutcode-context-set-state! pc 'tutcode-state-code))
- ((eq? res 'tutcode-bushu-start)
- (tutcode-context-set-undo! pc ()) ;
ºÆµ¢ÅªÉô¼ó¹çÀ®ÊÑ´¹¤ÎundoÍÑ
- (tutcode-context-set-state! pc 'tutcode-state-bushu)
- (tutcode-append-string pc "¢¥"))
- ((eq? res 'tutcode-interactive-bushu-start)
- (tutcode-context-set-prediction-nr! pc 0)
- (tutcode-context-set-state! pc
- 'tutcode-state-interactive-bushu))
- ((eq? res 'tutcode-history-start)
- (tutcode-begin-history pc))
- ((eq? res 'tutcode-undo)
- (tutcode-undo pc))
- ((eq? res 'tutcode-help)
- (tutcode-help pc))
- ((eq? res 'tutcode-help-clipboard)
- (tutcode-help-clipboard pc))
- ((eq? res 'tutcode-auto-help-redisplay)
- (tutcode-auto-help-redisplay pc))
- ((eq? res 'tutcode-postfix-bushu-start)
- (tutcode-begin-postfix-bushu-conversion pc))
- ((eq? res 'tutcode-postfix-mazegaki-start)
- (tutcode-begin-postfix-mazegaki-conversion pc #f #f #f))
- ((eq? res 'tutcode-postfix-mazegaki-1-start)
- (tutcode-begin-postfix-mazegaki-conversion pc 1 #t
- tutcode-use-recursive-learning?))
- ((eq? res 'tutcode-postfix-mazegaki-2-start)
- (tutcode-begin-postfix-mazegaki-conversion pc 2 #t
- tutcode-use-recursive-learning?))
- ((eq? res 'tutcode-postfix-mazegaki-3-start)
- (tutcode-begin-postfix-mazegaki-conversion pc 3 #t
- tutcode-use-recursive-learning?))
- ((eq? res 'tutcode-postfix-mazegaki-4-start)
- (tutcode-begin-postfix-mazegaki-conversion pc 4 #t
- tutcode-use-recursive-learning?))
- ((eq? res 'tutcode-postfix-mazegaki-5-start)
- (tutcode-begin-postfix-mazegaki-conversion pc 5 #t
- tutcode-use-recursive-learning?))
- ((eq? res 'tutcode-postfix-mazegaki-6-start)
- (tutcode-begin-postfix-mazegaki-conversion pc 6 #t
- tutcode-use-recursive-learning?))
- ((eq? res 'tutcode-postfix-mazegaki-7-start)
- (tutcode-begin-postfix-mazegaki-conversion pc 7 #t
- tutcode-use-recursive-learning?))
- ((eq? res 'tutcode-postfix-mazegaki-8-start)
- (tutcode-begin-postfix-mazegaki-conversion pc 8 #t
- tutcode-use-recursive-learning?))
- ((eq? res 'tutcode-postfix-mazegaki-9-start)
- (tutcode-begin-postfix-mazegaki-conversion pc 9 #t
- tutcode-use-recursive-learning?))
- ((eq? res 'tutcode-postfix-mazegaki-inflection-start)
- (tutcode-begin-postfix-mazegaki-inflection-conversion pc
#f))
- ((eq? res 'tutcode-postfix-mazegaki-inflection-1-start)
- (tutcode-begin-postfix-mazegaki-inflection-conversion pc
1))
- ((eq? res 'tutcode-postfix-mazegaki-inflection-2-start)
- (tutcode-begin-postfix-mazegaki-inflection-conversion pc
2))
- ((eq? res 'tutcode-postfix-mazegaki-inflection-3-start)
- (tutcode-begin-postfix-mazegaki-inflection-conversion pc
3))
- ((eq? res 'tutcode-postfix-mazegaki-inflection-4-start)
- (tutcode-begin-postfix-mazegaki-inflection-conversion pc
4))
- ((eq? res 'tutcode-postfix-mazegaki-inflection-5-start)
- (tutcode-begin-postfix-mazegaki-inflection-conversion pc
5))
- ((eq? res 'tutcode-postfix-mazegaki-inflection-6-start)
- (tutcode-begin-postfix-mazegaki-inflection-conversion pc
6))
- ((eq? res 'tutcode-postfix-mazegaki-inflection-7-start)
- (tutcode-begin-postfix-mazegaki-inflection-conversion pc
7))
- ((eq? res 'tutcode-postfix-mazegaki-inflection-8-start)
- (tutcode-begin-postfix-mazegaki-inflection-conversion pc
8))
- ((eq? res 'tutcode-postfix-mazegaki-inflection-9-start)
- (tutcode-begin-postfix-mazegaki-inflection-conversion pc
9))
- ((eq? res 'tutcode-postfix-katakana-start)
- (tutcode-begin-postfix-katakana-conversion pc #f))
- ((eq? res 'tutcode-postfix-katakana-1-start)
- (tutcode-begin-postfix-katakana-conversion pc 1))
- ((eq? res 'tutcode-postfix-katakana-2-start)
- (tutcode-begin-postfix-katakana-conversion pc 2))
- ((eq? res 'tutcode-postfix-katakana-3-start)
- (tutcode-begin-postfix-katakana-conversion pc 3))
- ((eq? res 'tutcode-postfix-katakana-4-start)
- (tutcode-begin-postfix-katakana-conversion pc 4))
- ((eq? res 'tutcode-postfix-katakana-5-start)
- (tutcode-begin-postfix-katakana-conversion pc 5))
- ((eq? res 'tutcode-postfix-katakana-6-start)
- (tutcode-begin-postfix-katakana-conversion pc 6))
- ((eq? res 'tutcode-postfix-katakana-7-start)
- (tutcode-begin-postfix-katakana-conversion pc 7))
- ((eq? res 'tutcode-postfix-katakana-8-start)
- (tutcode-begin-postfix-katakana-conversion pc 8))
- ((eq? res 'tutcode-postfix-katakana-9-start)
- (tutcode-begin-postfix-katakana-conversion pc 9))
- ((eq? res 'tutcode-postfix-kanji2seq-start)
- (tutcode-begin-postfix-kanji2seq-conversion pc #f))
- ((eq? res 'tutcode-postfix-kanji2seq-1-start)
- (tutcode-begin-postfix-kanji2seq-conversion pc 1))
- ((eq? res 'tutcode-postfix-kanji2seq-2-start)
- (tutcode-begin-postfix-kanji2seq-conversion pc 2))
- ((eq? res 'tutcode-postfix-kanji2seq-3-start)
- (tutcode-begin-postfix-kanji2seq-conversion pc 3))
- ((eq? res 'tutcode-postfix-kanji2seq-4-start)
- (tutcode-begin-postfix-kanji2seq-conversion pc 4))
- ((eq? res 'tutcode-postfix-kanji2seq-5-start)
- (tutcode-begin-postfix-kanji2seq-conversion pc 5))
- ((eq? res 'tutcode-postfix-kanji2seq-6-start)
- (tutcode-begin-postfix-kanji2seq-conversion pc 6))
- ((eq? res 'tutcode-postfix-kanji2seq-7-start)
- (tutcode-begin-postfix-kanji2seq-conversion pc 7))
- ((eq? res 'tutcode-postfix-kanji2seq-8-start)
- (tutcode-begin-postfix-kanji2seq-conversion pc 8))
- ((eq? res 'tutcode-postfix-kanji2seq-9-start)
- (tutcode-begin-postfix-kanji2seq-conversion pc 9))
- ((eq? res 'tutcode-postfix-seq2kanji-start)
- (tutcode-begin-postfix-seq2kanji-conversion pc #f))
- ((eq? res 'tutcode-postfix-seq2kanji-1-start)
- (tutcode-begin-postfix-seq2kanji-conversion pc 1))
- ((eq? res 'tutcode-postfix-seq2kanji-2-start)
- (tutcode-begin-postfix-seq2kanji-conversion pc 2))
- ((eq? res 'tutcode-postfix-seq2kanji-3-start)
- (tutcode-begin-postfix-seq2kanji-conversion pc 3))
- ((eq? res 'tutcode-postfix-seq2kanji-4-start)
- (tutcode-begin-postfix-seq2kanji-conversion pc 4))
- ((eq? res 'tutcode-postfix-seq2kanji-5-start)
- (tutcode-begin-postfix-seq2kanji-conversion pc 5))
- ((eq? res 'tutcode-postfix-seq2kanji-6-start)
- (tutcode-begin-postfix-seq2kanji-conversion pc 6))
- ((eq? res 'tutcode-postfix-seq2kanji-7-start)
- (tutcode-begin-postfix-seq2kanji-conversion pc 7))
- ((eq? res 'tutcode-postfix-seq2kanji-8-start)
- (tutcode-begin-postfix-seq2kanji-conversion pc 8))
- ((eq? res 'tutcode-postfix-seq2kanji-9-start)
- (tutcode-begin-postfix-seq2kanji-conversion pc 9))
- ((eq? res 'tutcode-selection-mazegaki-start)
- (tutcode-begin-selection-mazegaki-conversion pc))
- ((eq? res 'tutcode-selection-mazegaki-inflection-start)
- (tutcode-begin-selection-mazegaki-inflection-conversion
pc))
- ((eq? res 'tutcode-selection-katakana-start)
- (tutcode-begin-selection-katakana-conversion pc))
- ((eq? res 'tutcode-selection-kanji2seq-start)
- (tutcode-begin-selection-kanji2seq-conversion pc))
- ((eq? res 'tutcode-selection-seq2kanji-start)
- (tutcode-begin-selection-seq2kanji-conversion pc))
- ((eq? res 'tutcode-clipboard-seq2kanji-start)
- (tutcode-begin-clipboard-seq2kanji-conversion pc))))))))))
+ ((symbol? res)
+ (case res
+ ((tutcode-mazegaki-start)
+ (tutcode-context-set-latin-conv! pc #f)
+ (tutcode-context-set-postfix-yomi-len! pc 0)
+ (tutcode-context-set-state! pc 'tutcode-state-yomi))
+ ((tutcode-latin-conv-start)
+ (tutcode-context-set-latin-conv! pc #t)
+ (tutcode-context-set-postfix-yomi-len! pc 0)
+ (tutcode-context-set-state! pc 'tutcode-state-yomi))
+ ((tutcode-kanji-code-input-start)
+ (tutcode-context-set-state! pc 'tutcode-state-code))
+ ((tutcode-bushu-start)
+ (tutcode-context-set-undo! pc
());ºÆµ¢ÅªÉô¼ó¹çÀ®ÊÑ´¹¤ÎundoÍÑ
+ (tutcode-context-set-state! pc 'tutcode-state-bushu)
+ (tutcode-append-string pc "¢¥"))
+ ((tutcode-interactive-bushu-start)
+ (tutcode-context-set-prediction-nr! pc 0)
+ (tutcode-context-set-state! pc
+ 'tutcode-state-interactive-bushu))
+ ((tutcode-history-start)
+ (tutcode-begin-history pc))
+ ((tutcode-undo)
+ (tutcode-undo pc))
+ ((tutcode-help)
+ (tutcode-help pc))
+ ((tutcode-help-clipboard)
+ (tutcode-help-clipboard pc))
+ ((tutcode-auto-help-redisplay)
+ (tutcode-auto-help-redisplay pc))
+ ((tutcode-postfix-bushu-start)
+ (tutcode-begin-postfix-bushu-conversion pc))
+ ((tutcode-postfix-mazegaki-start)
+ (tutcode-begin-postfix-mazegaki-conversion pc #f #f
#f))
+ ((tutcode-postfix-mazegaki-1-start)
+ (tutcode-begin-postfix-mazegaki-conversion pc 1 #t
+ tutcode-use-recursive-learning?))
+ ((tutcode-postfix-mazegaki-2-start)
+ (tutcode-begin-postfix-mazegaki-conversion pc 2 #t
+ tutcode-use-recursive-learning?))
+ ((tutcode-postfix-mazegaki-3-start)
+ (tutcode-begin-postfix-mazegaki-conversion pc 3 #t
+ tutcode-use-recursive-learning?))
+ ((tutcode-postfix-mazegaki-4-start)
+ (tutcode-begin-postfix-mazegaki-conversion pc 4 #t
+ tutcode-use-recursive-learning?))
+ ((tutcode-postfix-mazegaki-5-start)
+ (tutcode-begin-postfix-mazegaki-conversion pc 5 #t
+ tutcode-use-recursive-learning?))
+ ((tutcode-postfix-mazegaki-6-start)
+ (tutcode-begin-postfix-mazegaki-conversion pc 6 #t
+ tutcode-use-recursive-learning?))
+ ((tutcode-postfix-mazegaki-7-start)
+ (tutcode-begin-postfix-mazegaki-conversion pc 7 #t
+ tutcode-use-recursive-learning?))
+ ((tutcode-postfix-mazegaki-8-start)
+ (tutcode-begin-postfix-mazegaki-conversion pc 8 #t
+ tutcode-use-recursive-learning?))
+ ((tutcode-postfix-mazegaki-9-start)
+ (tutcode-begin-postfix-mazegaki-conversion pc 9 #t
+ tutcode-use-recursive-learning?))
+ ((tutcode-postfix-mazegaki-inflection-start)
+ (tutcode-begin-postfix-mazegaki-inflection-conversion
pc #f))
+ ((tutcode-postfix-mazegaki-inflection-1-start)
+ (tutcode-begin-postfix-mazegaki-inflection-conversion
pc 1))
+ ((tutcode-postfix-mazegaki-inflection-2-start)
+ (tutcode-begin-postfix-mazegaki-inflection-conversion
pc 2))
+ ((tutcode-postfix-mazegaki-inflection-3-start)
+ (tutcode-begin-postfix-mazegaki-inflection-conversion
pc 3))
+ ((tutcode-postfix-mazegaki-inflection-4-start)
+ (tutcode-begin-postfix-mazegaki-inflection-conversion
pc 4))
+ ((tutcode-postfix-mazegaki-inflection-5-start)
+ (tutcode-begin-postfix-mazegaki-inflection-conversion
pc 5))
+ ((tutcode-postfix-mazegaki-inflection-6-start)
+ (tutcode-begin-postfix-mazegaki-inflection-conversion
pc 6))
+ ((tutcode-postfix-mazegaki-inflection-7-start)
+ (tutcode-begin-postfix-mazegaki-inflection-conversion
pc 7))
+ ((tutcode-postfix-mazegaki-inflection-8-start)
+ (tutcode-begin-postfix-mazegaki-inflection-conversion
pc 8))
+ ((tutcode-postfix-mazegaki-inflection-9-start)
+ (tutcode-begin-postfix-mazegaki-inflection-conversion
pc 9))
+ ((tutcode-postfix-katakana-start)
+ (tutcode-begin-postfix-katakana-conversion pc #f))
+ ((tutcode-postfix-katakana-1-start)
+ (tutcode-begin-postfix-katakana-conversion pc 1))
+ ((tutcode-postfix-katakana-2-start)
+ (tutcode-begin-postfix-katakana-conversion pc 2))
+ ((tutcode-postfix-katakana-3-start)
+ (tutcode-begin-postfix-katakana-conversion pc 3))
+ ((tutcode-postfix-katakana-4-start)
+ (tutcode-begin-postfix-katakana-conversion pc 4))
+ ((tutcode-postfix-katakana-5-start)
+ (tutcode-begin-postfix-katakana-conversion pc 5))
+ ((tutcode-postfix-katakana-6-start)
+ (tutcode-begin-postfix-katakana-conversion pc 6))
+ ((tutcode-postfix-katakana-7-start)
+ (tutcode-begin-postfix-katakana-conversion pc 7))
+ ((tutcode-postfix-katakana-8-start)
+ (tutcode-begin-postfix-katakana-conversion pc 8))
+ ((tutcode-postfix-katakana-9-start)
+ (tutcode-begin-postfix-katakana-conversion pc 9))
+ ((tutcode-postfix-kanji2seq-start)
+ (tutcode-begin-postfix-kanji2seq-conversion pc #f))
+ ((tutcode-postfix-kanji2seq-1-start)
+ (tutcode-begin-postfix-kanji2seq-conversion pc 1))
+ ((tutcode-postfix-kanji2seq-2-start)
+ (tutcode-begin-postfix-kanji2seq-conversion pc 2))
+ ((tutcode-postfix-kanji2seq-3-start)
+ (tutcode-begin-postfix-kanji2seq-conversion pc 3))
+ ((tutcode-postfix-kanji2seq-4-start)
+ (tutcode-begin-postfix-kanji2seq-conversion pc 4))
+ ((tutcode-postfix-kanji2seq-5-start)
+ (tutcode-begin-postfix-kanji2seq-conversion pc 5))
+ ((tutcode-postfix-kanji2seq-6-start)
+ (tutcode-begin-postfix-kanji2seq-conversion pc 6))
+ ((tutcode-postfix-kanji2seq-7-start)
+ (tutcode-begin-postfix-kanji2seq-conversion pc 7))
+ ((tutcode-postfix-kanji2seq-8-start)
+ (tutcode-begin-postfix-kanji2seq-conversion pc 8))
+ ((tutcode-postfix-kanji2seq-9-start)
+ (tutcode-begin-postfix-kanji2seq-conversion pc 9))
+ ((tutcode-postfix-seq2kanji-start)
+ (tutcode-begin-postfix-seq2kanji-conversion pc #f))
+ ((tutcode-postfix-seq2kanji-1-start)
+ (tutcode-begin-postfix-seq2kanji-conversion pc 1))
+ ((tutcode-postfix-seq2kanji-2-start)
+ (tutcode-begin-postfix-seq2kanji-conversion pc 2))
+ ((tutcode-postfix-seq2kanji-3-start)
+ (tutcode-begin-postfix-seq2kanji-conversion pc 3))
+ ((tutcode-postfix-seq2kanji-4-start)
+ (tutcode-begin-postfix-seq2kanji-conversion pc 4))
+ ((tutcode-postfix-seq2kanji-5-start)
+ (tutcode-begin-postfix-seq2kanji-conversion pc 5))
+ ((tutcode-postfix-seq2kanji-6-start)
+ (tutcode-begin-postfix-seq2kanji-conversion pc 6))
+ ((tutcode-postfix-seq2kanji-7-start)
+ (tutcode-begin-postfix-seq2kanji-conversion pc 7))
+ ((tutcode-postfix-seq2kanji-8-start)
+ (tutcode-begin-postfix-seq2kanji-conversion pc 8))
+ ((tutcode-postfix-seq2kanji-9-start)
+ (tutcode-begin-postfix-seq2kanji-conversion pc 9))
+ ((tutcode-selection-mazegaki-start)
+ (tutcode-begin-selection-mazegaki-conversion pc))
+ ((tutcode-selection-mazegaki-inflection-start)
+
(tutcode-begin-selection-mazegaki-inflection-conversion pc))
+ ((tutcode-selection-katakana-start)
+ (tutcode-begin-selection-katakana-conversion pc))
+ ((tutcode-selection-kanji2seq-start)
+ (tutcode-begin-selection-kanji2seq-conversion pc))
+ ((tutcode-selection-seq2kanji-start)
+ (tutcode-begin-selection-seq2kanji-conversion pc))
+ ((tutcode-clipboard-seq2kanji-start)
+ (tutcode-begin-clipboard-seq2kanji-conversion pc))))
+ ((procedure? res)
+ (res 'tutcode-state-on pc))))))))))
;;; ¸åÃÖ·¿Éô¼ó¹çÀ®ÊÑ´¹¤ò¹Ô¤¦
(define (tutcode-begin-postfix-bushu-conversion pc)
@@ -4260,65 +4270,62 @@
(set! res (charcode->string key)))))
(else
(set! res (tutcode-push-key! pc (charcode->string key)))
- (cond
- ((eq? res 'tutcode-auto-help-redisplay)
- (tutcode-auto-help-redisplay pc)
- (set! res #f))
- ((eq? res 'tutcode-postfix-bushu-start)
+ (if (eq? res 'tutcode-postfix-bushu-start)
+ (begin
(set! res
(and (>= (length head) 2)
(tutcode-bushu-convert (cadr head) (car head))))
(if res
(begin
(tutcode-context-set-head! pc (cddr head))
- (tutcode-check-auto-help-window-begin pc (list res)
()))))
- ;; ³èÍѤ·¤Ê¤¤¸ì¤È¤·¤ÆÊÑ´¹³«»Ï¡£¸õÊ䤬1¤Ä¤Î¾ì¹ç¤Ï¼«Æ°³ÎÄê
- ((eq? res 'tutcode-postfix-mazegaki-start)
- (set! res #f)
- (if (not (null? head))
- (tutcode-begin-conversion-with-inflection pc #f)
- (begin
- (tutcode-flush pc)
- (tutcode-begin-postfix-mazegaki-conversion pc #f #f
#f))))
- ;; ³èÍѤ¹¤ë¸ì¤È¤·¤ÆÊÑ´¹³«»Ï(postfixÍÑ¥¡¼¥·¡¼¥±¥ó¥¹¤òήÍÑ)
- ((eq? res 'tutcode-postfix-mazegaki-inflection-start)
- (set! res #f)
- (if (not (null? head))
- (tutcode-begin-mazegaki-inflection-conversion pc)
- (begin
- (tutcode-flush pc)
- (tutcode-begin-postfix-mazegaki-inflection-conversion pc
#f))))
- ((eq? res 'tutcode-postfix-katakana-start)
- (set! res #f)
- (if (not (null? head))
- (katakana-commit)
- (begin
- (tutcode-flush pc)
- (tutcode-begin-postfix-katakana-conversion pc #f))))
- ;; ´Á»ú¢ªÆþÎÏ¥·¡¼¥±¥ó¥¹ÊÑ´¹¡£¼ç¤Ëclipboard¤«¤é¤Îpaste»þÍÑ
- ((eq? res 'tutcode-postfix-kanji2seq-start)
- (set! res #f)
- (if (not (null? head))
- (let ((str
- (string-list-concat
- (tutcode-kanji-list->sequence pc head))))
- (tutcode-commit pc str)
- (tutcode-flush pc)
- (tutcode-undo-prepare pc 'tutcode-state-yomi str head))
- (begin
- (tutcode-flush pc)
- (tutcode-begin-postfix-kanji2seq-conversion pc #f))))
- ((symbol? res)
- (set! res #f)))))
- (if res
- (begin
+ (tutcode-check-auto-help-window-begin pc (list res)
())))))))
+ (cond
+ ((string? res)
(tutcode-append-string pc res)
(if (and tutcode-use-prediction?
(> tutcode-prediction-start-char-count 0)
;;
¸åÃÖ·¿Éô¼ó¹çÀ®ÊÑ´¹¤Ë¤è¤ëauto-helpɽ¼¨ºÑ»þ¤Ï²¿¤â¤·¤Ê¤¤
(eq? (tutcode-context-candidate-window pc)
'tutcode-candidate-window-off))
- (tutcode-check-prediction pc #f))))))))
+ (tutcode-check-prediction pc #f)))
+ ((symbol? res)
+ (case res
+ ((tutcode-auto-help-redisplay)
+ (tutcode-auto-help-redisplay pc))
+ ;; ³èÍѤ·¤Ê¤¤¸ì¤È¤·¤ÆÊÑ´¹³«»Ï¡£¸õÊ䤬1¤Ä¤Î¾ì¹ç¤Ï¼«Æ°³ÎÄê
+ ((tutcode-postfix-mazegaki-start)
+ (if (not (null? head))
+ (tutcode-begin-conversion-with-inflection pc #f)
+ (begin
+ (tutcode-flush pc)
+ (tutcode-begin-postfix-mazegaki-conversion pc #f #f
#f))))
+ ;; ³èÍѤ¹¤ë¸ì¤È¤·¤ÆÊÑ´¹³«»Ï(postfixÍÑ¥¡¼¥·¡¼¥±¥ó¥¹¤òήÍÑ)
+ ((tutcode-postfix-mazegaki-inflection-start)
+ (if (not (null? head))
+ (tutcode-begin-mazegaki-inflection-conversion pc)
+ (begin
+ (tutcode-flush pc)
+ (tutcode-begin-postfix-mazegaki-inflection-conversion
pc #f))))
+ ((tutcode-postfix-katakana-start)
+ (if (not (null? head))
+ (katakana-commit)
+ (begin
+ (tutcode-flush pc)
+ (tutcode-begin-postfix-katakana-conversion pc #f))))
+ ;; ´Á»ú¢ªÆþÎÏ¥·¡¼¥±¥ó¥¹ÊÑ´¹¡£¼ç¤Ëclipboard¤«¤é¤Îpaste»þÍÑ
+ ((tutcode-postfix-kanji2seq-start)
+ (if (not (null? head))
+ (let ((str
+ (string-list-concat
+ (tutcode-kanji-list->sequence pc head))))
+ (tutcode-commit pc str)
+ (tutcode-flush pc)
+ (tutcode-undo-prepare pc 'tutcode-state-yomi str head))
+ (begin
+ (tutcode-flush pc)
+ (tutcode-begin-postfix-kanji2seq-conversion pc #f))))))
+ ((procedure? res)
+ (res 'tutcode-state-yomi pc)))))))
;;; ´Á»ú¥³¡¼¥ÉÆþÎϾõÂ֤ΤȤ¤Î¥¡¼ÆþÎϤò½èÍý¤¹¤ë¡£
;;; @param key ÆþÎϤµ¤ì¤¿¥¡¼
@@ -4486,26 +4493,26 @@
(set! res (charcode->string key))))
(else
(set! res (tutcode-push-key! pc (charcode->string key)))
- (cond
- ((eq? res 'tutcode-bushu-start) ; ºÆµ¢Åª¤ÊÉô¼ó¹çÀ®ÊÑ´¹
- (tutcode-append-string pc "¢¥")
- (set! res #f))
- ((eq? res 'tutcode-auto-help-redisplay)
- (tutcode-auto-help-redisplay pc)
- (set! res #f))
- ((eq? res 'tutcode-undo) ; ºÆµ¢Åª¤ÊÉô¼ó¹çÀ®ÊÑ´¹¤òundo¤¹¤ë
- (let ((undo (tutcode-context-undo pc)))
- (if (pair? undo)
- (tutcode-context-set-head! pc (list-ref undo 2))))
- (set! res #f))
- ((symbol? res) ;XXX Éô¼ó¹çÀ®ÊÑ´¹Ãæ¤Ï¸ò¤¼½ñ¤ÊÑ´¹Åù¤Ï̵¸ú¤Ë¤¹¤ë
- (set! res #f)))))
- (if res
- (begin
+ (cond
+ ((string? res)
;; ºÆµ¢Åª¤ËÉô¼ó¹çÀ®¤µ¤ì¤ë¾ì¹ç¤¬¤¢¤ë¤Î¤Ç¡¢headÁ´ÂΤòundoÍѤËÊÝ»ý
(tutcode-undo-prepare
pc 'tutcode-state-bushu " " ; " ":³ÎÄê¸å¤Ï1ʸ»ú
(tutcode-context-head pc))
- (tutcode-begin-bushu-conversion pc res)))))
+ (tutcode-begin-bushu-conversion pc res))
+ ((symbol? res)
+ (case res
+ ((tutcode-bushu-start) ; ºÆµ¢Åª¤ÊÉô¼ó¹çÀ®ÊÑ´¹
+ (tutcode-append-string pc "¢¥"))
+ ((tutcode-auto-help-redisplay)
+ (tutcode-auto-help-redisplay pc))
+ ((tutcode-undo) ; ºÆµ¢Åª¤ÊÉô¼ó¹çÀ®ÊÑ´¹¤òundo¤¹¤ë
+ (let ((undo (tutcode-context-undo pc)))
+ (if (pair? undo)
+ (tutcode-context-set-head! pc (list-ref undo 2)))))
+ ;;XXX Éô¼ó¹çÀ®ÊÑ´¹Ãæ¤Ï¸ò¤¼½ñ¤ÊÑ´¹Åù¤Ï̵¸ú¤Ë¤¹¤ë
+ ))
+ ((procedure? res)
+ (res 'tutcode-state-bushu pc)))))))
;;; Éô¼ó¹çÀ®ÊÑ´¹³«»Ï
;;; @param char ¿·¤¿¤ËÆþÎϤµ¤ì¤¿Ê¸»ú(2ÈÖÌܤÎÉô¼ó)
@@ -4667,16 +4674,18 @@
(set! res (charcode->string key))))
(else
(set! res (tutcode-push-key! pc (charcode->string key)))
- (cond
- ((eq? res 'tutcode-auto-help-redisplay)
- (tutcode-auto-help-redisplay pc)
- (set! res #f))
- ((symbol? res) ;XXX Éô¼ó¹çÀ®ÊÑ´¹Ãæ¤Ï¸ò¤¼½ñ¤ÊÑ´¹Åù¤Ï̵¸ú¤Ë¤¹¤ë
- (set! res #f)))))
- (if res
- (begin
+ (cond
+ ((string? res)
(tutcode-append-string pc res)
- (tutcode-begin-interactive-bushu-conversion pc)))))))
+ (tutcode-begin-interactive-bushu-conversion pc))
+ ((symbol? res)
+ (case res
+ ((tutcode-auto-help-redisplay)
+ (tutcode-auto-help-redisplay pc))
+ ;;XXX Éô¼ó¹çÀ®ÊÑ´¹Ãæ¤Ï¸ò¤¼½ñ¤ÊÑ´¹Åù¤Ï̵¸ú¤Ë¤¹¤ë
+ ))
+ ((procedure? res)
+ (res 'tutcode-state-interactive-bushu pc)))))))))
;;; ÂÐÏÃŪÉô¼ó¹çÀ®ÊÑ´¹³«»Ï
(define (tutcode-begin-interactive-bushu-conversion pc)
@@ -6358,3 +6367,39 @@
;; ¿·µ¬Äɲå·¡¼¥±¥ó¥¹
(if (not (null? newseqs))
(set! tutcode-rule (append tutcode-rule newseqs)))))
+
+;;; selection¤ËÂФ·¤Æ»ØÄꤵ¤ì¤¿½èÍý¤òŬÍѤ·¤¿·ë²Ì¤ËÃÖ´¹¤¹¤ë¡£
+;;; ~/.uim¤Ç¤Î»ÈÍÑÎã:
+;;; (require "external-filter.scm")
+;;; (define (tutcode-filter-fmt-quote state pc)
+;;; (tutcode-selection-filter pc
+;;; (lambda (str)
+;;; ;; ʸ½ñÀ°·Á¸å¡¢°úÍÑ¥Þ¡¼¥¯¤ò¹ÔƬ¤ËÉÕ¤±¤ë (nkf -e:
uim-tutcode¤ÏEUC-JP)
+;;; (external-filter-launch-command "nkf -e -f | sed -e 's/^/> /'"
str))))
+;;; (require "fmt-ja.scm")
+;;; (define (tutcode-filter-fmt-ja state pc)
+;;; (tutcode-selection-filter pc
+;;; (lambda (str)
+;;; (apply string-append (fmt-ja-str str)))))
+;;; (require "japan-util.scm")
+;;; (define (tutcode-filter-ascii-fullkana state pc)
+;;; (tutcode-selection-filter pc
+;;; (lambda (str)
+;;; (string-list-concat
+;;; (japan-util-ascii-convert
+;;; (japan-util-halfkana-to-fullkana-convert
+;;; (string-to-list str)))))))
+;;; (tutcode-rule-set-sequences!
+;;; `(((("a" "v" "q")) (,tutcode-filter-fmt-quote))
+;;; ((("a" "v" "f")) (,tutcode-filter-fmt-ja))
+;;; ((("a" "v" "a")) (,tutcode-filter-ascii-fullkana))))
+;;; @param fn ¥Õ¥£¥ë¥¿½èÍý´Ø¿ô¡£Ê¸»úÎó¤òÆþÎϤ˼è¤ê¡¢·ë²Ì¤òʸ»úÎó¤ÇÊÖ¤¹¡£
+(define (tutcode-selection-filter pc fn)
+ (let ((sel (tutcode-selection-acquire-text pc)))
+ (if (pair? sel)
+ (let* ((str (string-list-concat sel))
+ (res (fn str)))
+ (if (and (string? res)
+ ;;
Êѹ¹Ìµ¤·¤Ê¤écommit¤·¤Ê¤¤(¥»¥ì¥¯¥·¥ç¥ó¤¬²ò½ü¤µ¤ì¤Ê¤¤¤è¤¦¤Ë)
+ (not (string=? res str)))
+ (tutcode-selection-commit pc res sel))))))