[comp.emacs] Descriptions of Emacs Elisp & suggested organization long

cks@white.toronto.edu (Chris Siebenmann) (06/27/89)

 Some time back I sugested reorganizing the lisp directory and adding
a README describing each file so that people could more easily find
interesting things. Here's my first pass at such a README and
reorganization; comments are welcome (please mail major ones, and I'll
post a revised readme in a week or so).

 In general, it would be very helpful if authors of new elisp files
could put a one-line description of the file as the first line. A lot
of the .el files do have this, but some either lack one or have an
erroneous one.

	Divisions
	---------

lisp		- things used in Emacs building
lisp/local	- things different at each site/machine Emacs was compiled
		  on.
lisp/core	- things loaded in loadup.el; emacs will not load & run
		  without these (or the things in lisp, or lisp/local)
lisp/modes	- Major modes for editing things
lisp/modes/<mode>	- Extra files for profligate major modes
lisp/interfaces	- Things that interface to other programs, such as
		  subordinate lisps or the MH mail system.
lisp/diversions	- Fun and amusing things (which are intended to be
		  nothing else).
lisp/packages	- User-usable collections of Lisp functions that
		  aren't either interfaces, major modes, or diversions.
lisp/functions	- "packages" that aren't user-callable, or aren't
		  usually directly [auto]loaded by the user.
lisp/utils	- Utilities primarily useful to Emacs maintainers and
		  hackers, but not to ordinary users.
lisp/term	- terminal-specific files
lisp/term/<name>	- Extra files for profligate terminals
lisp/misc	- stuff that doesn't seem to fit anywhere.


	Lisp files breakdown
	--------------------
[format: name	description
		where it goes
Files already in lisp/terms are not listed.
]

abbrev.el	Abbreviation mode commands
	lisp/core
abbrevlist.el	List one abbrev table alphabetically ordered.
	lisp/misc
ada.el		Ada editing mode
	lisp/modes
add-log.el	Change log maintenance commands for Emacs
	lisp/packages
autoinsert.el	Automatic mode-dependent insertion of text into new files.
	lisp/packages
backquote.el	Backquote package for Elisp programmers
	lisp/core
bibtex.el	Simple BibTeX mode for GNU Emacs
	lisp/modes
blackbox.el	Blackbox game in Emacs Lisp
	lisp/diversions
buff-menu.el	Buffer menu main function and support functions.
	lisp/core
bytecomp.el	Compilation of Lisp code into byte code.
	lisp/utils
c-fill.el	C comment mode - An auto-filled comment mode for gnu c-mode.
	lisp/modes
c-mode.el	C code editing commands for Emacs
	lisp/core
cal.el		Generate & display calenders for months and years (??)
	lisp/packages
chistory.el	List command history of commands typed in minibuffer
	lisp/packages
cl-indent.el	Major mode for editing (Common) Lisp code
	lisp/modes
cl.el		Common-Lisp extensions for GNU Emacs Lisp.
	lisp/functions
cmacexp.el	Expand C macros using the preprocessor (??)
	lisp/misc
compare-w.el	Compare text between windows for Emacs.
	lisp/packages
compile.el	Run compiler under Emacs, and parse its error messages.
	lisp/interfaces
dabbrev.el	Dynamic abbreviation package for GNU Emacs.
	lisp/packages
dbx.el		Run dbx under Emacs
	lisp/interfaces
debug.el	Debuggers and related commands for Emacs
	lisp/utils
dired.el	View and "edit" directories
	lisp/modes
disass.el	Disassembler for compiled Emacs Lisp code
	lisp/utils
disassociate.el	Scamble text amusingly
	lisp/diversions
doctex.el	Grind GNU Emacs DOC file into LaTeX input
	lisp/utils
doctor.el	Psychological help for frustrated users.
	lisp/diversions
ebuf-menu.el	Electric buffer mode, improved buffer-menu-mode (??)
	lisp/modes
echistory.el	Electric minibuffer command history
	lisp/packages
edt-doc.el	Documentation for the EDT package
	lisp/modes	? (should be bundled with edt.el?)
edt.el		EDT emulation package
	lisp/modes
ehelp.el	Electric help mode
	lisp/modes
