2008/05/23: Buffers should run in their own threads and/or processes and communicate with the main program through a series of locks and/or IPC calls. This will allow two different useful features: (1) user navigation while reparsing, (2) buffers representing pipes/sockets (e.g. shells, chat clients, tail -f, etc.) solving (2) with asyncore or other non-blocking IO would work, but (1) almost certainly requires seperate processes or threads. 2008/05/23: Semantic tab-completion via iperl/ipython buffers... after syntax check, the file will be read into an interactive buffer, which can then be hooked into in order to support tab completion! (mostly done!) 2008/05/11: perl/python "open-module-by-name" command (auto-completing?). python view help(time)-style documentation in buffer convert console to user colorbuffer tech step out of minibuffer support click on completion support 2008/05/03: use a error-buffer (pop up?) for reporting various errors. 2008/04/02: fix read-only warnings to seem less junky (e.g. catch the buffer.ReadOnlyError exception and write a graceful message everywhere applicable). 2008/03/18: finish arg documentation and review method documentation 2008/03/16: pdb/gdb/perldb buffer integration error/stack-trace buffer 2007/10/20: Tags for matching should be allowed to be multi-character, and should be a list of data/type pairs (rather than several lists). 2007/08/11: Instead of storing method state in the method objects (for mode callback stuff), we should probably store it in the buffer. AMENDED (2007/10/21): we should probably just store the entire mode in the buffer, rather than storing all this junk piecemeal. 2007/07/17: It would be nice to be able to toggle various lexing rules on/off, so that for instance text mode could make spell checking optional, or optionally highlight URLs/emails/etc. AMENDED (2008/03/20): in the case of spell-checking and other non-standard rules, we can do this with state variables in the mode. 2007/07/15: Vertical split would be awesome. Also, need more fine-grained controls for even horizontally split windows. 2007/07/15: Rename "lexing" to "parsing" since really we have moved way beyond a simple lexing/tokenization strategy.