Mercurial > emacs
changeset 70969:044c7ca7a4ff
(Coding Conventions): Advise against using eval-after-load in packages.
Add an index entry.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Fri, 26 May 2006 19:32:02 +0000 |
parents | a26fd6a82aff |
children | 58d0b772b752 |
files | lispref/tips.texi |
diffstat | 1 files changed, 14 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lispref/tips.texi Fri May 26 19:12:23 2006 +0000 +++ b/lispref/tips.texi Fri May 26 19:32:02 2006 +0000 @@ -35,6 +35,7 @@ @node Coding Conventions @section Emacs Lisp Coding Conventions +@cindex coding conventions in Emacs Lisp Here are conventions that you should follow when writing Emacs Lisp code intended for widespread use: @@ -52,9 +53,9 @@ @item Since all global variables share the same name space, and all functions share another name space, you should choose a short word to -distinguish your program from other Lisp programs.@footnote{The +distinguish your program from other Lisp programs@footnote{The benefits of a Common Lisp-style package system are considered not to -outweigh the costs.} Then take care to begin the names of all global +outweigh the costs.}. Then take care to begin the names of all global variables, constants, and functions in your program with the chosen prefix. This helps avoid name conflicts. @@ -175,7 +176,17 @@ @item Redefining (or advising) an Emacs primitive is discouraged. It may do the right thing for a particular program, but there is no telling what -other programs might break as a result. +other programs might break as a result. In any case, it is a +maintenance burden because the two packages become highly dependent on +each other. + +@item +Likewise, avoid using @code{eval-after-load} (@pxref{Hooks for +Loading}) in libraries and packages. This feature is meant for +personal customizations; using it in a Lisp package increases the +coupling between it and the package mentioned in +@code{eval-after-load}, and thus makes it harder to maintain the two +packages independently. @item If a file does replace any of the functions or library programs of