From d78d5b6a8292d0862ce7d3da22d692f970b137bc Mon Sep 17 00:00:00 2001 From: Sami Samhuri Date: Sun, 29 Aug 2010 18:39:34 -0700 Subject: [PATCH] added a simple open-project function to emacs --- emacs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/emacs b/emacs index aecd108..38883c5 100644 --- a/emacs +++ b/emacs @@ -387,6 +387,9 @@ ;; run the ssa server (global-set-key [(super s)] 'ssa-run-server) +;; quickly jump to a project +(global-set-key [(super o)] 'open-project) + (defun ssa-start-server (buffer) (process-send-string buffer "cd ~/Projects/ssa/SelfServeApps/Backend") (comint-send-input) @@ -409,6 +412,27 @@ (comint-interrupt-subjob) (ssa-start-server "*server*"))))) +(defvar *open-project-registry* (list)) + +(defun register-project (name root-file) + (interactive "sProject name: \nfRoot filename: ") + (when (null (assoc name *open-project-registry*)) + (set '*open-project-registry* (cons (list name root-file) *open-project-registry*)))) + +;; FIXME use completing read +(defun open-project (name) + (interactive "sProject name: ") + (let* ((project (assoc name *open-project-registry*)) + (root-file (cadr project))) + (when (null root-file) + (error "No such project")) + (find-file root-file))) + +;; register projects +(register-project "ssa" "/Users/sjs/Projects/ssa/SelfServeApps/Frontend/AppController.j") +(register-project "cappuccino" "/Users/sjs/Projects/cappuccino/Foundation/CPObject.j") + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; utilities & customizations ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;