Commit Graph

265 Commits

Author SHA1 Message Date
Maxime Coste
11d606f79e {Filter,Highlighter}Registry: more infos on factory not found 2011-12-02 19:00:01 +00:00
Maxime Coste
0b4ed2280f Buffer: call BufCreate hook on construction 2011-12-02 18:59:18 +00:00
Maxime Coste
8e39edc567 DynamicBufferIterator: fix end of buffer corner case 2011-12-02 18:57:18 +00:00
Maxime Coste
b1daf8de16 Selectors: fix select_line on the last line 2011-12-02 18:56:18 +00:00
Maxime Coste
94d59cc4dd Buffer: add filter support
filters are functions called prior to applying a modification
to a buffer. They can manipulate the modification to change
the editor behaviour.
2011-12-02 14:28:27 +00:00
Maxime Coste
8e06e168d9 HighlighterRegistry: use idvaluemap to store factories 2011-12-02 14:22:51 +00:00
Maxime Coste
4252e0d610 Window: use an idvaluemap to store highlighters 2011-12-02 14:20:11 +00:00
Maxime Coste
a5a726d291 Add idvaluemap container
it is a vector based map, preserving insertion order and providing
completion on ids it contains.
2011-12-02 14:18:31 +00:00
Maxime Coste
934e62b502 stop clearing selections all the time 2011-11-30 14:18:54 +00:00
Maxime Coste
d8dd782960 Highlighters: style fix 2011-11-30 14:11:53 +00:00
Maxime Coste
0b48525b35 Window: do not stay on an eol when clearing selections 2011-11-29 22:48:00 +00:00
Maxime Coste
0859b20bcf Rename Filter to Highlighter to be more explicit 2011-11-29 22:37:20 +00:00
Maxime Coste
e89516f2a3 IncrementalInserter: refactoring 2011-11-29 21:35:50 +00:00
Maxime Coste
b24dec89a2 Buffer: add iterator_at_line_{begin,end} methods 2011-11-28 19:31:29 +00:00
Maxime Coste
51ee0b61f4 DynamicBufferIterator: use const_cast instead of having a mutable field in Buffer 2011-11-28 18:55:17 +00:00
Maxime Coste
46a01b5a0b Debug: stop writing key codes to debug buffer and cleanups 2011-11-28 18:52:29 +00:00
Maxime Coste
dc642f8afa Buffer: refactor to remove do_{insert,erase} methods 2011-11-27 18:41:25 +00:00
Maxime Coste
08ba791ff4 Add a kakrc file which automatically enables hlcpp on c/c++ files 2011-11-27 13:02:50 +00:00
Maxime Coste
70e0393c4d Add a source command to execute commands from file
a kakrc file in current directory is sourced automatically
at start
2011-11-27 12:59:59 +00:00
Maxime Coste
de19aeb035 File: extract read_file function which returns file content in a string 2011-11-27 12:56:38 +00:00
Maxime Coste
b59a0816b9 Add wq and wq! commands 2011-11-26 19:11:24 +00:00
Maxime Coste
e36153f035 CommandManager: fix complete and style tweak 2011-11-26 19:05:49 +00:00
Maxime Coste
a00961da99 Add hook command 2011-11-26 18:41:55 +00:00
Maxime Coste
dd2896ecc8 Window: call WinCreate hook on creation 2011-11-26 18:39:59 +00:00
Maxime Coste
9c117a821c Filters: fix colorize_regex_range when range is not visible 2011-11-26 18:34:49 +00:00
Maxime Coste
68f3d24199 HooksManager: replace HookContext with Context 2011-11-26 18:34:10 +00:00
Maxime Coste
957446dee4 Add a Context parameter to commands 2011-11-26 18:32:57 +00:00
Maxime Coste
417802cbdf CommandManager: argument splitting supports "multi word"
works with " and '
2011-11-26 17:20:02 +00:00
Maxime Coste
9775958012 Add a HooksManager class 2011-11-25 14:26:29 +00:00
Maxime Coste
9a4d8d5f4d Filters: tweak colorize_cplusplus 2011-11-24 19:13:58 +00:00
Maxime Coste
dcfb5e15f2 SelectionHighlighter: highlight end of lines in selection 2011-11-24 19:13:38 +00:00
Maxime Coste
ea2aeea3a4 Filters: generalize colorize_regex in colorize_regex_range 2011-11-24 19:11:58 +00:00
Maxime Coste
2549a63c0b Selectors: fix corner cases on first/last buffer char 2011-11-24 18:46:35 +00:00
Maxime Coste
30b4fb6513 Buffer: fix handling of last eol 2011-11-24 14:23:41 +00:00
Maxime Coste
7b09b34cab Selectors: fix select_whole_lines 2011-11-22 18:58:05 +00:00
Maxime Coste
d27aaab066 use alt-x instead of , to select whole lines 2011-11-22 14:31:20 +00:00
Maxime Coste
a1200aacad Add alt-j command to join lines 2011-11-22 14:24:50 +00:00
Maxime Coste
95f87a6694 Window: add replace method
permits to replace selection by a string in a single undo step
2011-11-22 14:23:46 +00:00
Maxime Coste
a7309fbe87 IncrementalInserter: fix erase 2011-11-21 22:18:00 +00:00
Maxime Coste
7861ad9ddb Selectors: add split_selection bound to Alt-s 2011-11-21 19:30:44 +00:00
Maxime Coste
b67c36358d Extract RegexSelector methods as plain selectors 2011-11-21 19:08:51 +00:00
Maxime Coste
2677fa7961 Add , to fully selects lines selection is on. 2011-11-21 18:53:22 +00:00
Maxime Coste
a1a57ea137 DisplayBuffer: fix DisplayAtom::iterator_at 2011-11-16 21:03:32 +00:00
Maxime Coste
bef193ae54 RegexSelector: support captures 2011-11-16 20:05:29 +00:00
Maxime Coste
18913cfbff IncrementalInserter: add insert_capture method bound to ^B<num> 2011-11-16 19:24:37 +00:00
Maxime Coste
52b8abfe02 Selections: add captures field
Selections now can have associated captures, for backreferences when
selections are created from a regex search
2011-11-16 19:23:09 +00:00
Maxime Coste
b1e815a66c RegexSelector: support multi selections, bound to s key 2011-11-16 14:06:01 +00:00
Maxime Coste
0203b904e1 Window: add multi_select method
multi_select provides Selection -> SelectionList operations
2011-11-16 14:04:45 +00:00
Maxime Coste
7423677236 Filters: cleanup trailing whitespaces
detected with ':addfilter regex \h+\n default red' !
2011-11-15 14:28:03 +00:00
Maxime Coste
d1868e8f07 ncurses: set ESCDELAY to 25 so that esc key lag is less noticeable 2011-11-15 14:26:28 +00:00
Maxime Coste
a3b5c74512 remove unused code 2011-11-14 14:27:33 +00:00
Maxime Coste
031fa1a25c Filters: colorize_regex supports matches spanning multiple display atoms 2011-11-14 14:23:02 +00:00
Maxime Coste
d2b9cd6e60 DisplayBuffer: split now preserve iterator parameter
that means that the given iterator points to the first part of the
split (instead of the second in previous implementation).
2011-11-14 14:10:11 +00:00
Maxime Coste
0dc8442ca4 Completions: add filterid completion for rmfilter 2011-11-12 14:15:35 +00:00
Maxime Coste
a8b2c4f568 Completions: add basic addfilter completion 2011-11-12 14:08:05 +00:00
Maxime Coste
f5ad32f137 Completion: decentralise, move buffer name completion to BufferManager 2011-11-12 14:06:49 +00:00
Maxime Coste
82baa55eed Completions: change NullCompletion functor to complete_nothing function 2011-11-10 20:57:25 +00:00
Maxime Coste
56231b4239 Filters: make colorize_regex accessible through addfilter 2011-11-10 14:28:38 +00:00
Maxime Coste
f12929abad Filters: refactoring 2011-11-09 23:56:22 +00:00
Maxime Coste
5aeee719dd fix launching on new file 2011-11-09 14:17:46 +00:00
Maxime Coste
55c092eed9 Filters: code cleanup 2011-11-09 14:06:05 +00:00
Maxime Coste
3af1b89034 Window: support adding and removing filters with :addfilter :rmfilter 2011-11-08 14:29:52 +00:00
Maxime Coste
1f3f5ea1ba Filters: register existing filters with the registry 2011-11-08 14:28:01 +00:00
Maxime Coste
e4ff1d8ad8 Add a filter registry class 2011-11-08 14:27:21 +00:00
Maxime Coste
0ddb6df80d IncrementalInserter: move cursor left when finishing 2011-11-04 14:15:35 +00:00
Maxime Coste
46e727d5b6 Filters: tweak colorize_cplusplus 2011-11-04 09:10:28 +00:00
Maxime Coste
cebb7980cb Buffer: tweak default content 2011-11-04 09:10:05 +00:00
Maxime Coste
9cf7cb682c Buffer: fix modified handling 2011-11-03 13:44:02 +00:00
Maxime Coste
4982620c4c IncrementalInserter: support insert at line begin and append at line end 2011-11-02 20:03:41 +00:00
Maxime Coste
856a870d8b fix not existing lines drawing 2011-11-02 14:22:20 +00:00
Maxime Coste
fbe8eed3e4 Selectors: select_line selects next line when cursor is on eol 2011-10-27 18:57:31 +00:00
Maxime Coste
0e18db5a88 lines and columns used for user interaction are 1-indexed 2011-10-27 14:27:39 +00:00
Maxime Coste
55cd4949e0 Selection: more intelligent merging 2011-10-27 14:22:17 +00:00
Maxime Coste
62482b65ec rename buffer_iterator.inl.h to buffer_iterator.inl.hh 2011-10-27 14:13:39 +00:00
Maxime Coste
5bd61a3f38 Filters: correct select_to_previous_WORD 2011-10-27 14:09:57 +00:00
Maxime Coste
c532f031d2 Filters: tweak colorize_cpluscplus 2011-10-26 14:29:04 +00:00
Maxime Coste
b58694939c bind alt-[lLhH] to select_to_eol(_reverse)? 2011-10-26 14:22:48 +00:00
Maxime Coste
5d5e76a3eb change select_line binding from . to x 2011-10-26 14:18:43 +00:00
Maxime Coste
2c8f3229c0 Selectors: add selectors for WORDs
WORDs are the same as vim's ones, i.e. a group of contiguous non blank
characters. They are bound as alt + word selector key.
2011-10-25 18:46:14 +00:00
Maxime Coste
97a279e229 add alt-key binding support
bind alt-[tTfF] to backward version of [tTfF]
2011-10-25 14:28:20 +00:00
Maxime Coste
57b55a5824 DisplayBuffer: deactivate too expensive check 2011-10-24 19:27:36 +00:00
Maxime Coste
d2c6ceb47b DynamicBufferIterator: add and use in Selections
DynamicBufferIterator are a new type of BufferIterators that
automatically update themselves when their buffer is modified.

