]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' into new_ui
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Sun, 1 Mar 2009 09:40:53 +0000 (03:40 -0600)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Sun, 1 Mar 2009 09:40:53 +0000 (03:40 -0600)
misc/fuel/fu.el
misc/fuel/fuel-listener.el

index e9217fbd036b47e420ba6ef6c7977249a84295eb..01ec0d60e6fc2c32cdb507c167389697b9229108 100644 (file)
 (autoload 'fuel-scaffold-help "fuel-scaffold.el"
   "Create a Factor vocabulary help file." t)
 
+(mapc (lambda (group)
+        (custom-add-load group (symbol-name group))
+        (custom-add-load 'fuel (symbol-name group)))
+      '(fuel fuel-faces
+             factor-mode
+             fuel-autodoc
+             fuel-stack
+             fuel-help
+             fuel-xref
+             fuel-listener
+             fuel-scaffold
+             fuel-debug
+             fuel-mode))
 \f
 ;;; fu.el ends here
index b8bf4d4b7f9a5465fa5b205c6bb5e4893f57f4b5..1d23571a0abda5173627a68cc977fefdba024e58 100644 (file)
@@ -59,6 +59,35 @@ buffer."
   :type 'boolean
   :group 'fuel-listener)
 
+(defcustom fuel-listener-history-filename (expand-file-name "~/.fuel_history")
+  "File where listener input history is saved, so that it persists between sessions."
+  :type 'filename
+  :group 'fuel-listener)
+
+(defcustom fuel-listener-history-size comint-input-ring-size
+  "Maximum size of the saved listener input history."
+  :type 'integer
+  :group 'fuel-listener)
+
+\f
+;;; Listener history:
+
+(defun fuel-listener--sentinel (proc event)
+  (when (string= event "finished\n")
+    (with-current-buffer (process-buffer proc)
+      (let ((comint-input-ring-file-name fuel-listener-history-filename))
+        (comint-write-input-ring)
+        (when (buffer-name (current-buffer))
+          (insert "\nBye bye. It's been nice listening to you!\n")
+          (insert "Press C-cz to bring me back.\n" ))))))
+
+(defun fuel-listener--history-setup ()
+  (set (make-local-variable 'comint-input-ring-file-name) fuel-listener-history-filename)
+  (set (make-local-variable 'comint-input-ring-size) fuel-listener-history-size)
+  (add-hook 'kill-buffer-hook 'comint-write-input-ring nil t)
+  (comint-read-input-ring t)
+  (set-process-sentinel (get-buffer-process (current-buffer)) 'fuel-listener--sentinel))
+
 \f
 ;;; Fuel listener buffer/process:
 
@@ -84,7 +113,8 @@ buffer."
     (pop-to-buffer (fuel-listener--buffer))
     (make-comint-in-buffer "fuel listener" (current-buffer) factor nil
                            "-run=listener" (format "-i=%s" image))
-    (fuel-listener--wait-for-prompt 10000)
+    (fuel-listener--wait-for-prompt 60000)
+    (fuel-listener--history-setup)
     (fuel-con--setup-connection (current-buffer))))
 
 (defun fuel-listener--connect-process (port)