factor/contrib/factor.el

56 lines
1.6 KiB
EmacsLisp
Raw Normal View History

2006-05-24 07:18:51 -04:00
(require 'comint)
(define-derived-mode factor-listener-mode comint-mode "Factor listener"
(setq comint-prompt-regexp "^ "))
(defvar factor-binary "/storage/factor/factor-0.82/f")
(defvar factor-image "/scratch/factor-darcs/repos/Factor/factor.image")
2006-05-24 20:24:11 -04:00
(defun factor-server ()
(interactive)
2006-05-24 07:18:51 -04:00
(make-comint "factor-server" factor-binary nil factor-image "-shell=tty")
(comint-send-string "*factor-server*" "USE: jedit telnet\n"))
2006-05-24 20:24:11 -04:00
(defun factor-listener ()
(interactive)
(factor-server)
(sleep-for 0 500)
2006-05-24 07:18:51 -04:00
(switch-to-buffer (make-comint "factor-listener" '("localhost" . 9999)))
2006-05-24 20:24:11 -04:00
(rename-uniquely)
(factor-listener-mode))
2006-05-24 07:18:51 -04:00
(defun factor-listener-restart ()
(interactive)
(factor-server)
(sleep-for 0 500)
(make-comint-in-buffer
"factor-listener" (current-buffer) '("localhost" . 9999)))
2006-05-24 20:24:11 -04:00
(defun load-factor-file (file-name)
(interactive "fLoad Factor file: ")
2006-05-24 07:18:51 -04:00
(comint-send-string nil (format "\"%s\" run-file\n" file-name)))
2006-05-24 20:24:11 -04:00
(defun factor-update-stack-buffer (&optional string)
(interactive)
2006-05-24 07:18:51 -04:00
(save-excursion
2006-05-24 20:24:11 -04:00
(set-buffer (get-buffer-create "*factor-stack*"))
(erase-buffer)
2006-05-24 07:18:51 -04:00
(comint-redirect-send-command-to-process
".s" "*factor-stack*" "*factor-0.81-tty*" nil)))
(defvar factor-update-stackp nil "*")
(defun factor-send-input () (interactive)
(comint-send-input)
(if factor-update-stackp
(progn (sleep-for 0 250) (factor-update-stack-buffer))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; mode
;; syntax table
;; (push '("\\.factor\\'" . factor-mode) auto-mode-alist)
;; synopsis of word at point