169 |
(defconst sml-indent-rule |
(defconst sml-indent-rule |
170 |
(sml-preproc-alist |
(sml-preproc-alist |
171 |
`(("struct" . 0) |
`(("struct" . 0) |
172 |
(,sml-module-head-syms . ("d=" 0)) |
(,sml-module-head-syms "d=" 0) |
173 |
("local" . ("in" 0)) |
("local" "in" 0) |
174 |
;;("of" . (3 nil)) |
;;("of" . (3 nil)) |
175 |
;;("else" . (sml-indent-level 0)) |
;;("else" . (sml-indent-level 0)) |
176 |
;;(("in" "fun" "and" "of") . (sml-indent-level nil)) |
;;(("in" "fun" "and" "of") . (sml-indent-level nil)) |
177 |
(,sml-=-starter-syms . (nil)) |
("if" "else" 0) |
178 |
|
(,sml-=-starter-syms nil) |
179 |
(("abstype" "case" "datatype" "if" "then" "else" "sharing" "infix" "infixr" |
(("abstype" "case" "datatype" "if" "then" "else" "sharing" "infix" "infixr" |
180 |
"let" "local" "nonfix" "open" "raise" "sig" "struct" "type" "val" "while" |
"let" "local" "nonfix" "open" "raise" "sig" "struct" "type" "val" "while" |
181 |
"do" "with" "withtype")))) |
"do" "with" "withtype")))) |
204 |
"Symbols that should behave somewhat like opening parens.") |
"Symbols that should behave somewhat like opening parens.") |
205 |
|
|
206 |
(defconst sml-close-paren |
(defconst sml-close-paren |
207 |
`(("in" . "\\<l\\(ocal\\|et\\)\\>") |
`(("in" "\\<l\\(ocal\\|et\\)\\>") |
208 |
("with" . "\\<abstype\\>") |
("with" "\\<abstype\\>") |
209 |
("withtype" . "\\<\\(abs\\|data\\)type\\>") |
("withtype" "\\<\\(abs\\|data\\)type\\>") |
210 |
("end" . ,sml-begin-symbols-re) |
("end" ,sml-begin-symbols-re) |
211 |
("then" . "\\<if\\>") |
("then" "\\<if\\>") |
212 |
("else" . "\\<if\\>") |
("else" "\\<if\\>" (sml-bolp)) |
213 |
("of" . "\\<case\\>") |
("of" "\\<case\\>") |
214 |
("d=" . nil)) |
("d=" nil)) |
215 |
"Symbols that should behave somewhat like close parens.") |
"Symbols that should behave somewhat like close parens.") |
216 |
|
|
217 |
(defconst sml-agglomerate-re "\\<else[ \t]+if\\>" |
(defconst sml-agglomerate-re "\\<else[ \t]+if\\>" |