[movitz-cvs] CVS movitz/ide

ffjeld ffjeld at common-lisp.net
Tue Mar 13 20:42:16 UTC 2007


Update of /project/movitz/cvsroot/movitz/ide
In directory clnet:/tmp/cvs-serv22271

Modified Files:
	movitz-slime.el 
Log Message:
Make initialization of the SLIME IDE more streamlined.


--- /project/movitz/cvsroot/movitz/ide/movitz-slime.el	2007/03/07 20:53:12	1.4
+++ /project/movitz/cvsroot/movitz/ide/movitz-slime.el	2007/03/13 20:42:13	1.5
@@ -16,19 +16,38 @@
 (require 'slime)
 (require 'cl)
 
-;;;; Minor-mode
+(eval-and-compile 
+  (defvar movitz-slime-path
+    (let ((path (or (locate-library "movitz-slime") load-file-name)))
+      (when path
+        (file-name-directory path)))
+    "Directory containing movitz sources.
+This is used to load the supporting Common Lisp library, ide.lisp.
+The default value is automatically computed from the location of the
+Emacs Lisp package."))
 
 ;; You should set this to something more convenient, e.g. "\C-cm"
 (defvar movitz-command-prefix "\C-c\C-v"
   "The initial key prefixf or movitz commands.")
 
 (define-minor-mode movitz-mode
-  "\\{movitz-mode-map}"
-  nil
-  " Movitz"
+  "\\{movitz-mode-map}
+Interface Movitz via SLIME."
+ :init-value nil
+ :lighter " Movitz"
   ;; Bogus keymap to have movitz-mode-map initialized. We'll fill in
   ;; the real bindings manually.
-  `((,movitz-command-prefix . undefined)))
+ :keymap `((,movitz-command-prefix . undefined))
+ (cond
+  ((not movitz-mode))
+  ((not (slime-connected-p))
+   (message "Movitz-mode: SLIME is not connected."))
+  ((slime-eval '(cl:and (cl:find-package :movitz.ide) t)))
+  ((not (slime-eval '(cl:and (cl:find-package :movitz) t)))
+   (message "Movitz-mode: The Movitz package is not loaded."))
+  (t (slime-eval-async
+      `(cl:progn (cl:load (cl:compile-file ,(concat movitz-slime-path "ide.lisp")))
+                 nil)))))
 
 (defvar movitz-mode-commands-map nil
   "Keymap for movitz-mode commands.
@@ -61,8 +80,6 @@
   (define-key movitz-mode-map "\r" 'newline-and-indent)
   (define-key movitz-mode-map " " 'self-insert-command))
 
-(movitz-init-command-keymap)
-
 (defun movitz-auto-mode-setup ()
   "Do some horrible things with regexps to auto-enable movitz-mode.
 You can call this function from your init file, but first read what it
@@ -72,7 +89,7 @@
               (when (string-match ".*/movitz/losp/.*\\.lisp$" (buffer-file-name))
                 (movitz-mode 1)))))
 
-(movitz-auto-mode-setup)
+
 
 
 ;;;; Commands
@@ -267,4 +284,8 @@
     (put (car el) 'common-lisp-indent-function
          (if (symbolp (cdr el))
              (get (cdr el) 'common-lisp-indent-function)
-           (car (cdr el))))))
\ No newline at end of file
+           (car (cdr el))))))
+
+(movitz-auto-mode-setup)
+(movitz-init-command-keymap)
+




More information about the Movitz-cvs mailing list