~ubuntu-branches/ubuntu/oneiric/ess/oneiric

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Hello again

Its a while since I contacted you, but I have got somewhere. I'm still working 
on the version of noweb-mode.el that is distributed with noweb itself, but I'm 
getting places. I've made it more reliable: moving text used to confuse it 
horribly, but it shouldn't any more. And although I couldn't reproduce those 
`hot icons' in your noweb-mode, I used the << and >> of the chunk name to do 
the same job.

I've also got tangling sorted. Well, it works for me. I haven't tested the 
line numbering and tab-resetting options yet, but I can tangle chunks and 
scraps (which I, recidivist that I am, refer to as threads: I can't help 
thinking that a web woven from threads will be prettier than one woven from 
scraps). Unfortunately, I couldn't see a reasonable way of breaking this out 
of the noweb-mode package. So my tangling won't work with your noweb-mode, 
you'll have to use mine. At least until you can incorporate the relevant 
functions into yours.

I've also got the beginnings of an ess-noweb.el. For example, `ess-eval-chunk' 
 simply runs `ess-eval-buffer' on the buffer that the chunk was tangled into. 
I've been using it successfully for about a week now, although not for 
anything particularly fancy. It adds the tangling options to the ESS menus, 
but only makes them active if noweb-mode is active.

Here are the three relevant files (noweb-mode.el, noweb-font-lock-mode.el and 
ess-noweb.el). Give them a spin and see what you think.

Wait up, you need my ess-site.el as well, cos that's were the menus are 
defined.


Mark

P.S.

Incidentally, you mentioned that you were keen on version control, and 
preferred CVS to RCS. I'm trying to sort out version control on my stuff here 
at the moment, but was not convinced at all by CVS: it does far too many 
things that are not needed by a statistician. All the multiple developer stuff 
should be superfluous for tracking data: one person should be responsible for 
managing the file at any given time. So I'm going with a bare minimum 
approach: RCS, and shell scripts to hide most of the options. Just check 
things in, with automatic checking out so that the programs can always find 
the data they need, snapshots, and restoring. All done with symbolic links, so 
that the same files can be in several projects at the same time (RCS handles 
symbolic links ABOMINABLY, but the shell scripts can get around this.) My 
theory is that if the system is sufficiently simple, people *might* use it, 
but anything that requires too much thought will be a non-starter. What 
draw-backs do you see in this way of doing things ? Why would you do it 
differently ?