+2007-10-31 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * testcases.sml: Add (old) buggy case from Christopher Dutchyn.
+
+ * sml-proc.el (inferior-sml-font-lock-keywords): Don't add
+ error-regexps if compile.el already highlights them anyway.
+
+ * sml-mode.el (sml-font-lock-symbols-alist): Fix char for "not".
+
2007-10-31 Stefan Monnier <monnier@iro.umontreal.ca>
* sml-mode.el (sml-def-skeleton): If possible, only expand for
(cons "andalso" (decode-char 'ucs 8896))
(cons "orelse" (decode-char 'ucs 8897))
;; (cons "as" (decode-char 'ucs 8801))
- (cons "not" (decode-char 'ucs 160))
+ (cons "not" (decode-char 'ucs 172))
(cons "div" (decode-char 'ucs 247))
(cons "*" (decode-char 'ucs 215))
(cons "o" (decode-char 'ucs 9675))
;; font-lock support
(defconst inferior-sml-font-lock-keywords
`(;; prompt and following interactive command
+ ;; FIXME: Actually, this should already be taken care of by comint.
(,(concat "\\(" sml-prompt-regexp "\\)\\(.*\\)")
(1 font-lock-prompt-face)
(2 font-lock-command-face keep))
;; SML/NJ's irritating GC messages
("^GC #.*" . font-lock-comment-face)
;; error messages
- ,@(mapcar (lambda (ra) (cons (car ra) 'font-lock-warning-face))
- sml-error-regexp-alist))
+ ,@(unless (fboundp 'compilation-fake-loc)
+ (mapcar (lambda (ra) (cons (car ra) 'font-lock-warning-face))
+ sml-error-regexp-alist)))
"Font-locking specification for inferior SML mode.")
(defface font-lock-prompt-face
-(* Copyright 1999, 2004 Stefan Monnier <monnier@gnu.org> *)
+(* Copyright 1999, 2004, 2007 Stefan Monnier <monnier@gnu.org> *)
(let val a = 1 val b = 2
val c = 3
in 1
end);
+(* From "Christopher Dutchyn" <cdutchyn@cs.ubc.ca> *)
+(case foo of
+ (* FIXME: The line gets unindented by 2 every time you hit TAB :-( *)
+ | BAR => baz)
+
(* sml-mode here treats the second `=' as an equal op because it assumes
* that the first is the definitional equal for the structure. FIXME! *)
functor foo (structure s : S) where type t = s.t =