summaryrefslogtreecommitdiff
path: root/TODO
blob: bb55e54f4787d453ac5bccea181d472f999feb63 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
* 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

* improve info boxes

  - Move info handling to client

    . remove direct ui access from context

    . Add support for 'transient' info, displayed for a certain
      amount of time

* improve insert completion

  - Detect when the following text is matching the inserted completion

  - 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

* investigate 'kakdiff'

* Tree based undo

* configurable evaluated (%sh{...}) strings ? use an option to define
  the interpreters.

* 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

  - Display option docstring

  - 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 ?

* Rewrite keymap support using options ? (map window insert a b -> set -add window insert_keymap a:b)

* Comments and strings should be more integrated than just highlighting, matching chars
  for example should be strings and comments aware

* %val{opt_.*} == %opt{.*}, %val{reg_.*} == %reg{.*}, it might make sense to remove the %opt and %reg