Selections now uses this type of iterators instead of plain ones
2011-10-24 14:26:21 +00:00
Maxime Coste
bace526fa3 Buffer: not copyable, add destructor 2011-10-24 14:23:13 +00:00
Maxime Coste
12d933d896 Filters: rewrote colorize_regex 2011-10-23 20:26:51 +00:00
Maxime Coste
fffa405bfd DisplayBuffer: overload atom_containing with a version taking an iterator to search start 2011-10-23 20:26:30 +00:00
Maxime Coste
ad6ee464f4 style tweak 2011-10-19 18:54:20 +00:00
Maxime Coste
712577b88e CommandManager: fix completion of empty tokens 2011-10-19 18:50:28 +00:00
Maxime Coste
d7f934b7ca Buffer: iterator_at prevents getting iterators on end of line 2011-10-19 14:25:13 +00:00
Maxime Coste
7e2f7f6715 IncrementalInserter: fix OpenLineBelow 2011-10-18 14:13:19 +00:00
Maxime Coste
32e01947fa DisplayBuffer: store atoms in a std::list instead of a vector 2011-10-18 13:59:32 +00:00
Maxime Coste
6fd7f97fa7 Window: fix status_line cursor position 2011-10-18 13:49:10 +00:00
Maxime Coste
c7876f0ba3 DisplayBuffer: remove some check_invariant, overhead is too noticeable 2011-10-18 00:56:18 +00:00
Maxime Coste
8cab34d57f Buffer: add support for modification listeners 2011-10-18 00:55:45 +00:00
Maxime Coste
d48a2bd325 BufferIterator: move methods implementation to buffer_iterator.inl.h 2011-10-17 22:05:06 +00:00
Maxime Coste
1c6eef08f1 utils: add contains function 2011-10-17 21:05:22 +00:00
Maxime Coste
316e84f119 Filters: add a show line numbers filter 2011-10-17 19:01:36 +00:00
Maxime Coste
2badb9d708 DisplayAtom: add splittable methode 2011-10-17 19:01:04 +00:00
Maxime Coste
79ee27dae7 DisplayBuffer: deinline insert method and add atom_containing method 2011-10-17 19:00:38 +00:00
Maxime Coste
88e31d8cce DisplayBuffer: allow empty atoms, with begin == end 2011-10-17 18:59:35 +00:00
Maxime Coste
53ce1e016a Buffer: move struct Modification out of class, as BufferModification 2011-10-17 14:12:15 +00:00