Maxime Coste
9337938403
replace std::string references with String
2012-04-14 01:17:09 +00:00
Maxime Coste
46c65fea10
Option name completion support
2012-04-03 18:25:27 +00:00
Maxime Coste
1d106fd31e
add set{g,global,b,buffer,w,window} command to allow changing options
2012-04-03 14:04:02 +00:00
Maxime Coste
f3dd65fbf1
add an OptionManager class and use it to manage tabstops
...
OptionManager map names to options, and may delegate option resolution
to it's parent if it does not contains the asked for option. That way
Buffers can override global options, and Windows can override Buffer
options.
2012-04-03 13:39:20 +00:00
Maxime Coste
c8447658c0
fix tab insertion
2012-04-03 13:38:01 +00:00
Maxime Coste
9444c84b1c
rename HooksManager to HookManager
2012-04-03 12:01:01 +00:00
Maxime Coste
a555e28b4e
add basic unit tests run at startup
2012-03-21 19:27:36 +00:00
Maxime Coste
3dd96565b3
display modified buffers names when quit fails
2012-03-25 20:12:35 +00:00
Maxime Coste
cd615b35a2
generalize do_select_surrounding in do_select_object and add a whole word selector
2012-03-12 14:23:30 +00:00
Maxime Coste
c98657a512
fix some unitialized variable use (thanks valgrind)
2012-03-08 20:49:10 +00:00
Maxime Coste
782b557660
factor word and WORD selectors
2012-03-07 19:20:32 +00:00
Maxime Coste
8275fe30f9
support appending with search
2012-02-28 20:50:47 +00:00
Maxime Coste
c03506ca04
save and restore " and / registers in exec_keys
2012-02-27 19:51:30 +00:00
Maxime Coste
13d74414e1
fix exec_commands_in_file parsing of [\'"`] strings
2012-02-27 14:25:07 +00:00
Maxime Coste
7026693ecd
move ncurses function to ncurses.{cc,hh}
2012-02-16 14:25:16 +00:00
Maxime Coste
6aacebd2e0
Add an echo command which print it's params in the status line
2012-02-15 14:24:52 +00:00
Maxime Coste
e9af61eb9f
def command takes an optional argument for parameter policy
...
-env-params puts parameters in kak_param{0..9}
-append-params appends parameters to the ones defined in the command
2012-02-15 13:58:08 +00:00
Maxime Coste
03976e0a01
edit command supports optional line and column parameter
2012-02-13 21:54:30 +00:00
Maxime Coste
3019ce3d3c
edit command switch to the given buffer if it is already opened
...
use edit! (or e!) to force reloading of the buffer
2012-02-13 21:48:16 +00:00
Maxime Coste
3273551665
add 'def' command to define new user commands
2012-02-13 21:40:09 +00:00
Maxime Coste
5f86941b8f
support multiline strings when executing file commands
2012-02-13 21:39:41 +00:00
Maxime Coste
2c8a6ca56a
Support shell commands
expansion in CommandManager
2012-02-13 21:38:07 +00:00
Maxime Coste
9304e41326
support register access through ctrl-r in ncurses_prompt
2012-02-13 13:37:41 +00:00
Maxime Coste
333b470dd2
giving a count to paste selects which selections yank buffer to use
...
3p will paste using the yank buffer of the third selection instead
of each selection using it's own.
2012-02-10 14:00:21 +00:00
Maxime Coste
d84d085cc2
Merge captures into registers, implements register insertion
2012-02-09 23:47:55 +00:00
Maxime Coste
04a37d8895
Editor refactoring, merge undo and batch management
2012-02-07 23:41:10 +00:00
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