diff options
| author | Chong Yidong | 2012-09-18 13:14:42 +0800 |
|---|---|---|
| committer | Chong Yidong | 2012-09-18 13:14:42 +0800 |
| commit | ed1f0bd388e83e5ee065f7dde0f52bbfe9031933 (patch) | |
| tree | 7b0251ea23f7191194f5f0739ae43975e56c3db6 | |
| parent | a11035b8cd0ef80bc118cc97be53373b36475da0 (diff) | |
| download | emacs-ed1f0bd388e83e5ee065f7dde0f52bbfe9031933.tar.gz emacs-ed1f0bd388e83e5ee065f7dde0f52bbfe9031933.zip | |
Doc fixes for defface and friends.
* lisp/cus-edit.el (custom-unlispify-remove-prefixes): Add warning.
* lisp/custom.el (defface): Doc fix.
* doc/lispref/customize.texi (Customization): Define customization more
carefully.
(Common Keywords): Add xref to Constant Variables.
* doc/lispref/display.texi (Faces): Discuss anonymous faces.
(Face Attributes): Tweak intro.
(Defining Faces): Move after the Face Attributes node. Copyedits.
(Displaying Faces): Describe role of inheritance.
* doc/lispref/variables.texi (Defining Variables): Link to defcustom's node
instead of the higher-level Customization chapter.
Fixes: debbugs:11440
| -rw-r--r-- | doc/lispref/ChangeLog | 14 | ||||
| -rw-r--r-- | doc/lispref/customize.texi | 73 | ||||
| -rw-r--r-- | doc/lispref/display.texi | 376 | ||||
| -rw-r--r-- | doc/lispref/elisp.texi | 2 | ||||
| -rw-r--r-- | doc/lispref/text.texi | 11 | ||||
| -rw-r--r-- | doc/lispref/variables.texi | 3 | ||||
| -rw-r--r-- | lisp/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/cus-edit.el | 5 | ||||
| -rw-r--r-- | lisp/custom.el | 110 |
9 files changed, 331 insertions, 269 deletions
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index ce99c81a912..329c194f45a 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,17 @@ | |||
| 1 | 2012-09-18 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * display.texi (Faces): Discuss anonymous faces. | ||
| 4 | (Face Attributes): Tweak intro. | ||
| 5 | (Defining Faces): Move after the Face Attributes node. Copyedits. | ||
| 6 | (Displaying Faces): Describe role of inheritance. | ||
| 7 | |||
| 8 | * customize.texi (Customization): Define customization more | ||
| 9 | carefully (Bug#11440). | ||
| 10 | (Common Keywords): Add xref to Constant Variables. | ||
| 11 | |||
| 12 | * variables.texi (Defining Variables): Link to defcustom's node | ||
| 13 | instead of the higher-level Customization chapter. | ||
| 14 | |||
| 1 | 2012-09-11 Paul Eggert <eggert@cs.ucla.edu> | 15 | 2012-09-11 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 16 | ||
| 3 | Simplify, document, and port floating-point (Bug#12381). | 17 | Simplify, document, and port floating-point (Bug#12381). |
diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi index 38dfc949264..c9d22851ed2 100644 --- a/doc/lispref/customize.texi +++ b/doc/lispref/customize.texi | |||
| @@ -6,13 +6,30 @@ | |||
| 6 | @chapter Customization Settings | 6 | @chapter Customization Settings |
| 7 | 7 | ||
| 8 | @cindex customization item | 8 | @cindex customization item |
| 9 | This chapter describes how to declare customizable variables and | 9 | Users of Emacs can customize variables and faces without writing |
| 10 | customization groups for classifying them. We use the term | 10 | Lisp code, by using the Customize interface. @xref{Easy |
| 11 | @dfn{customization item} to include customizable variables, | 11 | Customization,,, emacs, The GNU Emacs Manual}. This chapter describes |
| 12 | customization groups, as well as faces. | 12 | how to define @dfn{customization items} that users can interact with |
| 13 | 13 | through the Customize interface. | |
| 14 | @xref{Defining Faces}, for the @code{defface} macro, which is used | 14 | |
| 15 | for declaring customizable faces. | 15 | Customization items include customizable variables, which are |
| 16 | defined with the | ||
| 17 | @ifinfo | ||
| 18 | @code{defcustom} macro (@pxref{Variable Definitions}); | ||
| 19 | @end ifinfo | ||
| 20 | @ifnotinfo | ||
| 21 | @code{defcustom} macro; | ||
| 22 | @end ifnotinfo | ||
| 23 | customizable faces, which are defined with @code{defface} (described | ||
| 24 | separately in @ref{Defining Faces}); and @dfn{customization groups}, | ||
| 25 | defined with | ||
| 26 | @ifinfo | ||
| 27 | @code{defgroup} (@pxref{Group Definitions}), | ||
| 28 | @end ifinfo | ||
| 29 | @ifnotinfo | ||
| 30 | @code{defgroup}, | ||
| 31 | @end ifnotinfo | ||
| 32 | which act as containers for groups of related customization items. | ||
| 16 | 33 | ||
| 17 | @menu | 34 | @menu |
| 18 | * Common Keywords:: Common keyword arguments for all kinds of | 35 | * Common Keywords:: Common keyword arguments for all kinds of |
| @@ -29,9 +46,10 @@ for declaring customizable faces. | |||
| 29 | 46 | ||
| 30 | @cindex customization keywords | 47 | @cindex customization keywords |
| 31 | The customization declarations that we will describe in the next few | 48 | The customization declarations that we will describe in the next few |
| 32 | sections (@code{defcustom}, @code{defgroup}, etc.) all accept keyword | 49 | sections---@code{defcustom}, @code{defgroup}, etc.---all accept |
| 33 | arguments for specifying various information. This section describes | 50 | keyword arguments (@pxref{Constant Variables}) for specifying various |
| 34 | keywords that apply to all types of customization declarations. | 51 | information. This section describes keywords that apply to all types |
| 52 | of customization declarations. | ||
| 35 | 53 | ||
| 36 | All of these keywords, except @code{:tag}, can be used more than once | 54 | All of these keywords, except @code{:tag}, can be used more than once |
| 37 | in a given item. Each use of the keyword has an independent effect. | 55 | in a given item. Each use of the keyword has an independent effect. |
| @@ -188,14 +206,14 @@ choice is the official name of the package, such as MH-E or Gnus. | |||
| 188 | @cindex define customization group | 206 | @cindex define customization group |
| 189 | @cindex customization groups, defining | 207 | @cindex customization groups, defining |
| 190 | 208 | ||
| 191 | Each Emacs Lisp package should have one main customization group which | 209 | Each Emacs Lisp package should have one main customization group |
| 192 | contains all the options, faces and other groups in the package. If the | 210 | which contains all the options, faces and other groups in the package. |
| 193 | package has a small number of options and faces, use just one group and | 211 | If the package has a small number of options and faces, use just one |
| 194 | put everything in it. When there are more than twelve or so options and | 212 | group and put everything in it. When there are more than twenty or so |
| 195 | faces, then you should structure them into subgroups, and put the | 213 | options and faces, then you should structure them into subgroups, and |
| 196 | subgroups under the package's main customization group. It is OK to | 214 | put the subgroups under the package's main customization group. It is |
| 197 | put some of the options and faces in the package's main group alongside | 215 | OK to put some of the options and faces in the package's main group |
| 198 | the subgroups. | 216 | alongside the subgroups. |
| 199 | 217 | ||
| 200 | The package's main or only group should be a member of one or more of | 218 | The package's main or only group should be a member of one or more of |
| 201 | the standard customization groups. (To display the full list of them, | 219 | the standard customization groups. (To display the full list of them, |
| @@ -251,7 +269,17 @@ confusing names for options and faces. | |||
| 251 | @node Variable Definitions | 269 | @node Variable Definitions |
| 252 | @section Defining Customization Variables | 270 | @section Defining Customization Variables |
| 253 | @cindex define customization options | 271 | @cindex define customization options |
| 254 | @cindex customization variables, how to define | 272 | @cindex customizable variables, how to define |
| 273 | @cindex user options, how to define | ||
| 274 | |||
| 275 | @dfn{Customizable variables}, also called @dfn{user options}, are | ||
| 276 | global Lisp variables whose values can be set through the Customize | ||
| 277 | interface. Unlike other global variables, which are defined with | ||
| 278 | @code{defvar} (@pxref{Defining Variables}), customizable variables are | ||
| 279 | defined using the @code{defcustom} macro. In addition to calling | ||
| 280 | @code{defvar} as a subroutine, @code{defcustom} states how the | ||
| 281 | variable should be displayed in the Customize interface, the values it | ||
| 282 | is allowed to take, etc. | ||
| 255 | 283 | ||
| 256 | @defmac defcustom option standard doc [keyword value]@dots{} | 284 | @defmac defcustom option standard doc [keyword value]@dots{} |
| 257 | This macro declares @var{option} as a user option (i.e.@: a | 285 | This macro declares @var{option} as a user option (i.e.@: a |
| @@ -291,13 +319,14 @@ has not been assigned the right value yet. In that case, use | |||
| 291 | standard value after Emacs starts up. | 319 | standard value after Emacs starts up. |
| 292 | @end defmac | 320 | @end defmac |
| 293 | 321 | ||
| 294 | @code{defcustom} accepts the following additional keywords: | 322 | In addition to the keywords listed in @ref{Common Keywords}, this |
| 323 | macro accepts the following keywords: | ||
| 295 | 324 | ||
| 296 | @table @code | 325 | @table @code |
| 297 | @item :type @var{type} | 326 | @item :type @var{type} |
| 298 | Use @var{type} as the data type for this option. It specifies which | 327 | Use @var{type} as the data type for this option. It specifies which |
| 299 | values are legitimate, and how to display the value. | 328 | values are legitimate, and how to display the value |
| 300 | @xref{Customization Types}, for more information. | 329 | (@pxref{Customization Types}). |
| 301 | 330 | ||
| 302 | @item :options @var{value-list} | 331 | @item :options @var{value-list} |
| 303 | @kindex options@r{, @code{defcustom} keyword} | 332 | @kindex options@r{, @code{defcustom} keyword} |
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 64aa891e56b..11a86f3c1c5 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi | |||
| @@ -1863,20 +1863,36 @@ height. | |||
| 1863 | 1863 | ||
| 1864 | A @dfn{face} is a collection of graphical @dfn{attributes} for | 1864 | A @dfn{face} is a collection of graphical @dfn{attributes} for |
| 1865 | displaying text: font, foreground color, background color, optional | 1865 | displaying text: font, foreground color, background color, optional |
| 1866 | underlining, and so on. Faces control how Emacs displays text in | 1866 | underlining, etc. Faces control how Emacs displays text in buffers, |
| 1867 | buffers, as well as other parts of the frame such as the mode line. | 1867 | as well as other parts of the frame such as the mode line. |
| 1868 | @xref{Standard Faces,,, emacs, The GNU Emacs Manual}, for the list of | 1868 | |
| 1869 | faces Emacs normally comes with. | 1869 | @cindex anonymous face |
| 1870 | 1870 | One way to represent a face is as a property list of attributes, | |
| 1871 | @cindex face id | 1871 | like @code{(:foreground "red" :weight bold)}. For example, you can |
| 1872 | For most purposes, you refer to a face in Lisp programs using its | 1872 | assign such an @dfn{anonymous face} as the value of the @code{face} |
| 1873 | @dfn{face name}, which is usually a Lisp symbol. For backward | 1873 | text property; this causes Emacs to display the underlying text with |
| 1874 | compatibility, a face name can also be a string, which is equivalent | 1874 | the specified attributes. @xref{Special Properties}. |
| 1875 | to a Lisp symbol of the same name. | 1875 | |
| 1876 | @cindex face name | ||
| 1877 | More commonly, a face is referred to via a @dfn{face name}: a Lisp | ||
| 1878 | symbol which is associated with a set of face attributes. Named faces | ||
| 1879 | are defined using the @code{defface} macro (@pxref{Defining Faces}). | ||
| 1880 | Emacs defines several standard named faces; @xref{Standard Faces,,, | ||
| 1881 | emacs, The GNU Emacs Manual}. | ||
| 1882 | |||
| 1883 | Many parts of Emacs require named faces, and do not accept anonymous | ||
| 1884 | faces. These include the functions documented in @ref{Attribute | ||
| 1885 | Functions}, and the variable @code{font-lock-keywords} | ||
| 1886 | (@pxref{Search-based Fontification}). Unless otherwise stated, we | ||
| 1887 | will use the term @dfn{face} to refer only to named faces. | ||
| 1888 | |||
| 1889 | For backward compatibility, you can also use a string to specify a | ||
| 1890 | face name; that is equivalent to a Lisp symbol with the same name. | ||
| 1876 | 1891 | ||
| 1877 | @defun facep object | 1892 | @defun facep object |
| 1878 | This function returns a non-@code{nil} value if @var{object} is a Lisp | 1893 | This function returns a non-@code{nil} value if @var{object} is a |
| 1879 | symbol or string that names a face. Otherwise, it returns @code{nil}. | 1894 | named face: a Lisp symbol or string which serves as a face name. |
| 1895 | Otherwise, it returns @code{nil}. | ||
| 1880 | @end defun | 1896 | @end defun |
| 1881 | 1897 | ||
| 1882 | By default, each face name corresponds to the same set of attributes | 1898 | By default, each face name corresponds to the same set of attributes |
| @@ -1884,8 +1900,8 @@ in all frames. But you can also assign a face name a special set of | |||
| 1884 | attributes in one frame (@pxref{Attribute Functions}). | 1900 | attributes in one frame (@pxref{Attribute Functions}). |
| 1885 | 1901 | ||
| 1886 | @menu | 1902 | @menu |
| 1887 | * Defining Faces:: How to define a face. | ||
| 1888 | * Face Attributes:: What is in a face? | 1903 | * Face Attributes:: What is in a face? |
| 1904 | * Defining Faces:: How to define a face. | ||
| 1889 | * Attribute Functions:: Functions to examine and set face attributes. | 1905 | * Attribute Functions:: Functions to examine and set face attributes. |
| 1890 | * Displaying Faces:: How Emacs combines the faces specified for a character. | 1906 | * Displaying Faces:: How Emacs combines the faces specified for a character. |
| 1891 | * Face Remapping:: Remapping faces to alternative definitions. | 1907 | * Face Remapping:: Remapping faces to alternative definitions. |
| @@ -1900,161 +1916,21 @@ attributes in one frame (@pxref{Attribute Functions}). | |||
| 1900 | * Low-Level Font:: Lisp representation for character display fonts. | 1916 | * Low-Level Font:: Lisp representation for character display fonts. |
| 1901 | @end menu | 1917 | @end menu |
| 1902 | 1918 | ||
| 1903 | @node Defining Faces | ||
| 1904 | @subsection Defining Faces | ||
| 1905 | |||
| 1906 | The @code{defface} macro defines a face and specifies its default | ||
| 1907 | appearance. The user can subsequently customize the face using the | ||
| 1908 | Customize interface (@pxref{Customization}). | ||
| 1909 | |||
| 1910 | @defmac defface face spec doc [keyword value]@dots{} | ||
| 1911 | This macro declares @var{face} as a customizable face whose default | ||
| 1912 | attributes are given by @var{spec}. You should not quote the symbol | ||
| 1913 | @var{face}, and it should not end in @samp{-face} (that would be | ||
| 1914 | redundant). The argument @var{doc} is a documentation string for the | ||
| 1915 | face. The additional @var{keyword} arguments have the same meanings | ||
| 1916 | as in @code{defgroup} and @code{defcustom} (@pxref{Common Keywords}). | ||
| 1917 | |||
| 1918 | When @code{defface} executes, it defines the face according to | ||
| 1919 | @var{spec}, then uses any customizations that were read from the | ||
| 1920 | init file (@pxref{Init File}) to override that specification. | ||
| 1921 | |||
| 1922 | When you evaluate a @code{defface} form with @kbd{C-M-x} in Emacs | ||
| 1923 | Lisp mode (@code{eval-defun}), a special feature of @code{eval-defun} | ||
| 1924 | overrides any customizations of the face. This way, the face reflects | ||
| 1925 | exactly what the @code{defface} says. | ||
| 1926 | |||
| 1927 | @cindex face specification | ||
| 1928 | The @var{spec} argument is a @dfn{face specification}, which states | ||
| 1929 | how the face should appear on different kinds of terminals. It should | ||
| 1930 | be an alist whose elements each have the form | ||
| 1931 | |||
| 1932 | @example | ||
| 1933 | (@var{display} . @var{plist}) | ||
| 1934 | @end example | ||
| 1935 | |||
| 1936 | @noindent | ||
| 1937 | @var{display} specifies a class of terminals (see below), while | ||
| 1938 | @var{plist} is a property list of face attributes and their values, | ||
| 1939 | specifying how the face appears on such terminals | ||
| 1940 | @iftex | ||
| 1941 | (see the next section for details about face attributes). | ||
| 1942 | @end iftex | ||
| 1943 | @ifnottex | ||
| 1944 | (@pxref{Face Attributes}, for details about face attributes). | ||
| 1945 | @end ifnottex | ||
| 1946 | |||
| 1947 | The @var{display} part of an element of @var{spec} determines which | ||
| 1948 | frames the element matches. If more than one element of @var{spec} | ||
| 1949 | matches a given frame, the first element that matches is the one used | ||
| 1950 | for that frame. There are three possibilities for @var{display}: | ||
| 1951 | |||
| 1952 | @table @asis | ||
| 1953 | @item @code{default} | ||
| 1954 | This element of @var{spec} doesn't match any frames; instead, it | ||
| 1955 | specifies defaults that apply to all frames. This element, if used, | ||
| 1956 | must be the first element of @var{spec}. Each of the following | ||
| 1957 | elements can override any or all of these defaults. | ||
| 1958 | |||
| 1959 | @item @code{t} | ||
| 1960 | This element of @var{spec} matches all frames. Therefore, any | ||
| 1961 | subsequent elements of @var{spec} are never used. Normally | ||
| 1962 | @code{t} is used in the last (or only) element of @var{spec}. | ||
| 1963 | |||
| 1964 | @item a list | ||
| 1965 | If @var{display} is a list, each element should have the form | ||
| 1966 | @code{(@var{characteristic} @var{value}@dots{})}. Here | ||
| 1967 | @var{characteristic} specifies a way of classifying frames, and the | ||
| 1968 | @var{value}s are possible classifications which @var{display} should | ||
| 1969 | apply to. Here are the possible values of @var{characteristic}: | ||
| 1970 | |||
| 1971 | @table @code | ||
| 1972 | @item type | ||
| 1973 | The kind of window system the frame uses---either @code{graphic} (any | ||
| 1974 | graphics-capable display), @code{x}, @code{pc} (for the MS-DOS console), | ||
| 1975 | @code{w32} (for MS Windows 9X/NT/2K/XP), or @code{tty} | ||
| 1976 | (a non-graphics-capable display). | ||
| 1977 | @xref{Window Systems, window-system}. | ||
| 1978 | |||
| 1979 | @item class | ||
| 1980 | What kinds of colors the frame supports---either @code{color}, | ||
| 1981 | @code{grayscale}, or @code{mono}. | ||
| 1982 | |||
| 1983 | @item background | ||
| 1984 | The kind of background---either @code{light} or @code{dark}. | ||
| 1985 | |||
| 1986 | @item min-colors | ||
| 1987 | An integer that represents the minimum number of colors the frame | ||
| 1988 | should support. This matches a frame if its | ||
| 1989 | @code{display-color-cells} value is at least the specified integer. | ||
| 1990 | |||
| 1991 | @item supports | ||
| 1992 | Whether or not the frame can display the face attributes given in | ||
| 1993 | @var{value}@dots{} (@pxref{Face Attributes}). @xref{Display Face | ||
| 1994 | Attribute Testing}, for more information on exactly how this testing | ||
| 1995 | is done. | ||
| 1996 | @end table | ||
| 1997 | |||
| 1998 | If an element of @var{display} specifies more than one @var{value} for a | ||
| 1999 | given @var{characteristic}, any of those values is acceptable. If | ||
| 2000 | @var{display} has more than one element, each element should specify a | ||
| 2001 | different @var{characteristic}; then @emph{each} characteristic of the | ||
| 2002 | frame must match one of the @var{value}s specified for it in | ||
| 2003 | @var{display}. | ||
| 2004 | @end table | ||
| 2005 | @end defmac | ||
| 2006 | |||
| 2007 | Here's how the standard face @code{highlight} is defined: | ||
| 2008 | |||
| 2009 | @example | ||
| 2010 | (defface highlight | ||
| 2011 | '((((class color) (min-colors 88) (background light)) | ||
| 2012 | :background "darkseagreen2") | ||
| 2013 | (((class color) (min-colors 88) (background dark)) | ||
| 2014 | :background "darkolivegreen") | ||
| 2015 | (((class color) (min-colors 16) (background light)) | ||
| 2016 | :background "darkseagreen2") | ||
| 2017 | (((class color) (min-colors 16) (background dark)) | ||
| 2018 | :background "darkolivegreen") | ||
| 2019 | (((class color) (min-colors 8)) | ||
| 2020 | :background "green" :foreground "black") | ||
| 2021 | (t :inverse-video t)) | ||
| 2022 | "Basic face for highlighting." | ||
| 2023 | :group 'basic-faces) | ||
| 2024 | @end example | ||
| 2025 | |||
| 2026 | Internally, Emacs stores the face's default specification in its | ||
| 2027 | @code{face-defface-spec} symbol property (@pxref{Property Lists}). | ||
| 2028 | The @code{saved-face} property stores the face specification saved by | ||
| 2029 | the user, using the customization buffer; the @code{customized-face} | ||
| 2030 | property stores the face specification customized for the current | ||
| 2031 | session, but not saved; and the @code{theme-face} property stores an | ||
| 2032 | alist associating the active customization settings and Custom themes | ||
| 2033 | with their specifications for that face. The face's documentation | ||
| 2034 | string is stored in the @code{face-documentation} property. But | ||
| 2035 | normally you should not try to set any of these properties directly. | ||
| 2036 | @xref{Applying Customizations}, for the @code{custom-set-faces} | ||
| 2037 | function, which is used to apply customized face settings. | ||
| 2038 | |||
| 2039 | People are sometimes tempted to create variables whose values | ||
| 2040 | specify a face to use. In the vast majority of cases, this is not | ||
| 2041 | necessary; it is preferable to simply use faces directly. | ||
| 2042 | |||
| 2043 | @node Face Attributes | 1919 | @node Face Attributes |
| 2044 | @subsection Face Attributes | 1920 | @subsection Face Attributes |
| 2045 | @cindex face attributes | 1921 | @cindex face attributes |
| 2046 | 1922 | ||
| 2047 | The effect of using a face is determined by a fixed set of @dfn{face | 1923 | @dfn{Face attributes} determine the visual appearance of a face. |
| 2048 | attributes}. This table lists all the face attributes, their possible | 1924 | The following table lists all the face attributes, their possible |
| 2049 | values, and their effects. You can specify more than one face for a | 1925 | values, and their effects. |
| 2050 | given piece of text; Emacs merges the attributes of all the faces to | ||
| 2051 | determine how to display the text. @xref{Displaying Faces}. | ||
| 2052 | 1926 | ||
| 2053 | In addition to the values given below, each face attribute can also | 1927 | Apart from the values given below, each face attribute can have the |
| 2054 | have the value @code{unspecified}. This special value means the face | 1928 | value @code{unspecified}. This special value means that the face |
| 2055 | doesn't specify that attribute. In face merging, when the first face | 1929 | doesn't specify that attribute directly. An @code{unspecified} |
| 2056 | fails to specify a particular attribute, the next face gets a chance. | 1930 | attribute tells Emacs to refer instead to a parent face (see the |
| 2057 | However, the @code{default} face must specify all attributes. | 1931 | description @code{:inherit} attribute below); or, failing that, to an |
| 1932 | underlying face (@pxref{Displaying Faces}). The @code{default} face | ||
| 1933 | must specify all attributes. | ||
| 2058 | 1934 | ||
| 2059 | Some of these attributes are meaningful only on certain kinds of | 1935 | Some of these attributes are meaningful only on certain kinds of |
| 2060 | displays. If your display cannot handle a certain attribute, the | 1936 | displays. If your display cannot handle a certain attribute, the |
| @@ -2063,7 +1939,7 @@ attribute is ignored. | |||
| 2063 | @table @code | 1939 | @table @code |
| 2064 | @item :family | 1940 | @item :family |
| 2065 | Font family or fontset (a string). @xref{Fonts,,, emacs, The GNU | 1941 | Font family or fontset (a string). @xref{Fonts,,, emacs, The GNU |
| 2066 | Emacs Manual}, for more information about font families; the function | 1942 | Emacs Manual}, for more information about font families. The function |
| 2067 | @code{font-family-list} (see below) returns a list of available family | 1943 | @code{font-family-list} (see below) returns a list of available family |
| 2068 | names. @xref{Fontsets}, for information about fontsets. | 1944 | names. @xref{Fontsets}, for information about fontsets. |
| 2069 | 1945 | ||
| @@ -2083,9 +1959,8 @@ The height of the font. In the simplest case, this is an integer in | |||
| 2083 | units of 1/10 point. | 1959 | units of 1/10 point. |
| 2084 | 1960 | ||
| 2085 | The value can also be a floating point number or a function, which | 1961 | The value can also be a floating point number or a function, which |
| 2086 | specifies the height relative to an @dfn{underlying face} (i.e., a | 1962 | specifies the height relative to an @dfn{underlying face} |
| 2087 | face that has a lower priority in the list described in | 1963 | (@pxref{Displaying Faces}). If the value is a floating point number, |
| 2088 | @ref{Displaying Faces}). If the value is a floating point number, | ||
| 2089 | that specifies the amount by which to scale the height of the | 1964 | that specifies the amount by which to scale the height of the |
| 2090 | underlying face. If the value is a function, that function is called | 1965 | underlying face. If the value is a function, that function is called |
| 2091 | with one argument, the height of the underlying face, and returns the | 1966 | with one argument, the height of the underlying face, and returns the |
| @@ -2261,11 +2136,147 @@ suitable for use with @code{:stipple} (see above). It returns | |||
| 2261 | @code{nil} otherwise. | 2136 | @code{nil} otherwise. |
| 2262 | @end defun | 2137 | @end defun |
| 2263 | 2138 | ||
| 2139 | @node Defining Faces | ||
| 2140 | @subsection Defining Faces | ||
| 2141 | |||
| 2142 | The usual way to define a face is through the @code{defface} macro. | ||
| 2143 | This macro defines a face name, and associates that name with a set of | ||
| 2144 | face attributes. It also sets up the face so that the user can | ||
| 2145 | customize it via the Customize interface (@pxref{Customization}). | ||
| 2146 | |||
| 2147 | @defmac defface face spec doc [keyword value]@dots{} | ||
| 2148 | This macro declares @var{face} as a customizable face whose default | ||
| 2149 | attributes are given by @var{spec}. You should not quote the symbol | ||
| 2150 | @var{face}, and it should not end in @samp{-face} (that would be | ||
| 2151 | redundant). The argument @var{doc} is a documentation string for the | ||
| 2152 | face. The additional @var{keyword} arguments have the same meanings | ||
| 2153 | as in @code{defgroup} and @code{defcustom} (@pxref{Common Keywords}). | ||
| 2154 | |||
| 2155 | When @code{defface} executes, it defines the face according to | ||
| 2156 | @var{spec}, then uses any customizations that were read from the | ||
| 2157 | init file (@pxref{Init File}) to override that specification. | ||
| 2158 | |||
| 2159 | When you evaluate a @code{defface} form with @kbd{C-M-x} in Emacs | ||
| 2160 | Lisp mode (@code{eval-defun}), a special feature of @code{eval-defun} | ||
| 2161 | overrides any customizations of the face. This way, the face reflects | ||
| 2162 | exactly what the @code{defface} says. | ||
| 2163 | |||
| 2164 | @cindex face specification | ||
| 2165 | The @var{spec} argument is a @dfn{face specification}, which states | ||
| 2166 | how the face should appear on different kinds of terminals. It should | ||
| 2167 | be an alist whose elements each have the form | ||
| 2168 | |||
| 2169 | @example | ||
| 2170 | (@var{display} . @var{plist}) | ||
| 2171 | @end example | ||
| 2172 | |||
| 2173 | @noindent | ||
| 2174 | @var{display} specifies a class of terminals (see below). @var{plist} | ||
| 2175 | is a property list of face attributes and their values, specifying how | ||
| 2176 | the face appears on such terminals. For backward compatibility, you | ||
| 2177 | can also write an element as @code{(@var{display} @var{plist})}. | ||
| 2178 | |||
| 2179 | The @var{display} part of an element of @var{spec} determines which | ||
| 2180 | terminals the element matches. If more than one element of @var{spec} | ||
| 2181 | matches a given terminal, the first element that matches is the one | ||
| 2182 | used for that terminal. There are three possibilities for | ||
| 2183 | @var{display}: | ||
| 2184 | |||
| 2185 | @table @asis | ||
| 2186 | @item @code{default} | ||
| 2187 | This element of @var{spec} doesn't match any terminal; instead, it | ||
| 2188 | specifies defaults that apply to all terminals. This element, if | ||
| 2189 | used, must be the first element of @var{spec}. Each of the following | ||
| 2190 | elements can override any or all of these defaults. | ||
| 2191 | |||
| 2192 | @item @code{t} | ||
| 2193 | This element of @var{spec} matches all terminals. Therefore, any | ||
| 2194 | subsequent elements of @var{spec} are never used. Normally @code{t} | ||
| 2195 | is used in the last (or only) element of @var{spec}. | ||
| 2196 | |||
| 2197 | @item a list | ||
| 2198 | If @var{display} is a list, each element should have the form | ||
| 2199 | @code{(@var{characteristic} @var{value}@dots{})}. Here | ||
| 2200 | @var{characteristic} specifies a way of classifying terminals, and the | ||
| 2201 | @var{value}s are possible classifications which @var{display} should | ||
| 2202 | apply to. Here are the possible values of @var{characteristic}: | ||
| 2203 | |||
| 2204 | @table @code | ||
| 2205 | @item type | ||
| 2206 | The kind of window system the terminal uses---either @code{graphic} | ||
| 2207 | (any graphics-capable display), @code{x}, @code{pc} (for the MS-DOS | ||
| 2208 | console), @code{w32} (for MS Windows 9X/NT/2K/XP), or @code{tty} (a | ||
| 2209 | non-graphics-capable display). @xref{Window Systems, window-system}. | ||
| 2210 | |||
| 2211 | @item class | ||
| 2212 | What kinds of colors the terminal supports---either @code{color}, | ||
| 2213 | @code{grayscale}, or @code{mono}. | ||
| 2214 | |||
| 2215 | @item background | ||
| 2216 | The kind of background---either @code{light} or @code{dark}. | ||
| 2217 | |||
| 2218 | @item min-colors | ||
| 2219 | An integer that represents the minimum number of colors the terminal | ||
| 2220 | should support. This matches a terminal if its | ||
| 2221 | @code{display-color-cells} value is at least the specified integer. | ||
| 2222 | |||
| 2223 | @item supports | ||
| 2224 | Whether or not the terminal can display the face attributes given in | ||
| 2225 | @var{value}@dots{} (@pxref{Face Attributes}). @xref{Display Face | ||
| 2226 | Attribute Testing}, for more information on exactly how this testing | ||
| 2227 | is done. | ||
| 2228 | @end table | ||
| 2229 | |||
| 2230 | If an element of @var{display} specifies more than one @var{value} for | ||
| 2231 | a given @var{characteristic}, any of those values is acceptable. If | ||
| 2232 | @var{display} has more than one element, each element should specify a | ||
| 2233 | different @var{characteristic}; then @emph{each} characteristic of the | ||
| 2234 | terminal must match one of the @var{value}s specified for it in | ||
| 2235 | @var{display}. | ||
| 2236 | @end table | ||
| 2237 | @end defmac | ||
| 2238 | |||
| 2239 | Here's how the standard face @code{highlight} is defined: | ||
| 2240 | |||
| 2241 | @example | ||
| 2242 | (defface highlight | ||
| 2243 | '((((class color) (min-colors 88) (background light)) | ||
| 2244 | :background "darkseagreen2") | ||
| 2245 | (((class color) (min-colors 88) (background dark)) | ||
| 2246 | :background "darkolivegreen") | ||
| 2247 | (((class color) (min-colors 16) (background light)) | ||
| 2248 | :background "darkseagreen2") | ||
| 2249 | (((class color) (min-colors 16) (background dark)) | ||
| 2250 | :background "darkolivegreen") | ||
| 2251 | (((class color) (min-colors 8)) | ||
| 2252 | :background "green" :foreground "black") | ||
| 2253 | (t :inverse-video t)) | ||
| 2254 | "Basic face for highlighting." | ||
| 2255 | :group 'basic-faces) | ||
| 2256 | @end example | ||
| 2257 | |||
| 2258 | Internally, Emacs stores the face's default specification in its | ||
| 2259 | @code{face-defface-spec} symbol property (@pxref{Property Lists}). | ||
| 2260 | The @code{saved-face} property stores the face specification saved by | ||
| 2261 | the user, using the customization buffer; the @code{customized-face} | ||
| 2262 | property stores the face specification customized for the current | ||
| 2263 | session, but not saved; and the @code{theme-face} property stores an | ||
| 2264 | alist associating the active customization settings and Custom themes | ||
| 2265 | with their specifications for that face. The face's documentation | ||
| 2266 | string is stored in the @code{face-documentation} property. But | ||
| 2267 | normally you should not try to set any of these properties directly. | ||
| 2268 | @xref{Applying Customizations}, for the @code{custom-set-faces} | ||
| 2269 | function, which is used to apply customized face settings. | ||
| 2270 | |||
| 2271 | People are sometimes tempted to create variables whose values | ||
| 2272 | specify a face to use. In the vast majority of cases, this is not | ||
| 2273 | necessary; it is preferable to simply use faces directly. | ||
| 2274 | |||
| 2264 | @node Attribute Functions | 2275 | @node Attribute Functions |
| 2265 | @subsection Face Attribute Functions | 2276 | @subsection Face Attribute Functions |
| 2266 | 2277 | ||
| 2267 | This section describes the functions for accessing and modifying the | 2278 | This section describes the functions for accessing and modifying the |
| 2268 | attributes of an existing face. | 2279 | attributes of an existing named face. |
| 2269 | 2280 | ||
| 2270 | @defun set-face-attribute face frame &rest arguments | 2281 | @defun set-face-attribute face frame &rest arguments |
| 2271 | This function sets one or more attributes of @var{face} for | 2282 | This function sets one or more attributes of @var{face} for |
| @@ -2467,8 +2478,12 @@ This function returns the @code{:inverse-video} attribute of face @var{face}. | |||
| 2467 | @node Displaying Faces | 2478 | @node Displaying Faces |
| 2468 | @subsection Displaying Faces | 2479 | @subsection Displaying Faces |
| 2469 | 2480 | ||
| 2470 | Here is how Emacs determines the face to use for displaying any | 2481 | When Emacs displays a given piece of text, the visual appearance of |
| 2471 | given piece of text: | 2482 | the text may be determined by faces drawn from different sources. If |
| 2483 | these various sources together specify more than one face for a | ||
| 2484 | particular character, Emacs merges the attributes of the various | ||
| 2485 | faces. Here is the order in which Emacs merges the faces, from | ||
| 2486 | highest to lowest priority: | ||
| 2472 | 2487 | ||
| 2473 | @itemize @bullet | 2488 | @itemize @bullet |
| 2474 | @item | 2489 | @item |
| @@ -2482,11 +2497,11 @@ Manual}. | |||
| 2482 | 2497 | ||
| 2483 | @item | 2498 | @item |
| 2484 | If the text lies within an overlay with a non-@code{nil} @code{face} | 2499 | If the text lies within an overlay with a non-@code{nil} @code{face} |
| 2485 | property, Emacs applies the face or face attributes specified by that | 2500 | property, Emacs applies the face(s) specified by that property. If |
| 2486 | property. If the overlay has a @code{mouse-face} property and the | 2501 | the overlay has a @code{mouse-face} property and the mouse is ``near |
| 2487 | mouse is ``near enough'' to the overlay, Emacs applies the face or | 2502 | enough'' to the overlay, Emacs applies the face or face attributes |
| 2488 | face attributes specified by the @code{mouse-face} property instead. | 2503 | specified by the @code{mouse-face} property instead. @xref{Overlay |
| 2489 | @xref{Overlay Properties}. | 2504 | Properties}. |
| 2490 | 2505 | ||
| 2491 | When multiple overlays cover one character, an overlay with higher | 2506 | When multiple overlays cover one character, an overlay with higher |
| 2492 | priority overrides those with lower priority. @xref{Overlays}. | 2507 | priority overrides those with lower priority. @xref{Overlays}. |
| @@ -2508,11 +2523,12 @@ If any given attribute has not been specified during the preceding | |||
| 2508 | steps, Emacs applies the attribute of the @code{default} face. | 2523 | steps, Emacs applies the attribute of the @code{default} face. |
| 2509 | @end itemize | 2524 | @end itemize |
| 2510 | 2525 | ||
| 2511 | If these various sources together specify more than one face for a | 2526 | At each stage, if a face has a valid @code{:inherit} attribute, |
| 2512 | particular character, Emacs merges the attributes of the various faces | 2527 | Emacs treats any attribute with an @code{unspecified} value as having |
| 2513 | specified. For each attribute, Emacs tries using the above order | 2528 | the corresponding value drawn from the parent face(s). @pxref{Face |
| 2514 | (i.e.@: first the face of any special glyph; then the face for region | 2529 | Attributes}. Note that the parent face(s) may also leave the |
| 2515 | highlighting, if appropriate; and so on). | 2530 | attribute unspecified; in that case, the attribute remains unspecified |
| 2531 | at the next level of face merging. | ||
| 2516 | 2532 | ||
| 2517 | @node Face Remapping | 2533 | @node Face Remapping |
| 2518 | @subsection Face Remapping | 2534 | @subsection Face Remapping |
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index caa5185dec3..db770616820 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi | |||
| @@ -1366,8 +1366,8 @@ Overlays | |||
| 1366 | 1366 | ||
| 1367 | Faces | 1367 | Faces |
| 1368 | 1368 | ||
| 1369 | * Defining Faces:: How to define a face. | ||
| 1370 | * Face Attributes:: What is in a face? | 1369 | * Face Attributes:: What is in a face? |
| 1370 | * Defining Faces:: How to define a face. | ||
| 1371 | * Attribute Functions:: Functions to examine and set face attributes. | 1371 | * Attribute Functions:: Functions to examine and set face attributes. |
| 1372 | * Displaying Faces:: How Emacs combines the faces specified for | 1372 | * Displaying Faces:: How Emacs combines the faces specified for |
| 1373 | a character. | 1373 | a character. |
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index fe7f24e42cd..a5910ea921b 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi | |||
| @@ -2999,12 +2999,11 @@ can be the following: | |||
| 2999 | A face name (a symbol or string). | 2999 | A face name (a symbol or string). |
| 3000 | 3000 | ||
| 3001 | @item | 3001 | @item |
| 3002 | A property list of face attributes. This has the | 3002 | A property list of face attributes. This has the form (@var{keyword} |
| 3003 | form (@var{keyword} @var{value} @dots{}), where each @var{keyword} is a | 3003 | @var{value} @dots{}), where each @var{keyword} is a face attribute |
| 3004 | face attribute name and @var{value} is a meaningful value for that | 3004 | name and @var{value} is a meaningful value for that attribute. With |
| 3005 | attribute. With this feature, you do not need to create a face each | 3005 | this feature, you do not need to create a face each time you want to |
| 3006 | time you want to specify a particular attribute for certain text. | 3006 | specify a particular attribute for certain text. |
| 3007 | @xref{Face Attributes}. | ||
| 3008 | 3007 | ||
| 3009 | @item | 3008 | @item |
| 3010 | A list of faces. This specifies a face which is an aggregate of the | 3009 | A list of faces. This specifies a face which is an aggregate of the |
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index c5b66757ace..1c0abcb8e66 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi | |||
| @@ -403,7 +403,8 @@ unconditionally initializes the variable, whereas @code{defvar} | |||
| 403 | initializes it only if it is originally void. | 403 | initializes it only if it is originally void. |
| 404 | 404 | ||
| 405 | To define a customizable variable, you should use @code{defcustom} | 405 | To define a customizable variable, you should use @code{defcustom} |
| 406 | (which calls @code{defvar} as a subroutine). @xref{Customization}. | 406 | (which calls @code{defvar} as a subroutine). @xref{Variable |
| 407 | Definitions}. | ||
| 407 | 408 | ||
| 408 | @defspec defvar symbol [value [doc-string]] | 409 | @defspec defvar symbol [value [doc-string]] |
| 409 | This special form defines @var{symbol} as a variable. Note that | 410 | This special form defines @var{symbol} as a variable. Note that |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c1c9e5ee1c8..7ed5f6af14b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2012-09-18 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * custom.el (defface): Doc fix. | ||
| 4 | |||
| 5 | * cus-edit.el (custom-unlispify-remove-prefixes): Add warning. | ||
| 6 | |||
| 1 | 2012-09-18 Martin Blais <blais@furius.ca> (tiny change) | 7 | 2012-09-18 Martin Blais <blais@furius.ca> (tiny change) |
| 2 | 8 | ||
| 3 | * progmodes/compile.el (compilation-start): Use compilation-always-kill | 9 | * progmodes/compile.el (compilation-start): Use compilation-always-kill |
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 86a19131569..2e6f2b14625 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el | |||
| @@ -526,7 +526,10 @@ WIDGET is the widget to apply the filter entries of MENU on." | |||
| 526 | :type 'boolean) | 526 | :type 'boolean) |
| 527 | 527 | ||
| 528 | (defcustom custom-unlispify-remove-prefixes nil | 528 | (defcustom custom-unlispify-remove-prefixes nil |
| 529 | "Non-nil means remove group prefixes from option names in buffer." | 529 | "Non-nil means remove group prefixes from option names in buffer. |
| 530 | Discarding prefixes often leads to confusing names for options | ||
| 531 | and faces in Customize buffers, so do not set this to a non-nil | ||
| 532 | value unless you are sure you know what it does." | ||
| 530 | :group 'custom-menu | 533 | :group 'custom-menu |
| 531 | :group 'custom-buffer | 534 | :group 'custom-buffer |
| 532 | :type 'boolean) | 535 | :type 'boolean) |
diff --git a/lisp/custom.el b/lisp/custom.el index 01b0e6d1650..dfc8e631152 100644 --- a/lisp/custom.el +++ b/lisp/custom.el | |||
| @@ -350,68 +350,62 @@ FACE does not need to be quoted. | |||
| 350 | 350 | ||
| 351 | Third argument DOC is the face documentation. | 351 | Third argument DOC is the face documentation. |
| 352 | 352 | ||
| 353 | If FACE has been set with `custom-set-faces', set the face attributes | 353 | If FACE has been set with `custom-set-faces', set the face |
| 354 | as specified by that function, otherwise set the face attributes | 354 | attributes as specified by that function, otherwise set the face |
| 355 | according to SPEC. | 355 | attributes according to SPEC. |
| 356 | |||
| 357 | The remaining arguments should have the form | ||
| 358 | |||
| 359 | [KEYWORD VALUE]... | ||
| 360 | 356 | ||
| 357 | The remaining arguments should have the form [KEYWORD VALUE]... | ||
| 361 | For a list of valid keywords, see the common keywords listed in | 358 | For a list of valid keywords, see the common keywords listed in |
| 362 | `defcustom'. | 359 | `defcustom'. |
| 363 | 360 | ||
| 364 | SPEC should be an alist of the form ((DISPLAY ATTS)...). | 361 | SPEC should be an alist of the form |
| 365 | 362 | ||
| 366 | In the first element, DISPLAY can be `default'. The ATTS in that | 363 | ((DISPLAY . ATTS)...) |
| 367 | element then act as defaults for all the following elements. | 364 | |
| 368 | 365 | where DISPLAY is a form specifying conditions to match certain | |
| 369 | Aside from that, DISPLAY specifies conditions to match some or | 366 | terminals and ATTS is a property list (ATTR VALUE ATTR VALUE...) |
| 370 | all frames. For each frame, the first element of SPEC where the | 367 | specifying face attributes and values for frames on those |
| 371 | DISPLAY conditions are satisfied is the one that applies to that | 368 | terminals. On each terminal, the first element with a matching |
| 372 | frame. The ATTRs in this element take effect, and the following | 369 | DISPLAY specification takes effect, and the remaining elements in |
| 373 | elements are ignored, on that frame. | 370 | SPEC are disregarded. |
| 374 | 371 | ||
| 375 | In the last element, DISPLAY can be t. That element applies to a | 372 | As a special exception, in the first element of SPEC, DISPLAY can |
| 376 | frame if none of the previous elements (except the `default' if | 373 | be the special value `default'. Then the ATTS in that element |
| 377 | any) did. | 374 | act as defaults for all the following elements. |
| 378 | 375 | ||
| 379 | ATTS is a list of face attributes followed by their values: | 376 | For backward compatibility, elements of SPEC can be written |
| 380 | (ATTR VALUE ATTR VALUE...) | 377 | as (DISPLAY ATTS) instead of (DISPLAY . ATTS). |
| 381 | 378 | ||
| 382 | The possible attributes are `:family', `:width', `:height', `:weight', | 379 | Each DISPLAY can have the following values: |
| 383 | `:slant', `:underline', `:overline', `:strike-through', `:box', | 380 | - `default' (only in the first element). |
| 384 | `:foreground', `:background', `:stipple', `:inverse-video', and `:inherit'. | 381 | - The symbol t, which matches all terminals. |
| 385 | 382 | - An alist of conditions. Each alist element must have the form | |
| 386 | DISPLAY can be `default' (only in the first element), the symbol | 383 | (REQ ITEM...). A matching terminal must satisfy each |
| 387 | t (only in the last element) to match all frames, or an alist of | 384 | specified condition by matching one of its ITEMs. Each REQ |
| 388 | conditions of the form \(REQ ITEM...). For such an alist to | 385 | must be one of the following: |
| 389 | match a frame, each of the conditions must be satisfied, meaning | 386 | - `type' (the terminal type). |
| 390 | that the REQ property of the frame must match one of the | 387 | Each ITEM must be one of the values returned by |
| 391 | corresponding ITEMs. These are the defined REQ values: | 388 | `window-system'. Under X, additional allowed values are |
| 392 | 389 | `motif', `lucid', `gtk' and `x-toolkit'. | |
| 393 | `type' (the value of `window-system') | 390 | - `class' (the terminal's color support). |
| 394 | Under X, in addition to the values `window-system' can take, | 391 | Each ITEM should be one of `color', `grayscale', or `mono'. |
| 395 | `motif', `lucid', `gtk' and `x-toolkit' are allowed, and match when | 392 | - `background' (what color is used for the background text) |
| 396 | the Motif toolkit, Lucid toolkit, GTK toolkit or any X toolkit is in use. | 393 | Each ITEM should be one of `light' or `dark'. |
| 397 | 394 | - `min-colors' (the minimum number of supported colors) | |
| 398 | `class' (the frame's color support) | 395 | Each ITEM should be an integer, which is compared with the |
| 399 | Should be one of `color', `grayscale', or `mono'. | 396 | result of `display-color-cells'. |
| 400 | 397 | - `supports' (match terminals supporting certain attributes). | |
| 401 | `background' (what color is used for the background text) | 398 | Each ITEM should be a list of face attributes. See |
| 402 | Should be one of `light' or `dark'. | 399 | `display-supports-face-attributes-p' for more information on |
| 403 | 400 | exactly how testing is done. | |
| 404 | `min-colors' (the minimum number of colors the frame should support) | 401 | |
| 405 | Should be an integer, it is compared with the result of | 402 | In the ATTS property list, possible attributes are `:family', |
| 406 | `display-color-cells'. | 403 | `:width', `:height', `:weight', `:slant', `:underline', |
| 407 | 404 | `:overline', `:strike-through', `:box', `:foreground', | |
| 408 | `supports' (only match frames that support the specified face attributes) | 405 | `:background', `:stipple', `:inverse-video', and `:inherit'. |
| 409 | Should be a list of face attributes. See the documentation for | 406 | |
| 410 | the function `display-supports-face-attributes-p' for more | 407 | See Info node `(elisp) Faces' in the Emacs Lisp manual for more |
| 411 | information on exactly how testing is done. | 408 | information." |
| 412 | |||
| 413 | See Info node `(elisp) Customization' in the Emacs Lisp manual | ||
| 414 | for more information." | ||
| 415 | (declare (doc-string 3)) | 409 | (declare (doc-string 3)) |
| 416 | ;; It is better not to use backquote in this file, | 410 | ;; It is better not to use backquote in this file, |
| 417 | ;; because that makes a bootstrapping problem | 411 | ;; because that makes a bootstrapping problem |