Ariel Badichi vermilionrush@gmail.com writes:
contrib/swank-arglists.lisp | 17 ++++++++++------- 1 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/contrib/swank-arglists.lisp b/contrib/swank-arglists.lisp index fcc3551..4873091 100644 --- a/contrib/swank-arglists.lisp +++ b/contrib/swank-arglists.lisp @@ -1150,14 +1150,17 @@ wrapped in ===> X <===." "Return a list of possible completions for KEYWORD-STRING relative to the context provided by RAW-FORM." (with-buffer-syntax ()
- (with-available-arglist (arglist)
(find-immediately-containing-arglist (parse-raw-form raw-form)) ;; It would be possible to complete keywords only if we are in ;; a keyword position, but it is not clear if we want that.
(let* ((keywords
(append (mapcar #'keyword-arg.keyword
(arglist.keyword-args arglist))
(remove-if-not #'keywordp (arglist.any-args arglist))))
(let* ((keywords-for-arglist
(with-available-arglist (arglist)
(find-immediately-containing-arglist (parse-raw-form raw-form))
(append (mapcar #'keyword-arg.keyword
(arglist.keyword-args arglist))
(remove-if-not #'keywordp (arglist.any-args arglist)))))
(keywords
(unless (eq :not-available keywords-for-arglist)
keywords-for-arglist)) (keyword-name (tokenize-symbol keyword-string)) (matching-keywords
@@ -1170,7 +1173,7 @@ to the context provided by RAW-FORM." (completion-set (format-completion-set strings nil ""))) (list completion-set
(longest-compound-prefix completion-set))))))
(longest-compound-prefix completion-set)))))
(defparameter +cursor-marker+ '%cursor-marker%)
Do rather: (let ((arglist (find-immediately-containing-arglist ...))) (when (arglist-available-p arglist) ...original-body..))
Also add a test case to the`complete-symbol*' test in slime-c-p-c.el
-T.