Maxime Coste
333e87dedd
add a Register class, registers can now contain a list of string
...
That way, registers can be used to store per selection data
2012-02-07 23:01:02 +00:00
Maxime Coste
9b5e9ffee2
selectors now take a Selection as parameter instead of a BufferIterator
2012-02-07 14:26:51 +00:00
Maxime Coste
1e5d930f35
extract exec_keys function from exec_string
2012-02-07 13:35:41 +00:00
Maxime Coste
0483e951ad
use memoryview instead of std::vector where applicable
2012-02-03 19:14:35 +00:00
Maxime Coste
96b167859a
batches support in Editor, used by IncrementalInserter and exec_string
...
Editor groups all modification together in one undo group when batching.
nested batches are supported.
2012-02-03 13:55:22 +00:00
Maxime Coste
96101b4392
Use an Editor instead of a Window as much as possible
2012-02-02 20:48:03 +00:00
Maxime Coste
69d96c90da
extract an Editor class from Window and refactor
2012-01-31 19:12:06 +00:00
Maxime Coste
3ef9895a97
Buffer: support creation of temporary windows to apply commands when no windows are in context
2012-01-31 14:03:10 +00:00
Maxime Coste
830d96f7a1
Buffer: add NewFile buffer type for buffer with an non existing yet file
2012-01-31 14:01:48 +00:00
Maxime Coste
73a8950e73
File: parse_filename function which handle ~ and environment variable in filenames
2012-01-29 22:24:43 +00:00
Maxime Coste
589b8e68bb
history support in prompt
2012-01-25 22:32:17 +00:00
Maxime Coste
6411193f10
SelectionHighlighter: reverse color of the last char of each selection
...
the terminal cursor is now longer shown
2012-01-25 20:22:33 +00:00
Maxime Coste
d1c29d2b78
moving no longer clears multiple selections
2012-01-25 14:23:02 +00:00
Maxime Coste
81138b224f
fix line break support in insert_char
2012-01-24 23:19:26 +00:00
Maxime Coste
381d884c16
use a settable get_key function to be able to override key reading
2012-01-24 23:18:59 +00:00
Maxime Coste
1fd8ec8bfd
support Ctrl-R <reg> when inserting to insert a register
2012-01-24 19:08:57 +00:00
Maxime Coste
a62d56064f
replace ncurses getch calls with a get_key method
2012-01-23 14:17:31 +00:00
Maxime Coste
a1ff9999f5
the hook command takes a first parameter to specify the hook owner
...
currently 'global' and 'window' are accepted owners. 'window' will
add the hook to the current context window.
2012-01-23 13:58:43 +00:00
Maxime Coste
945ad361fb
HooksManager: forward declare Context instead of including context.hh
2012-01-23 13:56:43 +00:00
Maxime Coste
db9040e29e
HooksManager: extract the Singleton version as GlobalHooksManager
2012-01-23 13:40:42 +00:00
Maxime Coste
73ae3d292f
implement finding kak executable path on MacOS
2012-01-20 21:12:57 +00:00
Maxime Coste
2824bd9a46
HighlighterGroup: move to it's own file, Window uses them directly
2012-01-19 20:37:29 +00:00
Maxime Coste
541872cafa
completion support for addgrouphl and rmgrouphl
2012-01-18 11:33:58 +00:00
Maxime Coste
cffdbcb689
replace addhl -group with addgrouphl command, and add rmgrouphl
2012-01-18 00:15:10 +00:00
Maxime Coste
ae8882b0de
Context: do not permit access to window or buffer if null
2012-01-15 21:33:35 +00:00
Maxime Coste
c62b3b251d
add a runtime command to execute files in the runtime directory
2012-01-15 17:34:05 +00:00
Maxime Coste
f3e8498a58
addhl supports a -group option
...
-group <group_id> can be used to add the highlighter in a
highlighter group which will be then handled as a whole.
2012-01-15 13:47:12 +00:00
Maxime Coste
f259af9326
CommandManager: add flags support and IgnoreSemiColons flag
...
commands are now registred with flags, and the IgnoreSemiColons
flag permit to specify a command which needs all the parameters
on the line, bypassing the command sequence operator ';'.
the hook command is tagged as such.
2012-01-15 03:02:08 +00:00
Maxime Coste
49ea6f7103
correctly clear the window status line
2012-01-15 01:45:23 +00:00
Maxime Coste
95db828e17
CommandManager: use directly first command parameter as the command name
2012-01-14 14:02:54 +00:00
Maxime Coste
66d91b8828
support '\' as a line continuation marker when executing commands in file
2012-01-14 13:50:45 +00:00
Maxime Coste
9557167f26
<space> with a count argument replaces current selections with the counth selection.
2012-01-09 14:28:01 +00:00
Maxime Coste
8b1b1d9cd8
Selectors: add select_surrounding to select blocks
...
Alt-a followed by []()<>{}bB selects the block surrounding current
selection end.
Alt-i is similar but selects only the inside of the block.
2012-01-04 14:18:08 +00:00
Maxime Coste
e59bdd931e
search for kakrc next to the kak executable instead of in the current directory
2011-12-28 22:57:48 +00:00
Maxime Coste
4de41197c0
Add a | key that pipes each selection through an external filter
2011-12-28 19:04:06 +00:00
Maxime Coste
913ee3f096
Use Keys instead of char for keymap
2011-12-21 14:29:28 +00:00
Maxime Coste
ba1fe056f4
Add an exec command, similar to vim normal command
2011-12-20 19:22:05 +00:00
Maxime Coste
2239fb6e49
Filters: move from buffer to window
2011-12-07 14:29:10 +00:00
Maxime Coste
23eafd4504
Add a repeat last insert command, bound to .
2011-12-05 14:28:45 +00:00
Maxime Coste
c761420055
fix exec_commands_in_file
2011-12-02 19:00:37 +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
934e62b502
stop clearing selections all the time
2011-11-30 14:18:54 +00:00
Maxime Coste
0859b20bcf
Rename Filter to Highlighter to be more explicit
2011-11-29 22:37:20 +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
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
b59a0816b9
Add wq and wq! commands
2011-11-26 19:11:24 +00:00
Maxime Coste
a00961da99
Add hook command
2011-11-26 18:41:55 +00:00
Maxime Coste
957446dee4
Add a Context parameter to commands
2011-11-26 18:32:57 +00:00
Maxime Coste
9775958012
Add a HooksManager class
2011-11-25 14:26:29 +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
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
18913cfbff
IncrementalInserter: add insert_capture method bound to ^B<num>
2011-11-16 19:24:37 +00:00
Maxime Coste
b1e815a66c
RegexSelector: support multi selections, bound to s key
2011-11-16 14:06:01 +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
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
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
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
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
0e18db5a88
lines and columns used for user interaction are 1-indexed
2011-10-27 14:27:39 +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
ad6ee464f4
style tweak
2011-10-19 18:54:20 +00:00
Maxime Coste
dc74934e59
DisplayBuffer: refactoring, correct support of replacements
...
DisplayAtoms now know where they are on the screen and have
line_and_column_at and iterator_at methods.
2011-10-15 04:45:49 +00:00
Maxime Coste
26459abf8a
WindowCoord: rename to DisplayCoord and move with DisplayBuffer
2011-10-14 14:29:53 +00:00
Maxime Coste
be043ffe1e
Window: move_cursor_to takes a BufferIterator parameter
2011-10-12 18:53:38 +00:00
Maxime Coste
22bd9f90d5
Filters: add an expand_tabulation filter
2011-10-12 18:52:22 +00:00
Maxime Coste
f802a9f3be
Debug: add key integral value in the debug buffer on keystroke
2011-10-10 22:47:19 +00:00
Maxime Coste
219709e472
Completions: move code from main.cc to completion.hh
2011-10-10 22:38:58 +00:00
Maxime Coste
7e84ca9ae9
gl and gh now go to first or last character of the line
...
append mode is supported through G key
2011-10-10 14:24:17 +00:00
Maxime Coste
003c5d4e3d
remove useless line
2011-10-08 13:23:18 +00:00
Maxime Coste
868a2f8107
ncurses: fix color support
2011-10-07 14:28:13 +00:00
Maxime Coste
10106e8c8e
DisplayBuffer: do not store content in atom, begin and end are sufficient
2011-10-07 14:19:58 +00:00
Maxime Coste
a19f4f059d
Debug: add a write_debug function
...
write_debug writes in a Scratch buffer named '*debug*', so that debug
messages are accessibles from within kakoune
2011-10-07 14:16:38 +00:00
Maxime Coste
9db4aa9691
Buffer: add a type property
2011-10-07 14:15:55 +00:00
Maxime Coste
12535e1099
Window: get rid of select_mode
2011-10-07 14:03:25 +00:00
Maxime Coste
ca99a51bca
clear selections after a change
2011-10-06 21:13:33 +00:00
Maxime Coste
1e224dc586
whitespace fix
2011-10-06 21:13:16 +00:00
Maxime Coste
571e4772b4
IncrementalInserter: support OpenLineBelow and OpenLineAbove mode
2011-10-06 21:12:55 +00:00
Maxime Coste
f9be716776
quit: do not quit if modified buffer exists, add q! command
2011-10-05 18:43:47 +00:00
Maxime Coste
cf162ae617
draw_window: add a space for eol, so that selected eol are visible
2011-10-05 14:28:20 +00:00
Maxime Coste
ff730380ed
Window: empty_selections -> clear_selections
...
clear_selections also reset select_mode to Normal,
most editing operations now do a clear_selections.
2011-10-05 14:24:52 +00:00
Maxime Coste
4ce349fa02
Buffer: modification tracking
2011-10-05 14:21:24 +00:00
Maxime Coste
c8cf7bbaa9
Window: add a basic status line
2011-10-04 18:49:41 +00:00
Maxime Coste
4f771b084a
escape-key force return to normal mode
2011-10-03 18:41:05 +00:00
Maxime Coste
d99bcd7f2e
bind T and F as select_to_reverse non-inclusive and inclusive
2011-10-03 14:29:44 +00:00
Maxime Coste
36c3bb6ae3
ncurses: quick'n'dirty color support
2011-09-30 19:15:14 +00:00
Maxime Coste
e619a81375
IncrementalInserter: Append, Insert or Change mode specified at construction
2011-09-28 19:14:39 +00:00
Maxime Coste
43fb64a913
Window: selection behaviour now depends on a window state
...
more vi-like behaviour, hit the v key to toggle append selection mode,
this means much more keys become available for mapping, as caps are now
longer reserved to append mode.
2011-09-28 14:23:43 +00:00