1 2010-03-04 Stefan Monnier <monnier@iro.umontreal.ca>
5 * sml-mode.el: Don't setup load-path here any more.
6 * Makefile ($(PACKAGE)-startup.el): Recreate from scratch every time.
8 (dist): Try to update it to use Svn rather than CVS.
10 2007-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
12 * sml-proc.el (inferior-sml-next-error-hook): Make it match one
15 2007-10-31 Stefan Monnier <monnier@iro.umontreal.ca>
17 * testcases.sml: Add (old) buggy case from Christopher Dutchyn.
19 * sml-proc.el (inferior-sml-font-lock-keywords): Don't add
20 error-regexps if compile.el already highlights them anyway.
22 * sml-mode.el (sml-font-lock-symbols-alist): Fix char for "not".
24 2007-10-31 Stefan Monnier <monnier@iro.umontreal.ca>
26 * sml-mode.el (sml-def-skeleton): If possible, only expand for
27 lower-case abbrevs and not inside strings or comments.
28 (sml-mlton-typecheck): Typo.
30 * sml-proc.el (sml-proc-comint-input-filter-function): New function.
31 (inferior-sml-mode): Use it.
32 (sml-update-cursor): Don't forget errors here any more.
34 2007-10-31 Stefan Monnier <monnier@iro.umontreal.ca>
36 * sml-util.el (defmap, defsyntax): Avoid defconst.
39 * sml-mode.el (sml-calculate-indentation): Avoid previous-line.
40 (sml-keywords-regexp): Avoid the need for `flatten'.
41 (sml-defuse-jump-to-def): Fix typo.
43 * sml-defs.el (sml-syms-re): Don't use `flatten'.
44 (sml-sexp-head-symbols-re, sml-starters-indent-after)
45 (sml-non-nested-of-starter-re): Avoid the need for `flatten'.
47 * sml-proc.el (inferior-sml-next-error-hook): New fun.
48 (inferior-sml-mode): Use it.
50 2007-06-29 Stefan Monnier <monnier@iro.umontreal.ca>
52 * sml-mode.el (sml-mlton-error-regexp-alist): New var.
53 (sml-mlton-typecheck): Use it.
54 (compilation-error-regexp-alist): Add entries after loading "compile"
55 so that M-x compile works.
57 * sml-proc.el (inferior-sml-mode): Make TAB add a " rather than a space
58 at the end of a file name.
60 2007-06-14 Stefan Monnier <monnier@iro.umontreal.ca>
62 * sml-mode.el (sml-mode-variables): Set comment-quote-nested instead of
63 comment-nested. Set comment-end-skip.
64 (sml-first-starter-p): New function.
65 (sml-indent-starter): Use it to fix an indentation bug.
66 (sml-mlton-command, sml-mlton-mainfile): New vars.
67 (sml-mlton-typecheck): New command.
68 (sml-defuse-file): New var.
69 (sml-defuse-def-regexp, sml-defuse-use-regexp-format): New consts.
70 (sml-defuse-file, sml-defuse-symdata-at-point): New functions.
71 (sml-defuse-set-file, sml-defuse-jump-to-def): New commands.
73 2005-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
75 * sml-move.el (sml-find-match-forward): Avoid infinite looping if the
76 construct is not properly closed (yet).
78 2005-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
80 * sml-defs.el (sml-mode-menu): Remove left over obsolete entries.
82 * sml-proc.el (inferior-sml-mode): Preserve the menu-bar of the
83 compilation minor mode, if any.
85 2004-11-24 Stefan Monnier <monnier@iro.umontreal.ca>
87 * Release version 4.0.
89 2004-11-23 Stefan Monnier <monnier@iro.umontreal.ca>
91 * sml-mode.el (sml-font-lock-symbols-alist): Add yet more silly entries.
93 2004-11-15 Stefan Monnier <monnier@iro.umontreal.ca>
95 * sml-mode.el (sml-font-lock-symbols-alist): Add entries for >= and <=.
96 (sml-font-lock-symbols-alist): Add entries for simple type variables.
97 (sml-font-lock-compose-symbol): Add support for non-punctuation syms.
99 2004-11-14 Stefan Monnier <monnier@iro.umontreal.ca>
101 * sml-move.el (sml-backward-sexp, sml-forward-sexp): Remove unused var.
103 * sml-mode.el (sml-calculate-indentation): Remove unused var.
104 (sml-get-indent): Change first arg's meaning.
105 (sml-get-sym-indent): Adjust call.
106 (sml-forms-menu): Simplify.
107 (sml-font-lock-symbols, sml-font-lock-symbols-alist): New vars.
108 (sml-font-lock-compose-symbol, sml-font-lock-symbols-keywords):
110 (sml-font-lock-keywords): Use them.
112 * sml-compat.el (temp-directory): Get rid of warning.
114 * Makefile (install_startup): Don't add to load-path any more.
116 * sml-proc.el (sml-make-error): Use match-string.
117 (sml-error-regexp-alist): Merge regexps.
118 (sml-update-cursor): Check sml-temp-file is non-nil.
120 2004-04-21 Stefan Monnier <monnier@iro.umontreal.ca>
122 * sml-proc.el (sml-error-regexp-alist): Use new compile.el features
124 (sml-send-region): Remove unused var `file'.
125 (sml-drag-region): Remove unused function.
126 (sml-update-cursor): Use compilation-fake-loc if available.
127 (compilation-goto-locus): Only advise if necessary.
129 * sml-mode.el: Add self to load-path in sml-mode-startup.el.
130 (sml-def-skeleton): Try to use the new `system' abbrev flag.
132 2004-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
134 * testcases.sml: Add a nasty case that is still wrong.
136 * sml-proc.el (sml-error-regexp-alist): Tune the regexp for sml/nj.
138 * sml-mode.el (sml-mode): Better handle paragraphs in comments.
139 (sml-mode-variables): Clean up paragraph settings.
140 (sml-electric-pipe): Fix a boundary bug.
141 (sml-indent-starter, sml-get-sym-indent, sml-find-matching-starter):
142 Fix indentation algorithm. Can't remember what it was about.
143 This code is nasty, I just can't understand what's doing what.
144 (completion-ignored-extensions): Add the new .cm directory.
146 2003-12-09 Stefan Monnier <monnier@iro.umontreal.ca>
148 * sml-defs.el (sml-mode-menu): Fix typo. Use std names.
149 (sml-begin-syms-re): Reduce redundancy.
151 2001-09-18 Stefan Monnier <monnier@cs.yale.edu>
153 * sml-mode.el (sml-tyvarseq-re): Fix typo.
155 2001-07-20 Stefan Monnier <monnier@cs.yale.edu>
157 * sml-mode.el (sml-rightalign-and): New defcustom.
158 (sml-tyvarseq-re): New var.
159 (sml-font-lock-keywords): Use it.
160 (sml-imenu-create-index): Don't get confused by tyvarseq's.
161 (sml-mode-variables): Don't set `comment-column'.
162 (sml-funname-of-and): New function.
163 (sml-electric-pipe): Use it.
164 (sml-find-comment-indent): Try to ignore comment-markers in strings.
165 (sml-calculate-indentation): Handle closing parens specially.
166 (sml-indent-pipe): Recognize the case where `and' defines a datatype.
167 (sml-dangling-sym): Make it work if the symbol is an open-paren.
168 (sml-indent-default): Change the behavior when preceded by `end',
169 although I'm not quite sure why.
170 Understand dangling open-parens.
171 Properly skip *all* subexpressions of lower precedence.
172 Allow use of sml-symbol-indent to outdent lines starting with , or ;.
173 (sml-insert-form): Use preceding-char to avoid bug at bobp.
175 2001-07-19 Stefan Monnier <monnier@cs.yale.edu>
177 * sml-proc.el (sml-proc-buffer): Save excursion when calling run-sml.
179 * sml-move.el (sml-syntax-prec): Split ; and , from `in' and `with'.
181 * sml-mode.texi: Put the entry in `Emacs' rather than `Editors'.
183 * sml-mode.spec (BuildArch): Simplify call to `install-info'.
185 * sml-defs.el (sml-mode-menu): Add an explicit t for always-active.
186 (sml-symbol-indent): Add entries for , and ; and turn into defcustom.
188 * sml-compat.el: Add more stuff. It might help for Emacs-19.34.
190 * makefile.pkg (test): Use elisp files in current dir.
192 2000-12-24 Stefan Monnier <monnier@cs.yale.edu>
194 * Release version 3.9.5.
196 * Makefile (install): Also install .el files.
197 (dist): Don't rely on $CVSROOT.
199 * sml-mode.el: Require `skeleton'.
200 (sml-mode): Add the menu for XEmacs. Make sure @ is a valid skeleton.
201 (sml-comment-indent): Remove.
202 (sml-mode-variables): Don't set comment-indent-function.
203 (sml-def-skeleton): Nop if skeletons aren't available.
204 (skeletons): Use `> _' and `@'.
205 (sml-forms-menu): Don't bother with easy-menu-filter-return crap.
206 (sml-cm-mode-syntax-table, sml-cm-font-lock-keywords): New vars.
207 (sml-cm-mode): Use define-derived-mode rather than define-generic-mode.
208 (sml-lex-font-lock-keywords, sml-lex-font-lock-defaults): New vars.
209 (sml-yacc-font-lock-keywords): Use sml-lex-font-lock-keywords.
210 Refine pattern to recognize the %prec keyword.
211 (sml-yacc-font-lock-defaults): Fix typo.
213 * sml-proc.el (inferior-sml-mode): Disable next-error for XEmacs.
215 * sml-util.el (defsyntax): Don't forget to eval `doc'.
217 * sml-mode.spec: Simplify.
219 * sml-defs.el (sml-mode-menu): Remove bogus entry for sml-mode-version.
221 2000-10-06 Stefan Monnier <monnier@cs.yale.edu>
223 * sml-mode.el: Make the toplevel closer to usual practice.
224 (sml-imenu-regexp, sml-imenu-create-index): New var and fun.
225 (sml-mode): Use them.
226 (sml-beginning-of-defun): Add `and' as function-leader.
227 (sml-lex-mode): New trivial mode.
228 (sml-yacc-bnf-face, sml-yacc-indent-action, sml-yacc-indent-pipe)
229 (sml-yacc-indent-term, sml-yacc-font-lock-keywords)
230 (sml-yacc-font-lock-defaults): New vars.
231 (sml-yacc-indent-line, sml-yacc-indentation, sml-yacc-mode): New funs.
233 * sml-mode.texi: Added yours truly to the list of authors.
235 * sml-mode.spec: New file.
237 * sml-defs.el (sml-outline-regexp): Slightly improved regexp.
239 2000-08-24 Stefan Monnier <monnier@cs.yale.edu>
241 * sml-proc.el (inferior-sml-mode-map): Don't inherit from sml-bindings.
242 Add the binding for C-c C-l explicitly instead.
243 (sml-run): Look in cwd (but only if the command has slashes).
245 * sml-mode.el (sml-mode-abbrev-table): Remove (created by
246 define-derived-mode).
247 (sml-mode): Setup add-log's current-defun-function.
248 (sml-indent-line): Never indent to a negative level.
249 (sml-skip-siblings, sml-beginning-of-defun, sml-max-name-components)
250 (sml-current-fun-name): New funs and vars for add-log support.
251 (sml-comment-indent): Simplify.
252 (sml-def-skeleton): Also create the skeleton as an abbrev.
253 (skeletons): New for "struct", "sig", "val", "fn" and "fun".
254 (sml-electric-space): Rewrite to use abbrev's machinery.
256 * sml-defs.el (sml-mode-map): Merge with sml-bindings.
257 (sml-bindings): Remove.
259 2000-02-22 Stefan Monnier <monnier@cs.yale.edu>
261 * sml-mode.el (sml-find-matching-starter): Use syms instead of a RE.
262 (sml-indent-default): Use symbol membership rather than a regexp.
263 Also, use `sym-indent' instead of (current-column).
264 This fixes a problem with a hanging `structure Foo = (struct|let)'
265 (due to `structure' having a sml-indent-rule, as opposed to `fun').
266 Hopefully it won't introduce other problems.
267 (sml-font-lock-keywords): Match vars `val x : int' also.
268 (sml-electric-pipe): Update to the new `sml-find-matching-starter' and
269 return a sensible default instead of raising an error in case of
270 unexpected situations.
271 (sml-indent-line): Ignore errors and keep the cursor where it is.
272 (sml-calculate-indentation, sml-indent-pipe): Use syms instead of REs.
274 * sml-defs.el (sml-starters-re, sml-pipehead-re): Remove.
276 * testcases.sml: New file.
278 * makefile.pkg (test): New target to run the test suite.
280 2000-02-18 Stefan Monnier <monnier@cs.yale.edu>
282 * *.el: Pass through checkdoc and use `eval-when-compile' whenever
283 possible for (require 'cl).
285 2000-02-18 Stefan Monnier <monnier@cs.yale.edu>
287 * sml-util.el (make-temp-dir, make-temp-file, temp-file-dir)
288 (delete-temp-dirs): Replace by the make-temp-file from Emacs-21.
289 (custom-create-map): Add :group arg and allow key to be a list.
290 (define-major-mode): Remove (use define-derived-mode instead).
291 (sml-builtin-nested-comments-flag): New var.
294 * sml-proc.el (sml-host-name): New var.
295 (sml-make-file-name): Replace by `sml-compile-commands'.
296 (sml-config-file): New var.
297 (sml-compile-commands-alist): New var.
298 (inferior-sml-load-hook): Remove.
299 (sml-buffer): Query if the current buffer is not a *sml*.
300 (inferior-sml-mode): Use minor-mode-overriding-map-alist to disable
301 compilation-minor-mode's keybindings.
302 (run-sml): Turn into an alias for sml-run.
303 (sml-run): Query the user for the command. If prefix is set (or if
304 default value is not null) query for args and host.
305 Use `split-string' rather than our own function.
306 Run cmd on another host if requested and pass it an init file.
307 Pop to the buffer at the end.
308 (sml-args-to-list): Remove.
309 (sml-compile): Look for special files (sml-compile-command-alist) in
310 the current dir (and its parents) to choose a default command.
311 Remember the command for next time in the same buffer.
312 Make the `cd' explicit in the command so the user can change it.
313 (sml-make-error): Fix for when `endline' is absent.
315 * sml-mode.el: Pass it through checkdoc.
316 (sml-mode-version): Remove.
317 (sml-load-hook): Remove.
318 (sml-mode-info): Use `info' rather than `Info-goto-node'.
319 (sml-keywords-regexp): Add "o".
320 (sml-syntax-prop-table): Use `defsyntax'.
321 (sml-font-lock-syntactic-keywords): Only use nested comments if supported.
322 (sml-mode): Use `define-derived-mode'.
323 (sml-electric-pipe): `sml-indent-line' -> `indent-according-to-mode'.
324 (sml-indent-line): Use `indent-line-to'.
325 (sml-cm-mode): New mode for CM files.
329 * sml-mode-startup.el: Remove since it's now auto-generated.
331 * sml-defs.el (sml-bindings): Remove left over C-c` binding.
332 (sml-mode-map): Add binding for sml-drag-region (was in sml-proc.el).
333 (sml-mode-syntax-table): Only use nested comments if supported.
334 (sml-mode-menu): Use next-error rather than the old sml-next-error.
335 (sml-pipehead-re): Remove "of".
337 * sml-compat.el (set-keymap-parents): Make sure it also works when
338 called with a single keymap rather than a list.
339 (temporary-file-directory): Add a default definition for XEmacs.
340 (make-temp-file): New function.
342 1999-08-11 Stefan Monnier <monnier@cs.yale.edu>
344 * Release version 3.9.3.
346 * sml-mode.texi: Somewhat update the doc.
348 1999-08-09 Stefan Monnier <monnier@cs.yale.edu>
350 * Makefile: Update to the version of pcl-cvs.
352 * sml-proc.el: Eliminate some old unused code.
354 * sml-defs.el,sml-mode.el,sml-proc.el: Add simple customize support.
356 1999-07-07 Stefan Monnier <monnier@cs.yale.edu>
358 * sml-proc.el (sml-update-cursor): Make sure it also works if
359 compile.el is fixed to uses a marker.
361 * sml-mode.el (sml-indent): Fix the `fixindent'.
363 1999-06-22 Stefan Monnier <monnier@cs.yale.edu>
365 * sml-mode-startup.el: Fix to fulfill autoload.el assumptions.
367 1999-06-21 Stefan Monnier <monnier@cs.yale.edu>
369 * sml-defs.el (sml-bindings): Remove bindings for TAB and M-C-\.
371 1999-06-19 Stefan Monnier <monnier@cs.yale.edu>
373 * sml-mode.el (sml-font-lock-keywords): Skip type vars in "fun 'a myfn"
374 (sml-calculate-indentation): Add a hack to allow the user to manually
375 override the indentation algorithm with a magic comment.
377 * sml-mode-startup.el: Update the autoloads automatically.
379 1999-06-19 Stefan Monnier <monnier@cs.yale.edu>
381 * Release version 3.9.2
383 * sml-proc.el (sml-error-regexp-alist): Fix the pathological
384 font-locking on long lines.
386 * sml-move.el (sml-forward-sexp): Slightly improved.
388 1999-06-17 Stefan Monnier <monnier@cs.yale.edu>
390 * sml-mode.el (sml-insert-form): Only add a space if needed.
391 (sml-electric-space): New command bound to M-SPC.
393 * sml-defs.el (sml-close-paren): Add a second field that specifies when
394 not to delegate. Only used for `else'.
396 1999-06-16 Stefan Monnier <monnier@cs.yale.edu>
398 * sml-move.el (sml-(for|back)ward-sym): Distinguish between
399 operator "=" and syntax for definitions "d=".
401 * sml-defs.el (sml-indent-starters, sml-delegate): Simplify.
402 (sml-symbol-indent): Add outdentation for `fn' and generalize it to
403 also work for `of' and `in' and `end'.
405 * sml-mode.el (sml-nested-if-indent): Reintroduce as well as the
406 special casing code for it.
407 (sml-indent-relative): Generalize treatment of `of', `in', `end', ...
408 (sml-electric-pipe): Remove the slow behavior and add smarts for the
409 never-used type-variable arguments for function definitions.
411 1999-06-15 Stefan Monnier <monnier@cs.yale.edu>
413 * sml-defs.el (sml-mode-menu), sml-mode.el (sml-forms-menu):
414 Make the menu dynamically.
416 * sml-mode.el (sml-form-<foo>): Use skeletons.
417 (sml-calculate-indentation): Add `with' indentation.
419 1999-06-14 Stefan Monnier <monnier@cs.yale.edu>
421 * sml-move.el (sml-(for|back)ward-sym): Now also return the string
422 if any and take care of the "op" special keyword.
423 (sml-op-prec): Setup an alist for the infix operators.
425 * version 3.9.1: sent to Roland McGrath.
427 1999-06-13 Stefan Monnier <monnier@cs.yale.edu>
429 * sml-smlnj.el, sml-mosml.el, sml-poly-ml.el: Remove.
431 * sml-proc.el (...): Get rid of sml-next-error by spicing up the
432 interface with compile.el so that intervals can be displayed.
433 `sml-overlay' is kept (and moved from sml-mode to sml-proc where it
434 belongs) but is made redundant in the case of transient-mark-mode.
436 1999-06-12 Stefan Monnier <monnier@cs.yale.edu>
438 * sml-proc.el (sml-prompt-regexp): More general regexp to catch mosml,
439 smlnj as well as polyml prompts.
440 (sml-update-cursor, sml-send-command, inferior-sml-mode):
441 Make it work with compile.el's `next-error'.
442 (sml-temp-threshold): Drop: always use a temp file.
444 1999-06-10 Stefan Monnier <monnier@cs.yale.edu>
446 * sml-move.el (sml-op-prec): Update the list of default infix ops
447 based on sml/nj's source files.
449 1999-06-08 Stefan Monnier <monnier@cs.yale.edu>
451 * sml-proc.el (sml-run): Remove dubious code to take care of a
452 supposedly special case in order not to send "" when args=nil.
454 1999-06-07 Stefan Monnier <monnier@cs.yale.edu>
456 * sml-mode.el (sml-font-lock-syntactic-keywords): Add syntactic
457 fontification for the ' \"' case (exhibited by lexgen.sml).
459 1999-06-07 Stefan Monnier <monnier@cs.yale.edu>
461 * ALL: The new indentation begins to work. v3_9_0
463 1999-05-29 Stefan Monnier <monnier@cs.yale.edu>
465 * sml-defs.el (sml-mode-syntax-table): Add ~ of prefix-syntax.
467 * sml-mode.el (sml-find-match-indent): (nilp sml-type-of-indent) is
468 only applied if the `let' is alone at the end of the line.
469 (sml-type-of-indent): Default changed to `nil'.
471 1999-05-28 Stefan Monnier <monnier@cs.yale.edu>
473 * sml-mode.el (sml-font-lock-keywords): Change _ and ' back to word
474 syntax for font-locking.
476 1999-05-27 Stefan Monnier <monnier@cs.yale.edu>
478 * sml-mode.el (sml-font-lock-syntactic-keywords): Finally got the
479 matching of let...end working.
480 (sml-electric-pipe): Take a fun sexp (symbol) rather than a fun word.
482 1998-10-26 Stefan Monnier <monnier@cs.yale.edu>
484 * sml-mode.el (sml-font-lock-syntactic-keywords):
485 Add syntactic-keywords to support nested comments.