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))