aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Porter2023-01-29 19:59:56 -0800
committerJim Porter2023-07-12 16:37:54 -0700
commitdce574dfde7668d5c40b0e153d9a21773d28208a (patch)
tree586302e9bf47e750c71dbec1a76ee1d5966c7499
parenta3e03964a0d41a6a309f14cbb92aba1c28f1620e (diff)
downloademacs-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.texi86
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:
1947Eshell provides a facility for defining extension modules so that they 1947Eshell provides a facility for defining extension modules so that they
1948can be disabled and enabled without having to unload and reload them, 1948can be disabled and enabled without having to unload and reload them,
1949and to provide a common parent Customize group for the 1949and to provide a common parent Customize group for the
1950modules.@footnote{ERC provides a similar module facility.} An Eshell 1950modules.@footnote{ERC provides a similar module facility.}
1951module is defined the same as any other library but one requirement: the
1952module must define a Customize@footnote{@xref{Customization, , ,
1953elisp, The Emacs Lisp Reference Manual}.}
1954group using @code{eshell-defgroup} (in place of @code{defgroup}) with
1955@code{eshell-module} as the parent group.@footnote{If the module has
1956no user-customizable options, then there is no need to define it as an
1957Eshell 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
1981This section is not yet written.
1982
1983@node Module testing
1984@section Module testing
1985 1959
1986This section is not yet written. 1960This section is not yet written.
1987 1961
1988@node Directory handling 1962@menu
1989@section Directory handling 1963* Key rebinding::
1990 1964* Smart scrolling::
1991This 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
1996This section is not yet written. 1973This section is not yet written.
1997 1974
1998@node Smart scrolling 1975@node Smart scrolling
1999@section Smart scrolling 1976@subsection Smart scrolling
2000
2001This section is not yet written.
2002
2003@node Terminal emulation
2004@section Terminal emulation
2005 1977
2006This section is not yet written. 1978This 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
2011To help with supplying absolute file name arguments to remote 1983To help with supplying absolute file name arguments to remote
2012commands, you can add the @code{eshell-elecslash} module to 1984commands, 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
2061within the first command. 2033within the first command.
2062 2034
2035@node Tramp extensions
2036@subsection Tramp extensions
2037
2038This section is not yet written.
2039
2040@node Extra built-in functions
2041@subsection Extra built-in functions
2042
2043This section is not yet written.
2044
2045@node Writing a module
2046@section Writing a module
2047
2048An Eshell module is defined the same as any other library but one requirement: the
2049module must define a Customize@footnote{@xref{Customization, , ,
2050elisp, The Emacs Lisp Reference Manual}.}
2051group using @code{eshell-defgroup} (in place of @code{defgroup}) with
2052@code{eshell-module} as the parent group.@footnote{If the module has
2053no user-customizable options, then there is no need to define it as an
2054Eshell 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