comparison lisp/calc/calc-embed.el @ 60507:8df8779687e1

(calc-do-embedded): Set mode line when embedded mode begins. (calc-embedded-language-alist): New variable. (calc-embedded-find-modes): Use calc-embedded-language-alist to set default language mode.
author Jay Belanger <jay.p.belanger@gmail.com>
date Tue, 08 Mar 2005 05:26:44 +0000
parents 7e83e55fbe19
children a4928951c9f2 29e773288013
comparison
equal deleted inserted replaced
60506:46609ac51b44 60507:8df8779687e1
242 buffer-read-only t) 242 buffer-read-only t)
243 (set-buffer-modified-p (buffer-modified-p)) 243 (set-buffer-modified-p (buffer-modified-p))
244 (use-local-map calc-mode-map) 244 (use-local-map calc-mode-map)
245 (setq calc-no-refresh-evaltos nil) 245 (setq calc-no-refresh-evaltos nil)
246 (and chg calc-any-evaltos (calc-wrapper (calc-refresh-evaltos))) 246 (and chg calc-any-evaltos (calc-wrapper (calc-refresh-evaltos)))
247 (let (str)
248 (save-excursion
249 (calc-select-buffer)
250 (setq str mode-line-buffer-identification))
251 (unless (equal str mode-line-buffer-identification)
252 (setq mode-line-buffer-identification str)
253 (set-buffer-modified-p (buffer-modified-p))))
247 (or (eq calc-embedded-quiet t) 254 (or (eq calc-embedded-quiet t)
248 (message "Embedded Calc mode enabled; %s to return to normal" 255 (message "Embedded Calc mode enabled; %s to return to normal"
249 (if calc-embedded-quiet 256 (if calc-embedded-quiet
250 "Type `M-# x'" 257 "Type `M-# x'"
251 "Give this command again"))))) 258 "Give this command again")))))
668 (match-end 2))))) 675 (match-end 2)))))
669 modes))))) 676 modes)))))
670 (setq calc-embedded-globals (cons t modes)) 677 (setq calc-embedded-globals (cons t modes))
671 (goto-char save-pt))) 678 (goto-char save-pt)))
672 679
680 (defvar calc-embedded-language-alist
681 '((latex-mode . latex)
682 (tex-mode . tex)
683 (plain-tex-mode . tex)
684 (context-mode . tex)
685 (nroff-mode . eqn)
686 (pascal-mode . pascal)
687 (c-mode . c)
688 (c++-mode . c)
689 (fortran-mode . fortran)
690 (f90-mode . fortran)))
691
673 (defun calc-embedded-find-modes () 692 (defun calc-embedded-find-modes ()
674 (let ((case-fold-search nil) 693 (let ((case-fold-search nil)
675 (save-pt (point)) 694 (save-pt (point))
676 (no-defaults t) 695 (no-defaults t)
677 (modes nil) 696 (modes nil)
715 emodes)))) 734 emodes))))
716 (and (looking-at "defaults]") 735 (and (looking-at "defaults]")
717 (setq no-defaults nil))) 736 (setq no-defaults nil)))
718 (backward-char 6)) 737 (backward-char 6))
719 (goto-char save-pt) 738 (goto-char save-pt)
739 (unless (assq 'the-language modes)
740 (let ((lang (assoc major-mode calc-embedded-language-alist)))
741 (if lang
742 (setq modes (cons (cons 'the-language (cdr lang))
743 modes)))))
720 (list modes emodes pmodes))) 744 (list modes emodes pmodes)))
721 745
722 ;; The variable calc-embed-vars-used is local to calc-embedded-make-info, 746 ;; The variable calc-embed-vars-used is local to calc-embedded-make-info,
723 ;; calc-embedded-evaluate-expr and calc-embedded-update, but is 747 ;; calc-embedded-evaluate-expr and calc-embedded-update, but is
724 ;; used by calc-embedded-find-vars, which is called by the above functions. 748 ;; used by calc-embedded-find-vars, which is called by the above functions.