Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
First, read:
http://haskell.org/haskellwiki/Yi
Refactorings/Frameworks:
- ui type class
- hot swappable user interfaces
Emacs modes:
- should always show the modeline (or minibuffer)
Vim mode:
- undo interferes with :w :q
- empty tmp files don't complain when you try to write them.
- 0 in vim mode is ignored.
- tab completion.
- flavours of s///
- visual mode
- visual line mode
- range syntax, including '<,'> for beginning and end of visual mode.
- performance issue on very long lines. (C fragment?)
- path names not expanded in :e
- :!cmd , run an external command not implemented
- deal with delay after hitting esc from command mode.
- undo should coalesce so that dl is undone all at once.
Darcs support:
- what interesting things can we do with integrated darcs
support?
Undo:
- overwrite is not properly supported
- emacs-style undo
- other forms of undo
Build system:
- check how to install it from a port script
- think about how to do a testsuite, unit testing
+ icfp05/stefanw-style
Presentation/Rendering:
- windows need to be wrap or nowrap.
other stuff:
- compilation errors from make() go to stderr (and screw up the
window).
- the unChanged test doesn't seem to be accurate. what's up with
that?
- :eval, :type, .. etc. ghci stuff
- make the cmd line a buffer.
- start drawing buffer before it is all loaded. (ie. load buffers lazily)
- either generalise registers, or make them entirely keymap-local
- errorE should display in colour
- closing window and terminating on OSX produces infinite loop?
------------------------------------------------------------------------
Syntax Highlighting -- Ideas parallel to the current one:
- run a parser in background thread (of Parser class), producing a syn tree
- abstract syn representation
- produces syntax colouring ppr (not general ppr)
- hints for layout (on \n, for example)
- so we're mostly direct editing, and updating the syn tree
where possible.
- so how to take a syn tree and flatten it to produce a drawable buffer?
- can we deparse it directly?
- or can we consult the abs syn tree, as we draw each buffer line?
- walk the parse tree, drawing chars from the buffer in
the colour specified by the tree.
- need correct position information in syn tree, to colour
tokens. comments aren't stored in the syn tree, so how do we
colour them?
* Centaur records comments in the lexer, with their locations.
Then using location information in the syntree, hook
comments back in.
- what about comments?
- record the comments, with their positions, in the lexer.
- re-splice comments back into the parse tree.
- set of token classes?
- need multiple entry points to the parser, to reparse subexpressions?
- ==> Centaur (for ML) has a good system.
ftp://ftp.inria.fr/INRIA/publication/publi-pdf/RR/part3/RR-3139.pdf
- alredy available in Happy parser for GHC, via the %name
directive, for:
- parseModule module
- parseStmt maybe_stmt
- parseIdentifier identifier
- parseIface iface
- parseType ctype
- can keep track of points to start reparsing from. see
vim:syntax.c- syntax state stack cache
- need to map tokens to attributes.
- good overview to structure editors
http://www.cs.uu.nl/research/projects/proxima/
------------------------------------------------------------------------
regexes:
- how do we handle all the different editors regex languages?
- do they have to compile down to a core regex language,
before calling searchE?