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