From 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 7 Apr 2024 13:41:34 -0500 Subject: new repository --- devdocs/elisp/symbol-plists.html | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 devdocs/elisp/symbol-plists.html (limited to 'devdocs/elisp/symbol-plists.html') diff --git a/devdocs/elisp/symbol-plists.html b/devdocs/elisp/symbol-plists.html new file mode 100644 index 00000000..e0cfb30b --- /dev/null +++ b/devdocs/elisp/symbol-plists.html @@ -0,0 +1,40 @@ +

Accessing Symbol Properties

The following functions can be used to access symbol properties.

Function: get symbol property +
+

This function returns the value of the property named property in symbol’s property list. If there is no such property, it returns nil. Thus, there is no distinction between a value of nil and the absence of the property.

The name property is compared with the existing property names using eq, so any object is a legitimate property.

See put for an example.

+
+
Function: put symbol property value +
+

This function puts value onto symbol’s property list under the property name property, replacing any previous property value. The put function returns value.

(put 'fly 'verb 'transitive)
+     ⇒'transitive
+(put 'fly 'noun '(a buzzing little bug))
+     ⇒ (a buzzing little bug)
+(get 'fly 'verb)
+     ⇒ transitive
+(symbol-plist 'fly)
+     ⇒ (verb transitive noun (a buzzing little bug))
+
+
+
Function: symbol-plist symbol +

This function returns the property list of symbol.

+
Function: setplist symbol plist +
+

This function sets symbol’s property list to plist. Normally, plist should be a well-formed property list, but this is not enforced. The return value is plist.

(setplist 'foo '(a 1 b (2 3) c nil))
+     ⇒ (a 1 b (2 3) c nil)
+(symbol-plist 'foo)
+     ⇒ (a 1 b (2 3) c nil)
+
+

For symbols in special obarrays, which are not used for ordinary purposes, it may make sense to use the property list cell in a nonstandard fashion; in fact, the abbrev mechanism does so (see Abbrevs).

You could define put in terms of setplist and plist-put, as follows:

(defun put (symbol prop value)
+  (setplist symbol
+            (plist-put (symbol-plist symbol) prop value)))
+
+
+
Function: function-get symbol property &optional autoload +

This function is identical to get, except that if symbol is the name of a function alias, it looks in the property list of the symbol naming the actual function. See Defining Functions. If the optional argument autoload is non-nil, and symbol is auto-loaded, this function will try to autoload it, since autoloading might set property of symbol. If autoload is the symbol macro, only try autoloading if symbol is an auto-loaded macro.

+
Function: function-put function property value +

This function sets property of function to value. function should be a symbol. This function is preferred to calling put for setting properties of a function, because it will allow us some day to implement remapping of old properties to new ones.

+
+

+ Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
+ https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Plists.html +

+
-- cgit v1.2.3