electric.el	Window maker and Command loop for `electric' modes.
	lisp/functions
emacsbugs.el	Command to report Emacs bugs to appropriate mailing list.
	lisp/misc
files.el	File input and output commands for Emacs
	lisp/core
fill.el		Fill commands
	lisp/core
flame.el	Generate sentences of random flames.
	lisp/diversions
float.el	Floating point arithmetic package.
	lisp/functions
fortran.el	A mode for editing Fortran programs
	lisp/modes
ftp.el		File input and output over a network using FTP
	lisp/packages
gdb.el		Run gdb under Emacs
	lisp/interfaces
gosmacs.el	Rebindings to imitate Gosmacs.
	lisp/misc
grow-vers.el	when building emacs, bump version number
	lisp
hanoi.el	The towers of hanoi game
	lisp/diversions
help.el		Help commands for Emacs
	lisp/core
helper.el	utility help package for electric modes
	lisp/functions
hideif.el	Hides selected code within ifdef.
	lisp/packages
icon.el		A mode for editing programs in the Icon language
	lisp/modes
inc-vers.el	when building emacs, increment the version number
	lisp
indent.el	Indentation commands for Emacs
	lisp/core
info.el		Info package for showing FSF manuals
	lisp/modes
informat.el	Info support functions package
	lisp/functions
isearch.el	Incremental search commands
	lisp/core
kermit.el	Additions to shell mode for use with kermit, etc.
	lisp/packages
keypad.el	Terminal-independent keypad and function key bindings.
	lisp/functions
ledit.el	Emacs side of ledit interface for editing Lisp with Emacs (??)
	lisp/interfaces
life.el		Conway's `Life' for GNU Emacs
	lisp/diversions
lisp-mode.el	Major mode for editing Lisp code.
	lisp/core
lisp.el		Lisp editing commands for Emacs
	lisp/core
loaddefs.el	Define standard autoloads and keys of other files.
	lisp
loadup.el	Load up standardly loaded Lisp files
	lisp
lpr.el		Print Emacs buffer on line printer.
	lisp/packages
macros.el	Non-primitive commands for keyboard macros.
	lisp/packages
mail-utils.el	Utility functions used both by rmail and rnews
	lisp/functions
mailalias.el	Expand mailing address aliases defined in ~/.mailrc.
	lisp/functions
mailpost.el	For people using rmail without sendmail & with MH
	lisp/functions
makesum.el	Generate key binding summary for Emacs
	lisp/packages
man.el		Read in and display parts of Unix manual.
	lisp/packages
medit.el	Emacs under MDL; interface Emacs and MEDIT package
	lisp/interfaces
meese.el	???
	lisp/misc
mh-e.el		GNU Emacs frontend to the MH mail system
	lisp/interfaces
mim-mode.el	Mim (MDL in MDL) mode.
	lisp/modes
mim-syntax.el	Syntax checker for Mim (MDL).
	lisp/packages
mlconvert.el	Convert buffer of Mocklisp code to real lisp.
	lisp/utils
mlsupport.el	Run-time support for mocklisp code.
	lisp/utils
modula2.el	Modula-2 editing support package
	lisp/modes
novice.el	Handling of disabled commands ("novice mode") for Emacs.
	lisp/packages
nroff-mode.el	major mode for editing nroff source
	lisp/modes
options.el	Edit Options command for Emacs.
	lisp/modes
outline.el	Outline mode commands for Emacs
	lisp/modes
page.el		Page motion commands for emacs.
	lisp/core
paragraphs.el	Paragraph and sentence parsing.
	lisp/core
paths.el	Define pathnames for use by various Emacs commands.
	lisp
picture.el	"Picture mode" -- editing using quarter-plane screen model.
	lisp/modes
prolog.el	Major mode for editing Prolog & running it under Emacs
	lisp/modes	(linked into lisp/interfaces?)
rect.el		Rectangle functions for GNU Emacs.
	lisp/packages
register.el	Register commands for Emacs.
	lisp/core
replace.el	Replace commands for Emacs.
	lisp/core
rfc822.el	Hairy rfc822 parser for mail and news and suchlike
	lisp/functions
rmail.el	"RMAIL" mail reader for Emacs.
	lisp/modes
rmailedit.el	"RMAIL edit mode"  Edit the current message.
	lisp/modes/rmail
rmailkwd.el	"RMAIL" mail reader for Emacs.
	lisp/modes (?? whats the difference between rmail.el & this?)
rmailmsc.el	Misc. rmail functions.
	lisp/modes/rmail
rmailout.el	"RMAIL" mail reader for Emacs: output message to a file.
	lisp/modes/rmail
rmailsum.el	"RMAIL" mail reader for Emacs: produce summaries
	lisp/modes/rmail
rnews.el	 USENET news reader for gnu emacs
	lisp/modes
rnewspost.el	 USENET news poster/mailer for GNU Emacs
	lisp/modes/rnews
