diff options
| author | Jim Porter | 2023-01-29 19:59:56 -0800 |
|---|---|---|
| committer | Jim Porter | 2023-07-12 16:37:54 -0700 |
| commit | dce574dfde7668d5c40b0e153d9a21773d28208a (patch) | |
| tree | 586302e9bf47e750c71dbec1a76ee1d5966c7499 | |
| parent | a3e03964a0d41a6a309f14cbb92aba1c28f1620e (diff) | |
| download | emacs-dce574dfde7668d5c40b0e153d9a21773d28208a.tar.gz emacs-dce574dfde7668d5c40b0e153d9a21773d28208a.zip | |
Restructure Eshell extension modules documentation
This adds a section for documenting all the optional modules.
Do not merge to master. This is a backport of f2981a1681d.
* doc/misc/eshell.texi (Extension modules): Move explanation about
writing modules to...
(Writing a module): ... here.
(Module testing): Remove. Testing an Eshell module doesn't require
any special documentation.
(Key binding, Smart scrolling, Electric forward slash): Move under...
(Optional modules): ... here.
(Directory handling, Terminal emulation): Remove. These modules are
enabled by default, and so are documented above.
(Tramp extensions, Extra built-in commands): New sections.
| -rw-r--r-- | doc/misc/eshell.texi | 86 |
1 files changed, 44 insertions, 42 deletions
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi index 7d42aa62850..44eb438cfd9 100644 --- a/doc/misc/eshell.texi +++ b/doc/misc/eshell.texi | |||
| @@ -1947,66 +1947,38 @@ at the end of the command are excluded. This allows input like this: | |||
| 1947 | Eshell provides a facility for defining extension modules so that they | 1947 | Eshell provides a facility for defining extension modules so that they |
| 1948 | can be disabled and enabled without having to unload and reload them, | 1948 | can be disabled and enabled without having to unload and reload them, |
| 1949 | and to provide a common parent Customize group for the | 1949 | and to provide a common parent Customize group for the |
| 1950 | modules.@footnote{ERC provides a similar module facility.} An Eshell | 1950 | modules.@footnote{ERC provides a similar module facility.} |
| 1951 | module is defined the same as any other library but one requirement: the | ||
| 1952 | module must define a Customize@footnote{@xref{Customization, , , | ||
| 1953 | elisp, The Emacs Lisp Reference Manual}.} | ||
| 1954 | group using @code{eshell-defgroup} (in place of @code{defgroup}) with | ||
| 1955 | @code{eshell-module} as the parent group.@footnote{If the module has | ||
| 1956 | no user-customizable options, then there is no need to define it as an | ||
| 1957 | Eshell module.} You also need to load the following as shown: | ||
| 1958 | |||
| 1959 | @example | ||
| 1960 | (eval-when-compile | ||
| 1961 | (require 'cl-lib) | ||
| 1962 | (require 'esh-mode) | ||
| 1963 | (require 'eshell)) | ||
| 1964 | |||
| 1965 | (require 'esh-util) | ||
| 1966 | @end example | ||
| 1967 | 1951 | ||
| 1968 | @menu | 1952 | @menu |
| 1953 | * Optional modules:: | ||
| 1969 | * Writing a module:: | 1954 | * Writing a module:: |
| 1970 | * Module testing:: | ||
| 1971 | * Directory handling:: | ||
| 1972 | * Key rebinding:: | ||
| 1973 | * Smart scrolling:: | ||
| 1974 | * Terminal emulation:: | ||
| 1975 | * Electric forward slash:: | ||
| 1976 | @end menu | 1955 | @end menu |
| 1977 | 1956 | ||
| 1978 | @node Writing a module | 1957 | @node Optional modules |
| 1979 | @section Writing a module | 1958 | @section Optional modules |
| 1980 | |||
| 1981 | This section is not yet written. | ||
| 1982 | |||
| 1983 | @node Module testing | ||
| 1984 | @section Module testing | ||
| 1985 | 1959 | ||
| 1986 | This section is not yet written. | 1960 | This section is not yet written. |
| 1987 | 1961 | ||
| 1988 | @node Directory handling | 1962 | @menu |
| 1989 | @section Directory handling | 1963 | * Key rebinding:: |
| 1990 | 1964 | * Smart scrolling:: | |
| 1991 | This section is not yet written. | 1965 | * Electric forward slash:: |
| 1966 | * Tramp extensions:: | ||
| 1967 | * Extra built-in commands:: | ||
| 1968 | @end menu | ||
| 1992 | 1969 | ||
| 1993 | @node Key rebinding | 1970 | @node Key rebinding |
| 1994 | @section Key rebinding | 1971 | @subsection Key rebinding |
| 1995 | 1972 | ||
| 1996 | This section is not yet written. | 1973 | This section is not yet written. |
| 1997 | 1974 | ||
| 1998 | @node Smart scrolling | 1975 | @node Smart scrolling |
| 1999 | @section Smart scrolling | 1976 | @subsection Smart scrolling |
| 2000 | |||
| 2001 | This section is not yet written. | ||
| 2002 | |||
| 2003 | @node Terminal emulation | ||
| 2004 | @section Terminal emulation | ||
| 2005 | 1977 | ||
| 2006 | This section is not yet written. | 1978 | This section is not yet written. |
| 2007 | 1979 | ||
| 2008 | @node Electric forward slash | 1980 | @node Electric forward slash |
| 2009 | @section Electric forward slash | 1981 | @subsection Electric forward slash |
| 2010 | 1982 | ||
| 2011 | To help with supplying absolute file name arguments to remote | 1983 | To help with supplying absolute file name arguments to remote |
| 2012 | commands, you can add the @code{eshell-elecslash} module to | 1984 | commands, you can add the @code{eshell-elecslash} module to |
| @@ -2060,6 +2032,36 @@ when chaining commands with the operators @code{&&}, @code{||}, | |||
| 2060 | @code{|} and @code{;}, the electric forward slash is active only | 2032 | @code{|} and @code{;}, the electric forward slash is active only |
| 2061 | within the first command. | 2033 | within the first command. |
| 2062 | 2034 | ||
| 2035 | @node Tramp extensions | ||
| 2036 | @subsection Tramp extensions | ||
| 2037 | |||
| 2038 | This section is not yet written. | ||
| 2039 | |||
| 2040 | @node Extra built-in functions | ||
| 2041 | @subsection Extra built-in functions | ||
| 2042 | |||
| 2043 | This section is not yet written. | ||
| 2044 | |||
| 2045 | @node Writing a module | ||
| 2046 | @section Writing a module | ||
| 2047 | |||
| 2048 | An Eshell module is defined the same as any other library but one requirement: the | ||
| 2049 | module must define a Customize@footnote{@xref{Customization, , , | ||
| 2050 | elisp, The Emacs Lisp Reference Manual}.} | ||
| 2051 | group using @code{eshell-defgroup} (in place of @code{defgroup}) with | ||
| 2052 | @code{eshell-module} as the parent group.@footnote{If the module has | ||
| 2053 | no user-customizable options, then there is no need to define it as an | ||
| 2054 | Eshell module.} You also need to load the following as shown: | ||
| 2055 | |||
| 2056 | @example | ||
| 2057 | (eval-when-compile | ||
| 2058 | (require 'cl-lib) | ||
| 2059 | (require 'esh-mode) | ||
| 2060 | (require 'eshell)) | ||
| 2061 | |||
| 2062 | (require 'esh-util) | ||
| 2063 | @end example | ||
| 2064 | |||
| 2063 | @node Bugs and ideas | 2065 | @node Bugs and ideas |
| 2064 | @chapter Bugs and ideas | 2066 | @chapter Bugs and ideas |
| 2065 | @cindex reporting bugs and ideas | 2067 | @cindex reporting bugs and ideas |