kakoune/TODO
2013-11-13 23:51:15 +00:00

130 lines
3.5 KiB
Plaintext

* Improve unicode text edition
- support reading/writing non utf8 encoded files
- more robust utf8 implementation
- support multi column chars
- right-to-left, bidirectional text
* Mouse support
* Crash recovery support (swap files)
* Sanitize prompt history handling, hooks should not have side effects
on history
* improve highlighters
- folding support
- Support defining and reusing highlighters
. defhl -> add hl to a global group +
'addhl ref ...' references a highlighter in the global group
. Conditional ref highlighter (use php highlighter in <?php > blocks,
use html highlighter outside
- other types of highlighters (like for correctly supporting nesting,
which regex are bad at), faster as well.
* improve info boxes
- More automatic hiding behaviour
* improve insert completion
- Detect when the following text is matching the inserted completion
- Support different options
(setb completers word,option=cpp_completions,option=spell_completions)
- Support multiple completion points
(1.1@0:comp1:comp2:comp3:1.5@0:comp1:comp2:comp3)
- smarter behaviour to keep completion available longer
. keep per line timestamps
. update completion options when lines are added/deleted
* spelling support
* allow colalias to reference another colalias
* investigate 'kakdiff'
* Tree based undo
* more sane command line parsing, better shell interaction with quoting
- Real parsing of the command line ?
* configurable evaluated (%sh{...}) strings ? use an option to define
the interpreters, regex for finding used kak variables (ability to
add direct python/perl/ruby/whatever evaluation).
* %rec{...%opt{tchou}...%sh{echo kanaky}} ~= "...${kak_opt_tchou}...$(echo kanaky)..."
* Optimize BufferModificationListener behaviour:
- Editor should modify in reverse order, as a modification at one point does not
impact the position of selections before it, so applying modification in reverse
order removes the needs to have selection updated on the fly, and permit deferred
update.
- Accumulate all the modifications and update the selections with the
whole knowledge -> try to remove this O(n2) behaviour.
* User defined text objects
* multiple parameters support for normal mode commands ?
- 10,20g -> goto line 10, column 20
- 1,2,3<a-space> remove selections 1, 2 and 3
* Make kakoune self-documenting
- Add doc strings to commands, display them in info boxes when entering command
- Add doc strings to options as well
- Generate documentation from Kakoune source
. Write asciidoc from internal documentation
. make doc compiles kakoune, and run doc generation:
+./kak -help commands > ../doc/commands.asciidoc+
with README.asciidoc including commands ?
* Handle command lines larger than window
* Support disabling hooks executions in :exec and :eval
* Rewrite keymap support using options ? (map window insert a b -> set -add window insert_keymap a:b)
* Change set command to use '=' ?
- set window tchou=kanaky
- set window tchou+=kanaky
* support for :cnext :cprev
- save the current error line in a buffer option
- highlight the current error line (only it's bg)
- find next error from the line
* Fix 'n' command with inverted selection
* basic shell completion (complete commands from $PATH, then complete filenames)
* align to a specified selection (rather than le rightmost one) so that closing
curly braces can easily be made to align with their opening one.