Mercurial > hgrepos > hgweb.cgi > yatex
comparison yatexprc.el @ 403:d8d66ed51034 dev
Now on-the-fly preview is sticky to the environment where once called.
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Sun, 18 Jan 2015 22:10:07 +0900 |
parents | 33bde8c52fcc |
children | 6b0d090840c1 |
comparison
equal
deleted
inserted
replaced
402:27d24ac018c1 | 403:d8d66ed51034 |
---|---|
1 ;;; yatexprc.el --- YaTeX process handler -*- coding: sjis -*- | 1 ;;; yatexprc.el --- YaTeX process handler -*- coding: sjis -*- |
2 ;;; | 2 ;;; |
3 ;;; (c)1993-2015 by HIROSE Yuuji.[yuuji@yatex.org] | 3 ;;; (c)1993-2015 by HIROSE Yuuji.[yuuji@yatex.org] |
4 ;;; Last modified Fri Jan 16 15:22:23 2015 on firestorm | 4 ;;; Last modified Sun Jan 18 21:50:18 2015 on firestorm |
5 ;;; $Id$ | 5 ;;; $Id$ |
6 | 6 |
7 ;;; Code: | 7 ;;; Code: |
8 ;(require 'yatex) | 8 ;(require 'yatex) |
9 (require 'yatexlib) | 9 (require 'yatexlib) |
534 ;(put-image (create-image (expand-file-name target)) (point)) | 534 ;(put-image (create-image (expand-file-name target)) (point)) |
535 (insert-image-file target) | 535 (insert-image-file target) |
536 (setq img (plist-get (text-properties-at (point)) 'intangible)) | 536 (setq img (plist-get (text-properties-at (point)) 'intangible)) |
537 (YaTeX-preview-image-mode) | 537 (YaTeX-preview-image-mode) |
538 (if img | 538 (if img |
539 (let ((height (cdr (image-size img)))) | 539 (let ((height (1+ (cdr (image-size img))))) |
540 (enlarge-window | 540 (enlarge-window |
541 (- (ceiling (min height (/ (frame-height) 2))) | 541 (- (ceiling (min height (/ (frame-height) 2))) |
542 (window-height))))) | 542 (window-height))))) |
543 ;; Remember elapsed time, which will be threshold in onthefly-preview | 543 ;; Remember elapsed time, which will be threshold in onthefly-preview |
544 (put 'YaTeX-typeset-conv2image-chain 'elapse | 544 (put 'YaTeX-typeset-conv2image-chain 'elapse |
571 (cond | 571 (cond |
572 ;; In minibuffer, do nothing | 572 ;; In minibuffer, do nothing |
573 ((minibuffer-window-active-p (selected-window)) nil) | 573 ((minibuffer-window-active-p (selected-window)) nil) |
574 ;; If point went out from last environment, cancel timer | 574 ;; If point went out from last environment, cancel timer |
575 ;;;((and (message "s=%d, e=%d, p=%d" s e (point)) nil)) | 575 ;;;((and (message "s=%d, e=%d, p=%d" s e (point)) nil)) |
576 ((null (buffer-file-name)) nil) ;;At momentary-string-display, it's nil. | |
576 ((or (not (eq b (window-buffer (selected-window)))) | 577 ((or (not (eq b (window-buffer (selected-window)))) |
577 (< (point) s) | 578 (< (point) s) |
578 (not (overlayp overlay)) | 579 (not (overlayp overlay)) |
579 (not (eq (overlay-buffer overlay) (current-buffer))) | 580 (not (eq (overlay-buffer overlay) (current-buffer))) |
580 (> (point) (overlay-end overlay))) | 581 (> (point) (overlay-end overlay))) |
607 'YaTeX-typeset-environment-by-builtin for using yatex-builtin.") | 608 'YaTeX-typeset-environment-by-builtin for using yatex-builtin.") |
608 | 609 |
609 (defun YaTeX-typeset-environment-1 () | 610 (defun YaTeX-typeset-environment-1 () |
610 (let*((math (YaTeX-in-math-mode-p)) | 611 (let*((math (YaTeX-in-math-mode-p)) |
611 (dpi (or (YaTeX-get-builtin "PREVIEWDPI") (if math "300" "200"))) | 612 (dpi (or (YaTeX-get-builtin "PREVIEWDPI") (if math "300" "200"))) |
612 (opoint (point)) usetimer) | 613 (opoint (point)) |
614 usetimer) | |
613 (cond | 615 (cond |
614 ((and YaTeX-on-the-fly-overlay (overlayp YaTeX-on-the-fly-overlay) | 616 ((and YaTeX-on-the-fly-overlay (overlayp YaTeX-on-the-fly-overlay) |
615 (member YaTeX-on-the-fly-overlay (overlays-at (point)))) | 617 (member YaTeX-on-the-fly-overlay (overlays-at (point)))) |
616 ;; If current position is in on-the-fly overlay, | 618 ;; If current position is in on-the-fly overlay, |
617 ;; use that region again | 619 ;; use that region again |
637 (char-after (- (point) 2)) | 639 (char-after (- (point) 2)) |
638 (YaTeX-buffer-substring b e) | 640 (YaTeX-buffer-substring b e) |
639 (current-time))) | 641 (current-time))) |
640 (if math (funcall YaTeX-on-the-fly-math-preview-engine) | 642 (if math (funcall YaTeX-on-the-fly-math-preview-engine) |
641 (YaTeX-typeset-region 'YaTeX-typeset-conv2image-chain)) | 643 (YaTeX-typeset-region 'YaTeX-typeset-conv2image-chain)) |
642 (if usetimer | 644 (if usetimer (YaTeX-typeset-environment-auto b e))) |
643 (progn | |
644 (if YaTeX-on-the-fly-overlay | |
645 (move-overlay YaTeX-on-the-fly-overlay b e) | |
646 (overlay-put | |
647 (setq YaTeX-on-the-fly-overlay (make-overlay b e)) | |
648 'face 'YaTeX-on-the-fly-activated-face)) | |
649 (YaTeX-typeset-environment-auto) | |
650 ))) | |
651 (YaTeX-typeset-region)))) | 645 (YaTeX-typeset-region)))) |
652 | 646 |
653 (defun YaTeX-typeset-environment () | 647 (defun YaTeX-typeset-environment () |
654 "Typeset current environment or paragraph. | 648 "Typeset current environment or paragraph. |
655 If region activated, use it." | 649 If region activated, use it." |
664 (defvar YaTeX-on-the-fly-preview-interval (string-to-number "0.9") | 658 (defvar YaTeX-on-the-fly-preview-interval (string-to-number "0.9") |
665 "*Control the on-the-fly update of preview environment by an image. | 659 "*Control the on-the-fly update of preview environment by an image. |
666 Nil disables on-the-fly update. Otherwise on-the-fly update is enabled | 660 Nil disables on-the-fly update. Otherwise on-the-fly update is enabled |
667 with update interval specified by this value.") | 661 with update interval specified by this value.") |
668 | 662 |
669 (defun YaTeX-typeset-environment-auto () | 663 (defun YaTeX-typeset-environment-auto (beg end) |
670 "Turn on on-the-fly preview-image" | 664 "Turn on on-the-fly preview-image" |
671 (if YaTeX-typeset-environment-timer | 665 (if YaTeX-typeset-environment-timer |
672 nil | 666 (cancel-timer YaTeX-typeset-environment-timer)) |
673 (setq YaTeX-typeset-environment-timer | 667 (if YaTeX-on-the-fly-overlay |
674 (run-with-idle-timer | 668 (move-overlay YaTeX-on-the-fly-overlay beg end) |
675 (max (string-to-number "0.1") | 669 (overlay-put |
676 (cond | 670 (setq YaTeX-on-the-fly-overlay (make-overlay beg end)) |
677 ((numberp YaTeX-on-the-fly-preview-interval) | 671 'face 'YaTeX-on-the-fly-activated-face)) |
678 YaTeX-on-the-fly-preview-interval) | 672 (setq YaTeX-typeset-environment-timer |
679 ((stringp YaTeX-on-the-fly-preview-interval) | 673 (run-with-idle-timer |
680 (string-to-number YaTeX-on-the-fly-preview-interval)) | 674 (max (string-to-number "0.1") |
681 (t 1))) | 675 (cond |
682 t 'YaTeX-typeset-environment-timer)))) | 676 ((numberp YaTeX-on-the-fly-preview-interval) |
677 YaTeX-on-the-fly-preview-interval) | |
678 ((stringp YaTeX-on-the-fly-preview-interval) | |
679 (string-to-number YaTeX-on-the-fly-preview-interval)) | |
680 (t 1))) | |
681 t 'YaTeX-typeset-environment-timer))) | |
682 | |
683 (defun YaTeX-typeset-environment-activate-onthefly () | |
684 (if (get-text-property (point) 'onthefly) | |
685 (save-excursion | |
686 (if YaTeX-typeset-environment-timer | |
687 (progn | |
688 (cancel-timer YaTeX-typeset-environment-timer) | |
689 (setq YaTeX-typeset-environment-timer nil))) | |
690 (if (YaTeX-on-begin-end-p) | |
691 (if (match-beginning 1) ;on beginning | |
692 (goto-char (match-end 0)) | |
693 (goto-char (match-beginning 0)))) | |
694 (YaTeX-typeset-environment)))) | |
683 | 695 |
684 (defun YaTeX-typeset-environment-cancel-auto () | 696 (defun YaTeX-typeset-environment-cancel-auto () |
685 "Cancel typeset-environment timer." | 697 "Cancel typeset-environment timer." |
686 (interactive) | 698 (interactive) |
687 (cancel-timer YaTeX-typeset-environment-timer) | 699 (if YaTeX-typeset-environment-timer |
688 (setq YaTeX-typeset-environment-timer nil) | 700 (cancel-timer YaTeX-typeset-environment-timer)) |
701 (setq YaTeX-typeset-environment-timer | |
702 (run-with-idle-timer | |
703 (string-to-number "0.1") | |
704 t | |
705 'YaTeX-typeset-environment-activate-onthefly)) | |
706 (put-text-property (overlay-start YaTeX-on-the-fly-overlay) | |
707 (1- (overlay-end YaTeX-on-the-fly-overlay)) | |
708 'onthefly | |
709 t) | |
689 (delete-overlay YaTeX-on-the-fly-overlay) | 710 (delete-overlay YaTeX-on-the-fly-overlay) |
690 (message "On-the-fly preview canceled")) | 711 (message "On-the-fly preview canceled")) |
691 | 712 |
692 (defun YaTeX-typeset-buffer (&optional pp) | 713 (defun YaTeX-typeset-buffer (&optional pp) |
693 "Typeset whole buffer. | 714 "Typeset whole buffer. |