[prime-dev: 431] Re: uim-prime の backspace

Back to archive index

Hiroyuki Komatsu komat****@taiya*****
2004年 8月 29日 (日) 19:13:07 JST


小松です。

返事が非常に遅くなりましてすみません。
次のリリースでの採用は、とりあえず保留とさせてください。

ただひらがな単位での編集は必須の機能だと考えていますので、
将来的には絶対につけます。


また大変申し訳ないのですが、prime.scm を結構書き換えてしまいましたので、
いただいたパッチも変更する必要があると思います。現状の prime.scm は

<http://prime.sourceforge.jp/src/prime-2004-08-29.scm>

です。

(define prime-editor-insert-char
  (lambda (line char)
    (prime-editor-set-left  line (cons char (prime-editor-get-left line)))))

(define prime-editor-backspace-char
  (lambda (line)
    (prime-editor-set-left  line (cdr (prime-editor-get-left line)))))

を変更してください。


At Fri, 06 Aug 2004 18:17:33 +0900,
Masaki Yatsu wrote:
> 本来であれば、
> * uim-primeにsuikyoをもたせる
> or
> * primeコマンドに文字削除機能をもたせる
> のが正しいのでしょうか?

Emacs 版のことなどを考えてると、prime コマンド側で用意した方が楽なのですが、
uim 側でプリエディット用の API を用意する方が筋はいいと思います。

とりあえずは、プリエディットを担当するライブラリを作成して (もしくは
suikyo に持たせて)、それを prime サーバ経由で操作するようにしたいと
考えています。

--
                                                            小松弘幸
                                                -----------------------
                                                   http://taiyaki.org/



At Fri, 06 Aug 2004 18:17:33 +0900,
Masaki Yatsu wrote:
> 
> 谷津です。
> 
> なんか、やるべきじゃないことをやってる気はしますが……。
> 
> 本来であれば、
> * uim-primeにsuikyoをもたせる
> or
> * primeコマンドに文字削除機能をもたせる
> のが正しいのでしょうか?
> 
> とりあえず、前回のは「っ」が正しく処理されないので、改良しました。
> 今回は入力時点で「ん」と「っ」のキー入力を変更してしまっています。
> 
> (define prime-command-preedit-input
>   (lambda (context key key-state)
>     (let* ((sc (context-data context))
>            (id (context-id context))
>            (keystr (charcode->string key))
>            (last-left-string (prime-context-left-string sc))
>            (char-list))
>       (prime-context-set-left-string!
>        sc (cons keystr last-left-string))
>       (set! char-list (string-to-list (prime-preedit-get-string-label sc)))
>       (if (and (equal? (car char-list) keystr)
>                (>= (length char-list) 2))
>           (cond
>            ((and (equal? (cadr char-list) "ん")
>                  (not (equal? keystr "n")))
>             (prime-context-set-left-string!
>              sc (cons keystr (cons "n" (cons "n" (cdr last-left-string))))))
>            ((and (equal? (cadr char-list) "っ")
>                  (not (equal? (car last-left-string) "u")))
>             (prime-context-set-left-string!
>              sc (cons keystr
>                       (cons "u" (cons "t" (cons "x"
>                                               (cdr last-left-string)))))))))
>       (prime-context-set-candidate-window! sc #f) ;FIXME:very dirty hack
>       (if (and
>            prime-preedit-immediate-commit?
>            (prime-context-immediate-commit sc))
>           (begin
>             (im-commit id (string-list-concat
>                            (prime-context-left-string sc)))
>             (prime-flush sc))))))
> 
> (define prime-command-preedit-backspace
>   (lambda (context key key-state)
>     (let* ((sc (context-data context))
>            (preedit-char-list (string-to-list
>                                (prime-preedit-get-string-label sc))))
>       (letrec ((delete-backward
>                 (lambda (char-list goal-char-list)
>                   (cond
>                    ((= (length goal-char-list) 0)
>                       (prime-context-set-left-string! sc '()))
>                    ((= (length char-list) (length goal-char-list))
>                     (if (equal? (car char-list) (car goal-char-list)) ()
>                         (delete-backward char-list (cdr goal-char-list))))
>                    (else
>                     (begin
>                       (prime-context-set-left-string!
>                        sc (cdr (prime-context-left-string sc)))
>                       (delete-backward
>                        (string-to-list (prime-preedit-get-string-label sc))
>                        goal-char-list)))))))
>         (delete-backward preedit-char-list (cdr preedit-char-list)))
>       (prime-context-set-candidate-window! sc #f) ;FIXME:very dirty hack
>       )))
> 
> ---
> 谷津真樹 (Masaki Yatsu)
> mailto:yatsu****@yatsu*****
> 
> 
> _______________________________________________
> Prime-dev mailing list
> Prime****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/prime-dev




Prime-dev メーリングリストの案内
Back to archive index