[clim-desktop-cvs] CVS clim-desktop
thenriksen
thenriksen at common-lisp.net
Tue May 30 23:22:39 UTC 2006
Update of /project/clim-desktop/cvsroot/clim-desktop
In directory clnet:/tmp/cvs-serv27804
Modified Files:
swine.lisp
Log Message:
Fixed issue with symbol-completion and invalid package designators.
--- /project/clim-desktop/cvsroot/clim-desktop/swine.lisp 2006/05/30 23:09:44 1.15
+++ /project/clim-desktop/cvsroot/clim-desktop/swine.lisp 2006/05/30 23:22:39 1.16
@@ -61,6 +61,11 @@
(or (form-around syntax (offset mark))
(form-before syntax (offset mark))))
+(defun usable-package (package-designator)
+ "Return a usable package based on `package-designator'."
+ (or (find-package package-designator)
+ *package*))
+
(defun macroexpand-token (syntax token &optional (all nil))
(let* ((string (token-string syntax token))
(expression (read-from-string string))
@@ -999,25 +1004,23 @@
(climacs-gui::delete-window *swine-completion-pane*)
(setf *swine-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* ((swank-result (funcall fn symbol (package-name (or package *package*))))
+(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* ((swank-result (funcall fn symbol (package-name (usable-package package))))
(set (first swank-result))
(longest (second swank-result)))
- (cond ((<= (length set) 1)
- (clear-completions))
- (t (let ((stream (or *swine-completion-pane*
- (climacs-gui::typeout-window "Simple Completions"))))
- (setf *swine-completion-pane* stream)
- (window-clear stream)
- (format stream "~{~A~%~}" set))))
+ (cond ((<= (length set) 1)
+ (clear-completions))
+ (t (let ((stream (or *swine-completion-pane*
+ (climacs-gui::typeout-window "Simple Completions"))))
+ (setf *swine-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 #'swank::completions symbol))
@@ -1025,21 +1028,21 @@
(defun show-simple-completions (symbol)
(show-completions-by-fn #'swank::simple-completions symbol))
- (defun show-fuzzy-completions (symbol)
- (with-slots (package) (syntax (buffer (climacs-gui::current-window)))
- (climacs-gui::display-message (format nil "~a completions" symbol))
- (let* ((set (swank::fuzzy-completions symbol (package-name (or package *package*)) 10))
- (best (caar set)))
+(defun show-fuzzy-completions (symbol)
+ (with-slots (package) (syntax (buffer (climacs-gui::current-window)))
+ (climacs-gui::display-message (format nil "~a completions" symbol))
+ (let* ((set (swank::fuzzy-completions symbol (package-name (usable-package package)) 10))
+ (best (caar set)))
- (cond ((<= (length set) 1)
- (clear-completions))
- (t (let ((stream (or *swine-completion-pane*
- (climacs-gui::typeout-window "Simple Completions"))))
- (setf *swine-completion-pane* stream)
- (window-clear stream)
- (loop for completed-string in set
- do (format stream "~{~A ~}~%" completed-string)))))
+ (cond ((<= (length set) 1)
+ (clear-completions))
+ (t (let ((stream (or *swine-completion-pane*
+ (climacs-gui::typeout-window "Simple Completions"))))
+ (setf *swine-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)))
More information about the Clim-desktop-cvs
mailing list