SCM Repository
Annotation of /sml/trunk/sml-mode/TODO
Parent Directory
|
Revision Log
Revision 332 - (view) (download)
1 : | monnier | 319 | -*- sml -*- |
2 : | |||
3 : | * make `end' align on `in' when possible | ||
4 : | |||
5 : | * if indentation is non-obvious, return a list of possible indentations | ||
6 : | and choose the first unless the current is one of the possible choices. | ||
7 : | |||
8 : | * M-| with datatypes gives "| => " instead of "| of " | ||
9 : | |||
10 : | * tab at end or beginning of buffer infinite-loop | ||
11 : | |||
12 : | * ignore warnings in C-c ` | ||
13 : | |||
14 : | * improve the run-sml to allow running on another machine and to take args | ||
15 : | |||
16 : | * C-c ` tends to switch to another window | ||
17 : | |||
18 : | * sample problematic indentations: | ||
19 : | |||
20 : | let fun toStringFKind {isrec,cconv,inline,...} = | ||
21 : | (if isSome isrec then "R" else "")^ | ||
22 : | (if cconv = F.CC_FCT then "FCT" else "FUN")^ | ||
23 : | (foo) | ||
24 : | |||
25 : | | toStringFKind = | ||
26 : | let fun cfun (fk,f,args,body) = let | ||
27 : | in (fk, f, args, loop body) | ||
28 : | end | ||
29 : | fun foo x = let | ||
30 : | monnier | 332 | val |
31 : | monnier | 319 | in |
32 : | monnier | 332 | |
33 : | let f | ||
34 : | in if 2 then | ||
35 : | ~3 | ||
36 : | else | ||
37 : | asdf | ||
38 : | end | ||
39 : | |||
40 : | ( | ||
41 : | if foo then 1 else 2; | ||
42 : | ()) | ||
43 : | monnier | 319 | end |
44 : | end | ||
45 : | | toStringFKind = | ||
46 : | let bla | ||
47 : | in foooooooooo; | ||
48 : | faaaaaaaaaaa | ||
49 : | end | ||
50 : | |||
51 : | |||
52 : | let bla | ||
53 : | in (fn toto => 1, | ||
54 : | fn tata => 2) | ||
55 : | end | ||
56 : | |||
57 : | let | ||
58 : | in clet1 (fn [nv] => (Conlv, nv, ndc), | ||
59 : | fn ([nv],nle) => F.CON(dcon, tycs, nv, lv, nle)) | ||
60 : | (lv,[v],le) | ||
61 : | end | ||
62 : | |||
63 : | let | ||
64 : | in a d | ||
65 : | awsdfg | ||
66 : | sadf | ||
67 : | (fn bla => | ||
68 : | gfsse | ||
69 : | | ss => | ||
70 : | asdf) | ||
71 : | end | ||
72 : | (* sadgasgf *) | ||
73 : | app (fn (fk,f,args,body as F.APP(F.VAR g,vs)) => | ||
74 : | if not C.escaping f | ||
75 : | orelse vs = (map (F.VAR o #1) args) andalso | ||
76 : | not (C.escaping g) | ||
77 : | then | ||
78 : | monnier | 332 | let val g = F.VAR g |
79 : | in substitute(f, val2sval g, g) | ||
80 : | end | ||
81 : | handle NotFound => | ||
82 : | addbind (f, Fun(f, body, args, fk, od)) | ||
83 : | monnier | 319 | else addbind (f, Fun(f, body, args, fk, od)) |
84 : | | (fk,f,args,body) => | ||
85 : | addbind (f, Fun(f, body, args, fk, od))) | ||
86 : | |||
87 : | monnier | 332 | (if 1 then 1 + 2 else if |
88 : | 1 then | ||
89 : | 1 | ||
90 : | + df | ||
91 : | monnier | 319 | else |
92 : | monnier | 332 | hell |
93 : | de | ||
94 : | der | ||
95 : | +1) | ||
96 : | monnier | 319 | |
97 : | case | ||
98 : | monnier | 332 | case a of |
99 : | 2 => | ||
100 : | 1 | ||
101 : | + 2 | ||
102 : | | => | ||
103 : | monnier | 319 | of 1 => |
104 : | sd | ||
105 : | | => |
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |