pmacs3/IDEAS

140 lines
4.6 KiB
Plaintext
Raw Normal View History

2009-04-06 02:25:00 -04:00
2009/04/06:
2009-04-07 00:34:26 -04:00
Think about what to do with IPerl/IPython.
2009-04-06 02:25:00 -04:00
2009-04-04 01:41:59 -04:00
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.
2009-04-07 00:34:26 -04:00
Once tokens are namespaced by mode, try to reduce the number of "leaf names"
(e.g. identifier, keyword, builtin, etc)
2009-04-04 01:41:59 -04:00
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.
2009-04-04 12:27:19 -04:00
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 12:30:37 -05:00
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 10:47:20 -05:00
2009/02/05:
Create some more rules for lexing that will help things like XML be more
efficient.
2009-01-28 16:28:33 -05:00
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.
2009-01-28 16:28:33 -05:00
2008-09-21 01:47:18 -04:00
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-26 23:57:09 -04:00
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!
2008-06-06 09:11:46 -04:00
(mostly done!)
2008-05-26 23:57:09 -04:00
2008-05-11 23:37:57 -04:00
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:
2008-05-04 13:13:03 -04:00
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 18:01:47 -04:00
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.
2007-10-21 23:52:28 -04:00
AMENDED (2007/10/21): we should probably just store the entire mode in the
buffer, rather than storing all this junk piecemeal.
2007-07-18 07:22:12 -04:00
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-18 07:22:12 -04:00
2007/07/15:
2007-07-15 15:11:54 -04:00
Vertical split would be awesome. Also, need more fine-grained controls for
even horizontally split windows.
2007-07-11 06:34:22 -04:00
2007-07-15 15:11:54 -04:00
2007/07/15:
2007-07-14 10:21:22 -04:00
2007-07-15 15:11:54 -04:00
Rename "lexing" to "parsing" since really we have moved way beyond a simple
lexing/tokenization strategy.
2009-04-03 11:20:28 -04:00
AMENDED (2009/04/02): since there is now a higher-level parser that can run,
this might not be as simple.