]> gitweb.factorcode.org Git - factor.git/commitdiff
FUEL: New fuel-switch-to-buffer command family.
authorJose A. Ortega Ruiz <jao@gnu.org>
Mon, 19 Jan 2009 04:10:47 +0000 (05:10 +0100)
committerJose A. Ortega Ruiz <jao@gnu.org>
Mon, 19 Jan 2009 04:10:47 +0000 (05:10 +0100)
misc/fuel/README
misc/fuel/fuel-edit.el
misc/fuel/fuel-mode.el

index 706191aaa3a5c898d09a99c240fe21725355641e..562128dc29f941689785b3db6faaaadb26face8b 100644 (file)
@@ -74,6 +74,9 @@ beast.
 
     - C-cz : switch to listener
     - C-co : cycle between code, tests and docs factor files
+    - C-cs : switch to other factor buffer (M-x fuel-switch-to-buffer)
+    - C-x4s : switch to other factor buffer in other window
+    - C-x5s : switch to other factor buffer in other frame
 
     - M-. : edit word at point in Emacs (see fuel-edit-word-method custom var)
     - M-, : go back to where M-. was last invoked
index b0756826f14880a3303ba18e6ed4bcd1dfc987a3..0334ab61041bca7068b0ad7dcd5f2488153f9d68 100644 (file)
@@ -132,6 +132,32 @@ was last invoked."
       (pop-tag-mark)
     (error "No previous location for find word or vocab invokation")))
 
+(defvar fuel-edit--buffer-history nil)
+
+(defun fuel-switch-to-buffer (&optional method)
+  "Switch to any of the existing Factor buffers, with completion."
+  (interactive)
+  (let ((buffer (completing-read "Factor buffer: "
+                                 (remove (buffer-name)
+                                         (mapcar 'buffer-name (buffer-list)))
+                                 '(lambda (s) (string-match "\\.factor$" s))
+                                 t
+                                 nil
+                                 fuel-edit--buffer-history)))
+    (cond ((eq method 'window) (switch-to-buffer-other-window buffer))
+          ((eq method 'frame) (switch-to-buffer-other-frame buffer))
+          (t (switch-to-buffer buffer)))))
+
+(defun fuel-switch-to-buffer-other-window ()
+  "Switch to any of the existing Factor buffers, in other window."
+  (interactive)
+  (fuel-switch-to-buffer 'window))
+
+(defun fuel-switch-to-buffer-other-frame ()
+  "Switch to any of the existing Factor buffers, in other frame."
+  (interactive)
+  (fuel-switch-to-buffer 'frame))
+
 \f
 (provide 'fuel-edit)
 ;;; fuel-edit.el ends here
index 9936d052fcd1a9905c2376d5253bf964f3147123..1165b17e60291847942d6b0f8c709e03d1f04c0b 100644 (file)
@@ -177,6 +177,9 @@ interacting with a factor listener is at your disposal.
 (fuel-mode--key-1 ?l 'fuel-run-file)
 (fuel-mode--key-1 ?r 'fuel-eval-region)
 (fuel-mode--key-1 ?z 'run-factor)
+(fuel-mode--key-1 ?s 'fuel-switch-to-buffer)
+(define-key fuel-mode-map "\C-x4s" 'fuel-switch-to-buffer-other-window)
+(define-key fuel-mode-map "\C-x5s" 'fuel-switch-to-buffer-other-frame)
 
 (define-key fuel-mode-map "\C-\M-x" 'fuel-eval-definition)
 (define-key fuel-mode-map "\C-\M-r" 'fuel-eval-extended-region)