[clim-desktop-cvs] CVS clim-desktop

thenriksen thenriksen at common-lisp.net
Sun Jun 4 22:25:15 UTC 2006


Update of /project/clim-desktop/cvsroot/clim-desktop
In directory clnet:/tmp/cvs-serv20774

Modified Files:
	swine.lisp swine-cmds.lisp 
Log Message:
Updated Swine to use the new package selection code in Climacs.


--- /project/clim-desktop/cvsroot/clim-desktop/swine.lisp	2006/06/03 18:14:42	1.23
+++ /project/clim-desktop/cvsroot/clim-desktop/swine.lisp	2006/06/04 22:25:15	1.24
@@ -143,13 +143,6 @@
   (or (find-package package-designator)
       *package*))
 
-(defmacro with-syntax-package (syntax (package-sym)
-                               &body body)
-  "Evaluate `body' with `package-sym' bound to a valid package,
-  preferably taken from `syntax'."
-  `(let ((,package-sym (usable-package (slot-value ,syntax 'package))))
-     , at body))
-
 (defmacro evaluating-interactively (&body body)
   `(handler-case (progn , at body)
      (end-of-file ()
@@ -158,7 +151,7 @@
 ;;; Real code:
 
 (defun macroexpand-token (syntax token &optional (all nil))
-  (with-syntax-package syntax (package)
+  (with-syntax-package syntax (start-offset token) (package)
     (let ((*package* package))
       (let* ((string (token-string syntax token))
              (expression (read-from-string string))
@@ -204,7 +197,7 @@
       (esa:display-message result))))
 
 (defun compile-definition-interactively (mark pane syntax)
-  (with-syntax-package syntax (package)
+  (with-syntax-package syntax mark (package)
    (let* ((token (definition-at-mark mark syntax))
           (string (token-string syntax token))
           (m (clone-mark mark))
@@ -471,7 +464,7 @@
   (when (and (needs-saving buffer)
              (accept 'boolean :prompt (format nil "Save buffer ~A ?" (name buffer))))
     (climacs-gui::save-buffer buffer))
-  (with-syntax-package (syntax buffer) (package)
+  (with-syntax-package (syntax buffer) 0 (package)
     (multiple-value-bind (result notes)
         (compile-file-for-climacs (filepath buffer) package load-p)
       (show-note-counts notes (second result))
@@ -1130,40 +1123,38 @@
     (climacs-gui::delete-window *completion-pane*)
     (setf *completion-pane* nil)))
 
-(defun show-completions-by-fn (fn symbol)
-  (with-slots (package) (syntax (buffer (climacs-gui::current-window)))
-    (climacs-gui::display-message (format nil "~a completions" symbol))
-    (let* ((result (funcall fn symbol (package-name (usable-package package))))
-	   (set (first result))
-	   (longest (second result)))
-      (cond ((<= (length set) 1)
-             (clear-completions))
-            (t (let ((stream (or *completion-pane*
-                                 (climacs-gui::typeout-window "Simple Completions"))))
-                 (setf *completion-pane* stream)
-                 (window-clear stream)
-                 (format stream "~{~A~%~}" set))))
+(defun show-completions-by-fn (fn symbol package)
+  (climacs-gui::display-message (format nil "~a completions" symbol))
+  (let* ((result (funcall fn symbol (package-name package)))
+         (set (first result))
+         (longest (second result)))
+    (cond ((<= (length set) 1)
+           (clear-completions))
+          (t (let ((stream (or *completion-pane*
+                               (climacs-gui::typeout-window "Simple Completions"))))
+               (setf *completion-pane* stream)
+               (window-clear stream)
+               (format stream "~{~A~%~}" set))))
        
-      (climacs-gui::display-message (format nil "Longest is ~a|" longest))
-      longest)))
+    (climacs-gui::display-message (format nil "Longest is ~a|" longest))
+    longest))
 
-(defun show-completions (symbol)
-  (show-completions-by-fn #'simple-completions symbol))
+(defun show-completions (symbol-name package)
+  (show-completions-by-fn #'simple-completions symbol-name package))
 
-(defun show-fuzzy-completions (symbol)
-  (with-syntax-package (syntax (buffer (climacs-gui::current-window))) (package) 
-    (climacs-gui::display-message (format nil "~a completions" symbol))
-    (let* ((set (fuzzy-completions symbol package 10))
-           (best (caar set)))
-      (cond ((<= (length set) 1)
-             (clear-completions))
-            (t (let ((stream (or *completion-pane*
-                                 (climacs-gui::typeout-window "Simple Completions"))))
-                 (setf *completion-pane* stream)
-                 (window-clear stream)
-                 (loop for completed-string in set
-                    do (format stream "~{~A  ~}~%" completed-string)))))
+(defun show-fuzzy-completions (symbol-name package)
+  (climacs-gui::display-message (format nil "~a completions" symbol-name))
+  (let* ((set (fuzzy-completions symbol-name package 10))
+         (best (caar set)))
+    (cond ((<= (length set) 1)
+           (clear-completions))
+          (t (let ((stream (or *completion-pane*
+                               (climacs-gui::typeout-window "Simple Completions"))))
+               (setf *completion-pane* stream)
+               (window-clear stream)
+               (loop for completed-string in set
+                  do (format stream "~{~A  ~}~%" completed-string)))))
        
-      (climacs-gui::display-message (format nil "Best is ~a|" best))
-      best)))
+    (climacs-gui::display-message (format nil "Best is ~a|" best))
+    best))
 
--- /project/clim-desktop/cvsroot/clim-desktop/swine-cmds.lisp	2006/06/03 18:14:42	1.21
+++ /project/clim-desktop/cvsroot/clim-desktop/swine-cmds.lisp	2006/06/04 22:25:15	1.22
@@ -32,7 +32,7 @@
          (mark (point (current-window)))
          (token (form-before syntax (offset mark))))
     (if token
-        (with-syntax-package syntax (package)
+        (with-syntax-package syntax mark (package)
           (let ((*package* package))
             (climacs-gui::com-eval-expression
              (read-from-string (token-string syntax token))
@@ -238,16 +238,20 @@
 
 If more than one completion is available, a list of possible
 completions will be displayed."
-  (let* ((point-current-window (point (current-window)))
+  (let* ((pane (current-window))
+         (buffer (buffer pane))
+         (syntax (syntax buffer))
+         (point-current-window (point pane))
 	 (name (symbol-name-at-mark point-current-window
-				    (syntax (buffer (current-window))))))
+				    syntax)))
     (when name
-      (let ((completion (show-completions name))
-	    (mark (clone-mark point-current-window)))
-	(unless (= (length completion) 0)
-	  (backward-object mark (length name))
-	  (delete-region mark point-current-window)
-	  (insert-sequence point-current-window completion))))))
+      (with-syntax-package syntax point-current-window (package)
+        (let ((completion (show-completions name package))
+              (mark (clone-mark point-current-window)))
+          (unless (= (length completion) 0)
+            (backward-object mark (length name))
+            (delete-region mark point-current-window)
+            (insert-sequence point-current-window completion)))))))
 
 (define-command (com-fuzzily-complete-symbol :name t :command-table lisp-table) ()
   "Attempt to fuzzily complete the abbreviation at mark.
@@ -255,16 +259,20 @@
 Fuzzy completion tries to guess which symbol is abbreviated. If
 the abbreviation is ambiguous, a list of possible completions
 will be displayed."
-  (let* ((point-current-window (point (current-window)))
+  (let* ((pane (current-window))
+         (buffer (buffer pane))
+         (syntax (syntax buffer))
+         (point-current-window (point pane))
 	 (name (symbol-name-at-mark point-current-window
-				    (syntax (buffer (current-window))))))
+				    syntax)))
     (when name
-      (let ((completion (show-fuzzy-completions name))
-	    (mark (clone-mark point-current-window)))
-	(unless (= (length completion) 0)
-	  (backward-object mark (length name))
-	  (delete-region mark point-current-window)
-	  (insert-sequence point-current-window completion))))))
+      (with-syntax-package syntax point-current-window (package)
+        (let ((completion (show-fuzzy-completions name package))
+              (mark (clone-mark point-current-window)))
+          (unless (= (length completion) 0)
+            (backward-object mark (length name))
+            (delete-region mark point-current-window)
+            (insert-sequence point-current-window completion)))))))
 
 (esa:set-key 'com-complete-symbol
 	     'lisp-table




More information about the Clim-desktop-cvs mailing list