[slime-cvs] CVS slime

trittweiler trittweiler at common-lisp.net
Thu Aug 23 16:21:24 UTC 2007


Update of /project/slime/cvsroot/slime
In directory clnet:/tmp/cvs-serv7571

Modified Files:
	ChangeLog 
Log Message:

	Added arglist display for declaration specifiers and type
	specifiers.

	Examples:

	`(declare (type' will display

	   (declare (type type-specifier &rest vars))

	`(declare (type (float' will display

	   [Typespec] (float &optional lower-limit upper-limit)

	`(declare (optimize' will display

	   (declare (optimize &any (safety 1) (space 1) (speed 1) ...))

	&ANY is a new lambda keyword that is introduced for arglist
	description purpose, and is very similiar to &KEY, but isn't based
	upon plists; they're more based upon *FEATURES* lists. (See the
	comment near the ARGLIST defstruct in `swank.lisp'.)

	* slime.el:
	(slime-to-feature-keyword): Renamed to `slime-keywordify'.
	(slime-eval-feature-conditional): Adapted to use `slime-keywordify'.
	(slime-ensure-list): New utility.
	(slime-sexp-at-point): Now takes an argument that specify how many
	sexps at point should be returned.
	(slime-enclosing-operator-names): Renamed to
	`slime-enclosing-form-specs'.
	(slime-enclosing-form-specs): Returns a list of ``raw form specs''
	instead of what was called ``extended operator names'' before, see
	`swank::parse-form-spec' for more information. This is a
	simplified superset. Additionally as tertiary return value return
	a list of points to let the caller see where each form spec is
	located. Adapted callers accordingly. Extended docstring.
	(slime-parse-extended-operator-name): Adapted to changes in
	`slime-enclosing-form-specs'. Now gets more context, and is such
	more powerful. This was needed to allow parsing DECLARE forms.
	(slime-make-extended-operator-parser/look-ahead): Because the
	protocol for arglist display was simplified, it was possible to
	replace the plethora of parsing function just by this one.
	(slime-extended-operator-name-parser-alist): Use it. Also add
	parser for DECLARE forms.
	(slime-parse-extended-operator/declare): Responsible for parsing
	DECLARE forms.
	(%slime-in-mid-of-typespec-p): Helper function for
	`slime-parse-extended-operator/declare'.
	(slime-incomplete-form-at-point): New. Return the ``raw form
	spec'' near point.
	(slime-complete-form): Use `slime-incomplete-form-at-point'.

	* swank.lisp: New Helper functions.
	(length=, ensure-list, recursively-empty-p): New.
	(maybecall, exactly-one-p): New.

	* swank.lisp (arglist-for-echo-area): Adapted to take ``raw form
	specs'' from Slime.
	(parse-form-spec): New. Takes a ``raw form spec'' and returns a
	``form spec'' for further processing in Swank. Docstring documents
	these two terms.
	(split-form-spec): New. Return relevant information from a form	spec.
	(parse-first-valid-form-spec): Replaces `find-valid-operator-name'.
	(find-valid-operator-name): Removed.
	(operator-designator-to-form): Removed. Obsoleted by `parse-form-spec'.

	(defstruct arglist): Add `any-p' and `any-args' slots to contain
	arguments belonging to the &ANY lambda keyword.
	(print-arglist): Adapted to also print &ANY args.
	(print-decoded-arglist-as-template): Likewise.
	(decode-arglist): Adapted to also decode &ANY args.
	(remove-actual-args): Adapted to also remove &ANY args.
	(remove-&key-args): Split out from `remove-actual-args'.
	(remove-&any-args): New. Removes already provided &ANY args.
	(arglist-from-form-spec): New. Added detailed docstring.
	(arglist-dispatch): Dispatching generic function for
	`arglist-from-form-spec' that does all the work. Renamed from
	prior `form-completion'.
	(arglist-dispatch) Added methods for dealing with declaration and
	type-specifiers.
	(complete-form): Adapted to take ``raw form specs'' from Slime.
	(completions-for-keyword): Likewise.
	(format-arglist-for-echo-area): Removed. Not needed anymore.

	* swank-backend.lisp (declaration-arglist): New generic
	function. Returns the arglist for a given declaration
	identifier. (Backends are supposed to specialize it if they can
	provide additional information.)
	(type-specifier-arglist): New generic function. Returns the
	arglist for a given type-specifier operator. (Backends are
	supposed to specialize it if they can provide additional
	information.)
	(*type-specifier-arglists*): New variable. Contains the arglists
	for the type specifiers in Common Lisp.

	* swank-sbcl.lisp: Now depends upon sb-cltl2.
	(declaration-arglist 'optimize): Specialize the `optimize'
	declaration identifier to pass it to
	sb-cltl2:declaration-information.


--- /project/slime/cvsroot/slime/ChangeLog	2007/08/23 13:56:22	1.1148
+++ /project/slime/cvsroot/slime/ChangeLog	2007/08/23 16:21:23	1.1149
@@ -1,3 +1,106 @@
+2007-08-23  Tobias C. Rittweiler <tcr at freebits.de>
+
+	Added arglist display for declaration specifiers and type
+	specifiers.
+
+	Examples:
+
+	`(declare (type' will display
+
+	   (declare (type type-specifier &rest vars))
+
+	`(declare (type (float' will display
+
+	   [Typespec] (float &optional lower-limit upper-limit)
+
+	`(declare (optimize' will display
+
+	   (declare (optimize &any (safety 1) (space 1) (speed 1) ...))
+
+	&ANY is a new lambda keyword that is introduced for arglist
+	description purpose, and is very similiar to &KEY, but isn't based
+	upon plists; they're more based upon *FEATURES* lists. (See the
+	comment near the ARGLIST defstruct in `swank.lisp'.)
+
+	* slime.el:
+	(slime-to-feature-keyword): Renamed to `slime-keywordify'.
+	(slime-eval-feature-conditional): Adapted to use `slime-keywordify'.
+	(slime-ensure-list): New utility.
+	(slime-sexp-at-point): Now takes an argument that specify how many
+	sexps at point should be returned.
+	(slime-enclosing-operator-names): Renamed to
+	`slime-enclosing-form-specs'.
+	(slime-enclosing-form-specs): Returns a list of ``raw form specs''
+	instead of what was called ``extended operator names'' before, see
+	`swank::parse-form-spec' for more information. This is a
+	simplified superset. Additionally as tertiary return value return
+	a list of points to let the caller see where each form spec is
+	located. Adapted callers accordingly. Extended docstring.
+	(slime-parse-extended-operator-name): Adapted to changes in
+	`slime-enclosing-form-specs'. Now gets more context, and is such
+	more powerful. This was needed to allow parsing DECLARE forms.
+	(slime-make-extended-operator-parser/look-ahead): Because the
+	protocol for arglist display was simplified, it was possible to
+	replace the plethora of parsing function just by this one.
+	(slime-extended-operator-name-parser-alist): Use it. Also add
+	parser for DECLARE forms.
+	(slime-parse-extended-operator/declare): Responsible for parsing
+	DECLARE forms.
+	(%slime-in-mid-of-typespec-p): Helper function for
+	`slime-parse-extended-operator/declare'.
+	(slime-incomplete-form-at-point): New. Return the ``raw form
+	spec'' near point.
+	(slime-complete-form): Use `slime-incomplete-form-at-point'.
+
+	* swank.lisp: New Helper functions.
+	(length=, ensure-list, recursively-empty-p): New.
+	(maybecall, exactly-one-p): New.
+
+	* swank.lisp (arglist-for-echo-area): Adapted to take ``raw form
+	specs'' from Slime.
+	(parse-form-spec): New. Takes a ``raw form spec'' and returns a
+	``form spec'' for further processing in Swank. Docstring documents
+	these two terms.
+	(split-form-spec): New. Return relevant information from a form	spec.
+	(parse-first-valid-form-spec): Replaces `find-valid-operator-name'.
+	(find-valid-operator-name): Removed.
+	(operator-designator-to-form): Removed. Obsoleted by `parse-form-spec'.
+
+	(defstruct arglist): Add `any-p' and `any-args' slots to contain
+	arguments belonging to the &ANY lambda keyword.
+	(print-arglist): Adapted to also print &ANY args.
+	(print-decoded-arglist-as-template): Likewise.
+	(decode-arglist): Adapted to also decode &ANY args.
+	(remove-actual-args): Adapted to also remove &ANY args.
+	(remove-&key-args): Split out from `remove-actual-args'.
+	(remove-&any-args): New. Removes already provided &ANY args.
+	(arglist-from-form-spec): New. Added detailed docstring.
+	(arglist-dispatch): Dispatching generic function for
+	`arglist-from-form-spec' that does all the work. Renamed from
+	prior `form-completion'.
+	(arglist-dispatch) Added methods for dealing with declaration and
+	type-specifiers.
+	(complete-form): Adapted to take ``raw form specs'' from Slime.
+	(completions-for-keyword): Likewise.
+	(format-arglist-for-echo-area): Removed. Not needed anymore.
+
+	* swank-backend.lisp (declaration-arglist): New generic
+	function. Returns the arglist for a given declaration
+	identifier. (Backends are supposed to specialize it if they can
+	provide additional information.)
+	(type-specifier-arglist): New generic function. Returns the
+	arglist for a given type-specifier operator. (Backends are
+	supposed to specialize it if they can provide additional
+	information.)
+	(*type-specifier-arglists*): New variable. Contains the arglists
+	for the type specifiers in Common Lisp.
+
+	* swank-sbcl.lisp: Now depends upon sb-cltl2.
+	(declaration-arglist 'optimize): Specialize the `optimize'
+	declaration identifier to pass it to
+	sb-cltl2:declaration-information.
+	
+	
 2007-08-23  Helmut Eller  <heller at common-lisp.net>
 
 	Some inspector cleanups.




More information about the slime-cvs mailing list