saveconf.el	Save Emacs buffer and window config between editing sessions.
	lisp/packages
scheme.el	Scheme mode, and its idiosyncratic commands.
	lisp/modes
scribe.el	scribe mode, and its ideosyncratic commands.
	lisp/modes
sendmail.el	Mail sending commands for Emacs.
	lisp/modes
server.el	Lisp code for GNU Emacs running as server process.
	lisp/interfaces
shell.el	Run subshell under Emacs
	lisp/interfaces
simple.el	Basic editing commands for Emacs
	lisp/core
simula.el	Simula mode
	lisp/modes
site-init.el	Various site-specific setups.
	lisp/local
sort.el		Commands to sort text in an Emacs buffer.
	lisp/packages
spell.el	pelling correction interface for Emacs.
	lisp/packages
spook.el	Spook phrase utility; frustrate automated keyword scanners
	lisp/diversions
startup.el	 Process Emacs shell arguments
	lisp/core
studley.el	StudlyCaps (tm)(r)(c)(xxx)
	lisp/misc
subr.el		Basic lisp subroutines for Emacs
	lisp/core
sun-cursors.el	Cursor definitions for Sun windows
	lisp/terms/sun
sun-fns.el	Subroutines of Mouse handling for Sun windows
	lisp/terms/sun
sun-keys.el	Support (cleanly) for Sun function keys.
	lisp/terms/sun
sun-mouse.el	Mouse handling for Sun windows
	lisp/terms/sun
sup-mouse.el	GNU Emacs code for lambda/supdup mouse
	lisp/terms
tabify.el	Tab conversion commands for Emacs
	lisp/packages
tags.el		Tags facility for Emacs.
	lisp/packages
telnet.el	telnet around from inside Emacs.
	lisp/interfaces
terminal.el	Terminal emulator for GNU Emacs.
	lisp/interfaces
tex-mode.el	A mode for editing TeX files.
	lisp/modes
tex-start.el	allow one to invoke GNU Emacs inside TeX82 (??)
	lisp/misc
texinfmt.el	Convert texinfo files to info files.
	lisp/packages
texinfo.el	Major mode for editing texinfo files.
	lisp/modes
text-mode.el	Major mode for editing text buffers.
	lisp/core
time.el		Display time and load in mode line of Emacs.
	lisp/packages
uncompress.el	Automatically uncompress and compress files you edit (??)
	lisp/packages
underline.el	Insert or remove underlining (done by overstriking) in Emacs.
	lisp/functions
undigest.el	"RMAIL" mail reader for Emacs: undigest a mail digest
	lisp/modes/rmail
unused.el	Editing commands in GNU Emacs that turned out not to be used.
	lisp/misc
userlock.el	Handle some locking
	lisp/core
version.el	Record version number of Emacs.
	lisp/local
vi.el		Emulate the vi editor, like vip.el
	lisp/modes
view.el		Peruse file or buffer without editing.
	lisp/modes
vip.el		Emulate the vi editor, like vi.el
	lisp/modes
vms-patch.el	Override parts of files.el for VMS.
	lisp/core
vmsproc.el	Run asynchronous VMS subprocesses under Emacs
	lisp/core
window.el	GNU Emacs window commands aside from those written in C.
	lisp/core
x-menu.el	X10/X11 menu handling functions.
	lisp/terms/x
x-mouse.el	Mouse support for X window system.
	lisp/terms/x
xsheme.el	Run Scheme under Emacs
	lisp/interfaces
yow.el		Produce Zippy the Pinhead quotes
	lisp/diversions

-- 
	"I shall clasp my hands together and bow to the corners of the world."
			Number Ten Ox, "Bridge of Birds"
Chris Siebenmann		...!utgpu!{ncrcan,ontmoh!moore}!ziebmef!cks
cks@white.toronto.edu	     or ...!utgpu!{,csri!}cks

tale@pawl.rpi.edu (David C Lawrence) (06/27/89)

My only complaint about this whole scheme is that the current library
loader would need to be changed to descend subirectories in
emacs/lisp.   Right now the only subdirectory to lisp is term and that
usually only gets called during start-up processing.  I don't want to
have to type M-x load-l SPC diversions/life.el RET for a simple diversion
(perhaps a poor example, but the concept is extensible).  Hopefully
the overhead in a loader which checks directories (like man(1)) would
not be too great. 

Dave
--
 (setq mail '("tale@pawl.rpi.edu" "tale@itsgw.rpi.edu" "tale@rpitsmts.bitnet"))
  "I realize the Internet isn't the whole world, but it is the center of it."
                                                        -- Greg Woods