Apart from the things I mentioned to you on discord (fileout through FileWriter, etc)... another idea came into my mind that could be possibly interesting.
Every time a thing (Class, Method, ...) is created/changed/deleted, an event is announced in the system that you can watch for. (e.g. Nautilus uses this so when you add a method in one window, all Nautilus windows are updated).
And then you do an immediate fileout of the changed item to the disk.
a (hopefully still working) example:
```
ReflectiveWriter compile: 'methodChanged: aMethodAnnouncement
| method dir |
method := aMethodAnnouncement method.
dir := FileLocator temp / ''outside-code'' / method methodClass name.
dir ensureCreateDirectory.
(dir / method selector)
ensureDelete;
writeStreamDo: [ :stream |
"because line endings are #cr-azy by default"
stream wantsLineEndConversion: true.
stream << method sourceCode ]'.
```
I don't know how can Pharo watch for file changes in the system, but the opposite is also be doable in some manner.
(and of course you could filter to write changes only when the change is in particular class, or particular package, or whatever).
You would have to implement it yourself (extra time of coding, testing, debugging, ...), but in principle it should be doable within reasonable effort.
Peter