]> code.delx.au - gnu-emacs/blobdiff - lispref/tips.texi
(inferior-octave-prompt): Recognize version number in prompt.
[gnu-emacs] / lispref / tips.texi
index fb1fa6dfca967e4aee01e1b5a58b9b336ea27a9b..1b40685ba5d6d0d36a150d7c44b9ce41f516987c 100644 (file)
@@ -210,16 +210,15 @@ off, and make it autoload (@pxref{Autoload}).  Design the package so
 that simply loading it has no visible effect---that should not enable
 the feature.@footnote{Consider that the package may be loaded
 arbitrarily by Custom for instance.}  Users will request the feature by
-invoking the command, which will often be constructed as a minor mode.
+invoking the command.  It is a good idea to define this command
+as a minor mode.
 
 @cindex unloading packages
-If your package contains functions which do modify ordinary Emacs
-behavior, for instance by adding functions to hooks, define a function
-@code{@var{feature}-unload-hook} where @var{feature} is the name of
-the feature the package provides.  This function should undo any such
-changes, e.g.@: by turning off a minor mode, when
-@findex unload-feature
-@code{unload-feature} is used.
+If loading the file adds functions to hooks, define a function
+@code{@var{feature}-unload-hook}, where @var{feature} is the name of
+the feature the package provides, and make it undo any such changes.
+Using @code{unload-feature} to unload the file will run this function.
+@xref{Unloading}.
 
 @item
 It is a bad idea to define aliases for the Emacs primitives.  Use the
@@ -250,6 +249,13 @@ standard Emacs, prominent comments at the beginning of the file should
 say which functions are replaced, and how the behavior of the
 replacements differs from that of the originals.
 
+@item
+Avoid using macros that define functions and variables with names that
+are constructed.  It is best for maintenance wen the name of the
+function or variable being defined is given explicitly in the source
+code, as the second element of the list---as it is when you use
+@code{defun}, @code{defalias}, @code{defvar} and @code{defopt}.
+
 @item
 Please keep the names of your Emacs Lisp source files to 13 characters
 or less.  This way, if the files are compiled, the compiled files' names
@@ -257,9 +263,6 @@ will be 14 characters or less, which is short enough to fit on all kinds
 of Unix systems.
 
 @item
-@findex next-line
-@findex previous-line
-@findex forward-line
 Don't use @code{next-line} or @code{previous-line} in programs; nearly
 always, @code{forward-line} is more convenient as well as more
 predictable and robust.  @xref{Text Lines}.
@@ -692,6 +695,16 @@ that satisfy the criterion.
 does not make a hyperlink to the documentation, irrelevant here, of the
 function @code{list}.
 
+Normally, no hyperlink is made for a variable without variable
+documentation.  You can force a hyperlink for such variables by
+preceding them with one of the words @samp{variable} or
+@samp{option}.
+
+Hyperlinks for faces are only made if the face name is preceded or
+followed by the word @samp{face}.  In that case, only the face
+documentation will be shown, even if the symbol is also defined as a
+variable or as a function.
+
 To make a hyperlink to Info documentation, write the name of the Info
 node in single quotes, preceded by @samp{info node} or @samp{Info
 node}.  The Info file name defaults to @samp{emacs}.  For example,
@@ -946,8 +959,8 @@ text is used by the Finder package, so it should make sense in that
 context.
 
 @item ;;; Documentation:
-This has been used in some files in place of @samp{;;; Commentary:},
-but @samp{;;; Commentary:} is preferred.
+This was used in some files in place of @samp{;;; Commentary:},
+but it is deprecated.
 
 @item ;;; Change Log:
 This begins change log information stored in the library file (if you