Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/sml-mode/README
ViewVC logotype

Diff of /sml/trunk/sml-mode/README

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 32, Thu Mar 12 16:54:39 1998 UTC revision 395, Wed Aug 11 20:48:17 1999 UTC
# Line 1  Line 1 
1  SML-MODE (3.3b) -- Major Emacs mode for editing Standard ML.  SML-MODE is a major Emacs mode for editing Standard ML.
2    It provides syntax highlighting and automatic indentation and
3    comes with sml-proc which allows interaction with an inferior SML
4    interactive loop.
5    
6    3.3(beta) because i really am looking at the indentation algorithm,  This release should work on any recent version of Emacs or XEmacs.
7    but the new features mentioned below are stable -- modulo bugs.  If it doesn't: complain.
8    
9  Files:  Some more or less out of date documentation can be found in TeXinfo format.
10    
11    sml-mode.el     (SML mode elisp code)  Check the INSTALL file for installation instructions.
12    sml-proc.el     (ML interaction code, defaults to SML/NJ(0.93))  Check the NEWS file for a list of changes in this version.
13    sml-hilite.el   (hilit19 functions)  Check the BUGS and TODO file before sending me bug reports and requests for
14    sml-font.el     (font-lock functions)  enhancements.
   sml-menus.el    (Simple menus)  
15    
16    sml-poly-ml.el  (Additional library code to run Poly/ML)  Send any complaint/question/praise/ice-cream to me,
   sml-mosml.el    (Additional library code to run Moscow ML)  
17    
   sml-mode.info   (Softcopy manual -- Info for (X)Emacs19)  
   sml-site.el     (Simple, system-wide installation)  
18    
19  Extras:          Stefan Monnier <monnier+lists/emacs/sml@tequila.cs.yale.edu>
   
   sml-mode.dvi    (Hardcopy manual)  
   
 Warning:  
   
   Tried and sort of tested on GNU Emacs 19.3{3,4} and XEmacs 19.14.  
   
   XEmacs 19.11 is known to hang on sending regions to the interaction  
   buffer -- so leave the variable SML-TEMP-THRESHOLD = 0.  
   
 System Installation Guide:  
   
   If you're installing this for others in the Emacs hierarchy, either  
   
     go to the site-lisp directory and unpack the tar file there,  
   
     or create a subdirectory, say site-lisp/sml-mode, and copy at  
     least the sml*.el files into it.  
   
   In either case move or copy the file sml-site.el into the site-lisp  
   directory itself (or some other place that's on the user's default  
   load-path) and read and edit this file. All that's really needed is  
   to ensure that Emacs can find the sml*.el files and the .info file.  
   
   Tell your eager users to  
   
   (requite 'sml-site)  
   
   in their .emacses. Point them to the help file. At your option, byte  
   compile the sml*.el files (and sml-site.el too, if you like).  
   
 Private Installation Guide:  
   
   If you are having to install his in your home directory, say, create  
   a directory like "/home/xxx/lib/emacs/sml-mode", if your login name  
   is xxx, and copy the sml-*.el files to there. Then put:  
   
   (setq load-path (cons "/home/xxx/lib/emacs/sml-mode" load-path))  
   (autoload 'sml-mode "sml-mode" "Major mode for editing ML programs." t)  
   
   in your .emacs file. Add:  
   
   (setq auto-mode-alist  
         (append '(("\\.sml$" . sml-mode)  
                   ("\\.sig$" . sml-mode)  
                   ("\\.ML$"  . sml-mode)) auto-mode-alist))  
   
   to your .emacs so that whenever you visit a file with one of these  
   extensions you will automatically be placed in sml-mode.  
   
   Put the info file (sml-mode.info) somewhere convenient like  
   "/home/xxx/lib/emacs/sml-mode/sml-mode.info", and add  
   
   (setq sml-mode-info "/home/xxx/lib/emacs/sml-mode/sml-mode.info")  
   
   again to your .emacs -- this gives access to on-line help. This help  
   file gives lots of tips about configuring SML mode to suit your  
   preferences: C-c C-i will get you there from SML mode.  
   
   If you want SML mode to speak to Moscow ML or Poly/ML instead of  
   SML/NJ, just add something like this to your .emacs:  
   
   (defun my-mosml-setup () "Configure inferior SML mode for Moscow ML"  
     (load-library "sml-mosml"))  
   (add-hook 'inferior-sml-load-hook 'my-mosml-setup)  
   
   so that when you M-x sml you'll get mosml instead.  
   
 New in SML mode Version 3.3 (feedback welcomed on this):  
   
   1  
   
   implemented some multi-frame handling capabilities, specifically so  
   sml runs in a dedicated window. this is more complex than it needs to  
   be because of XEmacs...  
   
   the variable SML-DEDICATED-FRAME defaults to t if running under a  
   window system; set it to nil in SML-LOAD-HOOK if you want the old  
   split window behaviour back.  
   
   2  
   
   debugged SML-NEXT-ERROR a bit, and improved it to echo the error  
   message in the minibuffer (if possible) and highlight the region in  
   which the error was found (if a suitable character range was given).  
   
   the variable SML-ERROR-OVERLAY controls whether or not to highlight  
   (default is yes); set this to nil in SML-MODE-HOOK to switch this  
   off.  
   
   SML-NEXT-ERROR won't always raise the inferior ML buffer's frame; it  
   only does so if there's no window already showing the buffer, or if  
   there's an error message it can't understand. i think!  
   
   3  
   
   support for Moscow ML -- see sml-mosml.el.  
   
   4  
   
   forms (aka, templates or macros) insertion semantics have changed  
   because there were bugs. maybe there still are, but anyway: by  
   default C-c C-m inserts the macro at point, C-u C-c C-m will do a  
   newline-and-indent before inserting the macro.  
   
   abstractions are history, and you can play with extending the  
   collection of builtin macros to your heart's content. lookup the  
   function SML-ADDTO-FORMS-ALIST, and the variable SML-FORMS-ALIST.  
   
   5  
   
   drag-and-droppishness, without the drop: SML-DRAG-MOUSE is bound to  
   M-S-down-mouse-1; if you drag the mouse over a region it will be  
   magically sucked into the ML buffer (like C-c C-r, only you don't  
   have to C-@ first). this might be flakey as it heavily depends on  
   the underlying mouse-drag/track-mouse semantics of the various  
   Emacses out there. can't do much about that, sorry.  
   
   6  
   
   anything else i've forgotten already!  
   
 To Do:  
   
   0  
   
   indentation is hopeless for sequential code (semicolons). this needs  
   attention; indeed all the indentation code does. Ian Zimmerman's very  
   excellent (looking) indentation code for caml-mode may point the way  
   forward. or we all go over to programming in Lisp instead of ML...  
   
 Matthew Morley <mjm@scs.leeds.ac.uk>  
 05/97  

Legend:
Removed from v.32  
changed lines
  Added in v.395

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0