152 lines
5.2 KiB
Plaintext
152 lines
5.2 KiB
Plaintext
2009/04/09:
|
|
|
|
Fix the kludge that is completer initialization. Make application a global? Try
|
|
to make bufferlist nicer. Add support for vim/emacs mode-setting stuff. Fix
|
|
map_point, and refactor draw_cursor, draw_slot, etc. so that they all use it
|
|
(thus ending once and for all these goddamn cursor-sync bugs). ARGH!
|
|
|
|
Try to create a buffer abstraction so that things like BinaryBuffer, AESBuffer,
|
|
MboxBuffer, etc, etc don't need special open commands (e.g. you can open a
|
|
buffer, switch it into hex mode, then switch it into AES mode, and have what
|
|
you'd "want" to happen). Maybe this means BufferViews or something?
|
|
|
|
2009/04/06:
|
|
|
|
Think about what to do with IPerl/IPython.
|
|
|
|
2009/04/04:
|
|
|
|
Rename tokens so that they follow the "c.identifier" "c.delimiter" etc.
|
|
convention. This will help nested grammars work properly, and will also allow
|
|
default coloring (with overrides) to work correctly.
|
|
|
|
Once tokens are namespaced by mode, try to reduce the number of "leaf names"
|
|
(e.g. identifier, keyword, builtin, etc)
|
|
|
|
Think about replacing the 'context' module with something tied into the lexing
|
|
strategy. If not, then try to at least generalize it more.
|
|
|
|
Try to create some more toggles on the indentation package, to make it at least
|
|
a little bit configurable.
|
|
|
|
Move some "global methods" which use particular modes into those modes' files.
|
|
Also, try to combine some modes that are always intended to be used together
|
|
(for instace, python/ipython, perl/iperl, */*mini, etc)
|
|
|
|
2009/03/27:
|
|
|
|
1. Create a Method attribute meaning should-appear-in-help-buffers. Use this to
|
|
hide actions that only make sense when the mini-buffer is open, as well as weird
|
|
actions like "text-insert-space"
|
|
|
|
2. Create a way to figure out what actions are legal in the various mini-buffer
|
|
modes (search, replace, whatever).
|
|
|
|
3. Maybe write a per-mode "how to use this mode" document that can be accessed
|
|
in a uniform way. This way, various non-discoverable features can be documented.
|
|
|
|
2009/02/15:
|
|
|
|
Remove $MODE.lib in favor of $MODE.libs[]
|
|
|
|
Also, try generalize things like documentation lookup, syntax highlighting, etc,
|
|
more than they are to reduce the size of modes (see python and perl for the most
|
|
obvious examples). Other modes will probably benefit from this.
|
|
|
|
Now that comment-region uses commentc, make it able to work with languages who
|
|
use /*...*/ type commenting, rather than just //...\n type commenting.
|
|
|
|
2009/02/05:
|
|
|
|
Create some more rules for lexing that will help things like XML be more
|
|
efficient.
|
|
|
|
2009/01/28:
|
|
|
|
Move modes into buffers and out of windows. This should reduce the memory
|
|
footprint a little bit, as well as fixing some weird bugs and making some
|
|
interfaces more consistent.
|
|
|
|
2008/09/21:
|
|
|
|
Tab completion, paren matching, and scope detection should be done by one module
|
|
(eventually, lexing should also, but for now having two isn't so bad).
|
|
|
|
Also, all modules need to parse whitespace out rather than just having the null
|
|
rule pick it up.
|
|
|
|
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.
|
|
AMENDED (2009/04/02): since there is now a higher-level parser that can run,
|
|
this might not be as simple.
|