X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=its.el;h=56bab987234155efd38cea11d429324b5f76d385;hb=f89640357feaf7952cad5b6bae4064e0f1fea5e0;hp=26aeb046b6e6cd61558068cfa74eb001551c4454;hpb=49acacb63ca6fb6f6a8b5684642a8c4b0482254b;p=elisp%2Fegg.git diff --git a/its.el b/its.el index 26aeb04..56bab98 100644 --- a/its.el +++ b/its.el @@ -222,28 +222,38 @@ ;; intangible intangible ;; 1 2 ;; -(defun its-start (key) - (let (p cursor) - (setq p (point)) +(defun its-insert-fence-open () + (let ((p (point))) (insert its-fence-open) - (add-text-properties p (point) - (let ((props '(its-start t intangible its-part-1))) - (if its-fence-face - (append '(invisible t) props) - props))) - (setq p (point)) - (setq cursor (its-input nil key)) - (its-put-cursor cursor) - (forward-char 1) - (setq p (point)) + (add-text-properties p (point) + (if its-fence-face + '(invisible t its-start t intangible its-part-1) + '(its-start t intangible its-part-1))))) + +(defun its-insert-fence-close () + (let ((p (point))) (insert its-fence-close) (add-text-properties p (point) - (let ((props '(its-end t intangible its-part-2))) - (if its-fence-face - (append '(invisible t) props) - props))) - (forward-char -2) - (force-mode-line-update))) + (if its-fence-face + '(invisible t its-end t intangible its-part-2) + '(its-end t intangible its-part-2))) + (goto-char p))) + +(defun its-start (key) + (its-insert-fence-open) + (its-insert-fence-close) + (its-put-cursor (its-input nil key)) + (force-mode-line-update)) + +(defun its-restart (str) + (let (p) + (its-insert-fence-open) + (its-insert-fence-close) + (setq p (point)) + (insert str) + (put-text-property p (point) 'intangible 'its-part-2) + (goto-char p) + (its-put-cursor t))) (defun its-self-insert-char () (interactive) @@ -688,13 +698,12 @@ Return last state." (setq end (next-single-property-change (point) 'its-end))) (delete-region end (1+ end)) ;; Remove all properties added by ITS - (remove-text-properties start end '(its-syl nil - its-map nil + (remove-text-properties start end '(its-map nil face nil intangible nil)) (if proceed-to-conversion (egg-convert-region start end) - (remove-text-properties start end '(its-lang nil)) + (remove-text-properties start end '(its-lang nil its-syl nil)) (egg-do-auto-fill) (run-hooks 'input-method-after-insert-chunk-hook)))) @@ -739,7 +748,7 @@ Return last state." (delete-region start end) (apply 'insert (reverse its-translation-result)))) -(load "its-keydef.el") +(require 'its-keydef) (provide 'its) ;;; its.el ends here.