| allegro-cl archives 1997-4-2 | home index prev H thread-prev K thread-next J next L |
|
From: Bill Dubuque Subject: future of Editi [was: Any port of the ACLW Editi interface to Gnu Emacs 19.34.1?] Date: 1997-4-2 15:54
: Date: Wed, 02 Apr 1997 01:21:34 -0600
: From: Dale Arntson <uchicago.edu at d-arntson>
:
: Has anyone ported the ACLW Editi for Win-Emacs to Gnu Emacs 19.34.1?
: I find Win-Emacs 1.5 to be too outdated and too unstable on NT 4.0 to use.
This is a good opportunity to discuss future plans for Editi (vs. FI,
ilisp, etc), but first let me address your specific concerns:
Editi is not yet ported to FSF Emacs, although I have discussed this
with Franz and they may well fund such work in the near future.
Many ACLW users are using Win-Emacs + Editi under NT 4.0. We are not aware
of any problems with stability. Please report any problems you encounter
to <pearlsoft.com at tech> (or <Franz.com at Editi> for Editi specific problems).
[Version 1.35 of Win-Emacs was slow and unstable under NT, but the
latest version 1.5 avoids such problems since it is a true Win32s app].
Win-Emacs is indeed not the latest version of XEmacs, but this shouldn't
affect its use as an IDE for Lisp software development (i.e. Editi usage).
If there are particular features you find missing, incompatible, etc.
please feel free to send e-mail to the above addresses so your request
may be considered for the next release of Win-Emacs and/or Editi.
Note that version 1.3 of Editi will soon be superseded by version 3.0,
which is currently in beta test. Version 3.0 offers much new functionality
versus version 1.3 (I've appended below an extract from the Editi
changes.txt file). Anyone still using the toy ACL resident editor is now
underpowered and will be very seriously underpowered after the release of
Editi version 4.0 -- which will be a next generation interface.
As planned, version 4.0 of Editi will not only run on FSF Emacs, but
will be the "Grand Unified Emacs <-> Lisp Interface", subsuming all
functionality of existing interfaces (Franz FI, GNU ilisp, etc).
Additionally it will include many powerful next-generation features
that far surpass any of the older Emacs <-> Lisp interfaces.
Just when version 4.0 appears will depend upon when I can talk Franz into
funding the work. If you'd like to see this happen soon then be sure to
communicate your opinions to Franz so that they may correctly assess
the needs of the Allegro Lisp user community.
By the way, per Franz, <cs.berkeley.edu at allegro-cl> is now the recommended
forum for discussion of Editi. Use <franz.com at editi> for bug-reports.
-Bill Dubuque (author of Editi)
Changes in Editi version 3.0 (vs. version 1.3)
=============================================
o Symbol completion is available in Lisp Mode buffers
Tab instantly completes the symbol at point using documented ACL
symbols and any tags completion table. Another Tab will enter
tags-apropos, and a Tab from tags-apropos will exit back to the
original state. Sh-Tab in Lisp Mode does a tags-apropos 'grep',
i.e. finds matches that begin anywhere within a tags symbol instead
of just those matches that begin at the start of a symbol (as does
Tab completion). Sh-Tab within a tags-apropos buffer toggles
between the two types of matching: start vs. substring.
See section [14] of the README for further detail.
ACL WinHelp topics also enjoy analogous full completion (cf. below).
o Changes Mode: tracking changes not yet evaluated in ACL
Changes Mode is a new minor mode that keeps track of all changed
top-level forms that have not yet been evaluated in the external
ACL process. Use 'M-x changes-mode' to enter/exit changes mode in
a Lisp Mode buffer. Use C-8 C-E to eval in ACL all changed forms
in the current buffer. Use C-c C-p and C-c C-n to go to the prior
and next changed form, and C-c C-u to change the state of a form from
changed to unchanged. See Section 15 of the README for further detail.
o ACL WinHelp is now available via M-D, with completion over topics
Full completion is available over all help topics when typing
in the help topic in the minibuffer. Sh-Tab switches from a
start-of-word match to a substring match anywhere (grep);
Tab switches back. E.g. Try 'M-1 M-D get? Sh-Tab Tab'. You
must have an ACL process loaded to use acl-winhelp (M-D).
The completions listing generated by M-D functions as a menu:
Button2 browses: shows the help topic without exiting this M-D command.
Button1 jumps: does the same, but instead exits the M-D command
For example, to browse all topics containing the string 'vector' type:
C-u M-D vector ? Shift-TAB, then click Button2 on various topics.
M-D parses format directives: try typing M-D at various points while
you are at various directives within format strings. The precise
manual page for each format directive will be located.
o Ediff: visual interface to 'diff', quickly browse source changes
Ediff, a visual interface to 'diff', has been ported to Editi.
See the file "ediff.txt" for documentation. Instead of the
command 'M-x diff' use 'M-x ediff' for spiffy visual diff's.
Both 'ediff' and 'diff' have been extended to diff against
autosave or backup files if invoked with no prefix arg: if
invoked from a modified buffer, it is autosaved and compared against
the last saved version, thus showing the changes since the last save.
If the buffer is not modified, and there is a backup from this session,
then the latest save is compared against the latest backup;
otherwise you are prompted for the filenames. Specifying a prefix
arg always results in a prompt for the filenames to diff. Thus
to see what changes you've made to a file you are editing simply
type 'M-x ediff RET', or 'M-x diff RET'.
o New ACL Tools Commands
Trace Commands
arg > +1 C-u C-T build trace call to function at point (in minibuf)
arg = +1 C-T trace function at point
arg = 0 C-0 C-T display list of traced functions
arg = -1 C-- C-T untrace function at point
arg < -1 C--9 C-T build untrace call (default: all traced functions)
repeated C-T C-T untrace function at point
Breakpoint Commands
arg > +1 C-u C-B build breakpoint call to function at point
arg = +1 C-B breakpoint function at point
arg = 0 C-0 C-B display list of breakpointed functions
arg = -1 C-- C-B unbreakpoint function at point
arg < -1 C--9 C-B build unbreakpoint call (all breakpointed functions)
repeated C-B C-B unbreakpoint function at point
Profile Commands
arg > +1 C-u C-P build profile call to function at point
arg = +1 C-P profile function at point
arg = 0 C-0 C-P display list of profiled functions
arg = -1 C-- C-P unprofile function at point
arg < -1 C--9 C-P build unprofile call (all profiled functions)
repeated C-P C-P unprofile function at point
Results/Reset Commands
arg > +1 C-u C-R build profile-results call to all profiled functions
arg = +1 C-R profile-results of function at point
arg = 0 C-0 C-R display list of traced,profiled,break'ed functions
arg = -1 C-- C-R profile-reset function at point
arg < -1 C--9 C-R build profile-reset call to all profiled functions
Class Browsing
arg = none C-C display class outline of symbol at point
arg = 1 C-1 C-C browse superclasses of symbol at point
arg = -1 C-- C-C browse subclasses of symbol at point
arg = 2 C-2 C-C browse class methods of symbol at point
arg = C-u C-u C-C build display class outline call (in minibuffer)
arg = 11 C-11 C-C build browse superclasses call
arg = -11 C--11 C-C build browse subclasses call
arg = 22 C-22 C-C build call to browse class methods
Generic Function Browsing Commands
arg = none C-F browse generic function of symbol at point
arg = any C-u C-F build call to browse generic function
o ACL Evaluation and Compilation Command Enhancements
ACL eval and compile commands now display output and results in
a transient popup (or in the minibuffer if a single line). To
suppress this display supply a negative prefix-arg, e.g. C-- C-E.
To later review the prior output, toggle its display via C-z.
All ACL eval and compile commands now take a prefix argument
specifying the object to evaluate. If the region is inactive,
then the prefix arg selects the evaluation object as follows:
arg none the top-level form containing point, e.g. C-E
arg C-u prompt and read an sexp from minibuffer, e.g. C-u C-E
arg = 0, the symbol at point, e.g. C-0 C-E
arg = 1, the sexp containing point (or just before/after point)
arg = 4, the top-level form containing point (same as 'arg none')
arg = 8, all changed forms in buffer (cf. Changes Mode above)
arg = 16, the entire buffer, e.g. C-u C-u C-E, or C-16 C-E
All the ACL eval/compile commands have been unified. In particular,
the GNU eval/compile commands (C-c C-e, C-c C-c etc.) have been
generalized to accept a region if active, else the current defun
(top-level form), i.e. they're now bound to acl-eval-region-or-defun
and acl-compile-region-or-defun respectively, the same as C-E. All
accept prefix arguments as described just above.
New command acl-schedule-next-command-in-background, alias &acl,
bound to C-c C-&, schedules next ACL command in the background,
which allows subsequent commands to interrupt it, vs. blocking.
Use this command before lengthy ACL commands (e.g. compile-file)
if you desire to execute other ACL commands in the interim.
C-RET can be typed *within* a top-level form and still behaves
correctly, evaluating and inserting the result. 'C-x u' undoes
this, removing the output and bringing you back to the original
point within the top-level form you evaluated. You can use this
to quickly evaluate a form, for various values of sub-expressions.
C-C is no longer a compile command; instead use C-E or C-c C-e or
M-C-x (or C-c C-c or C-c C-x if editi-compile-via-compile-file is
true and (rarely) you really desire compilation vs. evaluation;
see the 'Technical Note' in README section [1] for more on this).
o Editi now has a Menubar exposing much of its functionality.
o Tags Occur Enhancements
C-c C-c now jumps to the source buffer match in full-screen mode.
M-, will resume to the tags-occur buffer, like any tags command.
Sh-button1 on a highlighted occur match in a source buffer takes
you back to the tags-occur buffer, just like M-,
C-l C-l toggles match highlighting from within source buffers;
Highlights are removed upon occur exit (C-RET, Tab or kill-buffer).
Occur movement up/down functions now traverse a complete visible
chunk per command, allowing more rapid traversal of matches.
Occur output is now fontified.
The default argument is now the symbol at point, just like M-.
o Tags Apropos Enhancements
Matches are now highlighted in the 'occur-source face.
M-, will resume to the tags-apropos buffer, like any tags command.
New commands: '_' or '-' toggle on/off use of the underline
separator in favor of highlighting. The '\' command toggles
on/off whether long lines are truncated or wrapped at end of line.
Auto-tags now precisely locates auto-generated CLOS accessor def's,
i.e. M-. and selections from tags completion menus will bring you
to the precise definition line of the method within the defclass.
o Popup Window Enhancements
toggle-acl-popup-window has been moved from C-* to C-z, and the
prior command on C-z, iconify-emacs, has been moved to C-x C-z.
Clicking on the modeline of a transient popup window pins it up.
Transient popups will stay up during window traversal and
scrolling functions; isearch mode is also preserved by scrolling
functions, e.g. you can type C-M-v to scroll the other or next
window up without exiting isearch or a transient popup window.
If after executing an external ACL command such as acl-apropos,
you tire of waiting for the result and begin executing other
commands, when the ACL result is received by Emacs, the popup
window displaying it will no longer be transient, i.e. it will
remain shown until explicitly removed via C-z.
o Miscellaneous Enhancements
New command reindent-lisp (from ilisp) is now on M-q in lisp-mode.
This command will reindent the current top-level form, filling
comments, and closing parentheses if needed.
C-/ = quick-symbol-info, the same as in ACL.
C-' = popup-mode-menu, just like Button3.
Button3 on a modeline now has its own map and menu, mode-line-menu
and mode-line map.
DDE mode is no longer incorrectly forced on if it has been disabled
via the 'M-x editi-dde-mode' command.
======== end of excerpt from Editi 3.0 changes.txt =======
|