emacs/sekka.el in sekka-0.8.1 vs emacs/sekka.el in sekka-0.8.2

- old
+ new

@@ -53,15 +53,10 @@ (defcustom sekka-curl "curl" "curlコマンドの絶対パスを設定する" :type 'string :group 'sekka) -(defcustom sekka-use-viper nil - "*Non-nil であれば、VIPER に対応する" - :type 'boolean - :group 'sekka) - (defcustom sekka-realtime-guide-running-seconds 30 "リアルタイムガイド表示の継続時間(秒数)・ゼロでガイド表示機能が無効になる" :type 'integer :group 'sekka) @@ -367,18 +362,21 @@ ;; ;; ユーザー語彙をサーバーに登録する。 ;; (defun sekka-register-userdict-internal () - (let ((str (sekka-get-jisyo-str "~/.sekka-jisyo"))) - (when str - (message "Requesting to sekka server...") - (sekka-debug-print (format "register [%s]\n" str)) - (let ((result (sekka-rest-request "register" `((dict . ,str))))) - (sekka-debug-print (format "register-result:%S\n" result)) - (message result) - t)))) + (let* ((str (sekka-get-jisyo-str "~/.sekka-jisyo")) + (str-lst (sekka-divide-into-few-line str))) + (mapcar + (lambda (x) + ;;(message "Requesting to sekka server...") + (sekka-debug-print (format "register [%s]\n" x)) + (let ((result (sekka-rest-request "register" `((dict . ,x))))) + (sekka-debug-print (format "register-result:%S\n" result)) + (message result))) + str-lst) + t)) ;; ;; ユーザー語彙をサーバーから全て削除する ;; @@ -390,35 +388,68 @@ (sekka-debug-print (format "register-result:%S\n" result)) (message result) t)) +;; str = "line1 \n line2 \n line3 \n line4 \n line5 \n " +;; result: +;; '( +;; ("line1 \n line2 \n line3 \n ") +;; ("line4 \n line5 \n ") +;; ) +;; +;; for-testing: +;; (sekka-divide-into-few-line +;; "line1 \n line2 \n line3 \n line4 \n line5 \n line6 \n line7 \n line8 \n line9 \n line10 \n line11 \n line12 \n") +;; +(defun sekka-divide-into-few-line (str) + (if (stringp str) + (let ((str-lst (split-string str "\n")) + (result '())) + (while (< 0 (length str-lst)) + (push + (concat + (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" + (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" + + (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" + (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" + + (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" + (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" + + (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" + (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" + + (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" + (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" + ) + result)) + (reverse result)) + '())) + (defun sekka-get-jisyo-str (file &optional nomsg) - "FILE を開いて SKK 辞書バッファを作り、バッファを返す。 -オプション引数の NOMSG を指定するとファイル読み込みの際のメッセージを表示しな -い。" + "FILE を開いて Sekka辞書バッファを作り、バッファ1行1文字列のリストで返す" (when file (let* ((file (or (car-safe file) file)) (file (expand-file-name file))) (if (not (file-exists-p file)) (progn - (message (format "SKK 辞書 %s が存在しません..." file)) + (message (format "Sekka辞書 %s が存在しません..." file)) nil) (let ((str "") (buf-name (file-name-nondirectory file))) (save-excursion (find-file-read-only file) (setq str (with-current-buffer (get-buffer buf-name) (buffer-substring-no-properties (point-min) (point-max)))) - (message (format "SKK 辞書 %s を開いています...完了!" (file-name-nondirectory file))) + (message (format "Sekka辞書 %s を開いています...完了!" (file-name-nondirectory file))) (kill-buffer-if-not-modified (get-buffer buf-name))) str))))) -;;(sekka-get-jisyo-str "~/.sekka-jisyo") - ;; ポータブル文字列置換( EmacsとXEmacsの両方で動く ) (defun sekka-replace-regexp-in-string (regexp replace str) (cond ((featurep 'xemacs) (replace-in-string str regexp replace)) (t @@ -996,41 +1027,11 @@ (- limit-point (point)) result))))) - -;;; -;;; with viper -;;; -;; code from skk-viper.el -(defun sekka-viper-normalize-map () - (let ((other-buffer - (if (featurep 'xemacs) - (local-variable-p 'minor-mode-map-alist nil t) - (local-variable-if-set-p 'minor-mode-map-alist)))) - ;; for current buffer and buffers to be created in the future. - ;; substantially the same job as viper-harness-minor-mode does. - (viper-normalize-minor-mode-map-alist) - (setq-default minor-mode-map-alist minor-mode-map-alist) - (when other-buffer - ;; for buffers which are already created and have - ;; the minor-mode-map-alist localized by Viper. - (dolist (buf (buffer-list)) - (with-current-buffer buf - (unless (assq 'sekka-mode minor-mode-map-alist) - (setq minor-mode-map-alist - (append (list (cons 'sekka-mode sekka-mode-map) - (cons 'sekka-select-mode - sekka-select-mode-map)) - minor-mode-map-alist))) - (viper-normalize-minor-mode-map-alist)))))) -(defun sekka-viper-init-function () - (sekka-viper-normalize-map) - (remove-hook 'sekka-mode-hook 'sekka-viper-init-function)) - (defun sekka-sticky-shift-init-function () ;; sticky-shift (define-key global-map sticky-key sticky-map) (mapcar (lambda (pair) (define-key sticky-map (car pair) @@ -1154,12 +1155,10 @@ (setq-default sekka-mode (if (null arg) (not sekka-mode) (> (prefix-numeric-value arg) 0))) (sekka-kill-sekka-mode)) (setq sekka-mode (if (null arg) (not sekka-mode) (> (prefix-numeric-value arg) 0)))) - (when sekka-use-viper - (add-hook 'sekka-mode-hook 'sekka-viper-init-function)) (when sekka-sticky-shift (add-hook 'sekka-mode-hook 'sekka-sticky-shift-init-function)) (when sekka-mode (run-hooks 'sekka-mode-hook))) @@ -1197,10 +1196,10 @@ ;; input-method として登録する。 (set-language-info "Japanese" 'input-method "japanese-sekka") (setq default-input-method "japanese-sekka") (defconst sekka-version - "0.8.1" ;;SEKKA-VERSION + "0.8.2" ;;SEKKA-VERSION ) (defun sekka-version (&optional arg) "入力モード変更" (interactive "P") (message sekka-version))