Maxime Coste
e6884f989c
Style changes, replace typedefs with usings
2014-01-09 19:59:26 +00:00
Maxime Coste
560b4ab0b5
Fix DynamicSelectionList selecting buffer end on Buffer::reload
2014-01-08 19:36:18 +00:00
Maxime Coste
c8119885fa
Use Win32 MessageBox for asserts on cygwin
2014-01-08 19:23:59 +00:00
Maxime Coste
518bc4e7f3
Use a single edition for -itersel
...
-itersel would not make sense with changing context buffer, so
it should be safe.
Fixes #14
2014-01-06 20:10:46 +00:00
Maxime Coste
9455303a1e
Do not allow changing buffer when the context is editing
2014-01-06 20:07:08 +00:00
Maxime Coste
aadbd390c7
Use wide character function for categorizing codepoints
...
Previously we used the is... rather than isw...
These functions were not supporting non ascii characters correctly
2014-01-05 15:14:58 +00:00
Maxime Coste
1e6fbf548b
Fix some tabs in the code
2014-01-05 14:30:26 +00:00
Maxime Coste
feaf197cae
Add support for the erase key in prompt and insert mode
...
Fixes #18
2014-01-04 18:18:59 +00:00
Maxime Coste
8168cba1a3
Fix small misbehaviour in split_selections
2014-01-04 14:23:08 +00:00
Maxime Coste
540d82c452
shell_completion use command completion after | and &&
...
Fixes #21
2014-01-03 22:29:11 +00:00
Maxime Coste
3017531699
shell_completion uses command completion after semicolons
2014-01-03 20:47:49 +00:00
Maxime Coste
6c4c32eb59
Rewrite join_select_spaces
...
Stop using regex for selecting spaces at the begining of the line
2014-01-03 20:41:47 +00:00
Maxime Coste
26e8c45282
CommandManager: support completion of chained commands
...
Command completion now work after a command separator (;)
fixes #19
2014-01-03 20:07:40 +00:00
Maxime Coste
ae5115c31f
Add support for absolute paths in find_file
...
fixes #11
2014-01-03 19:32:42 +00:00
Maxime Coste
3be77842db
fix select_to_eol behaviour when on empty line
...
fixes #3
2014-01-03 19:00:19 +00:00
Maxime Coste
e12bf4978c
Try prefix completion and then subsequence completion for option names
...
fixes #4
2014-01-03 19:00:05 +00:00
Maxime Coste
608098cdde
InputHandler: selection first item when entering menu mode
2014-01-02 19:19:41 +00:00
Maxime Coste
ad7145dda4
Minor code cleanup in normal.cc
2014-01-01 18:45:28 +00:00
Maxime Coste
bcb53d8417
Add q and Q alias for single quote and double quote text object
2014-01-01 13:59:25 +00:00
Maxime Coste
d9b7eaef2b
NCursesUI: no item is selected on menu_show
2013-12-30 22:41:08 +00:00
Maxime Coste
a34b943749
Support completing %opt{...} and %sh{...} in command manager
2013-12-30 14:22:18 +00:00
Maxime Coste
0b509735ca
Extract shell_complete lambda as a proper function
2013-12-30 14:20:05 +00:00
Maxime Coste
56c3d9d137
Few cleanups in the command line parsing code
2013-12-29 18:37:48 +00:00
Maxime Coste
257f589e22
Add D for erasing with concatenated yanking
2013-12-26 10:40:22 +00:00
Maxime Coste
983abefc30
Add alt-| for piping and appending rather than replacing
2013-12-24 16:48:52 +00:00
Maxime Coste
fd17ea00dd
CommandManager: use aliases for commands rather than duplicating data
...
Completion now only proposes full command names
2013-12-24 02:06:22 +00:00
Maxime Coste
22102951e2
make userconfig: install all kak scripts
2013-12-23 21:52:59 +00:00
Maxime Coste
fa72d27f9a
Make kak more installable
...
* Kak relies on the kakrc file to be in ../share/kak/kakrc relative
to kak binary rather than in the same directory
* Added an install target to the Makefile
2013-12-23 21:36:05 +00:00
Maxime Coste
bcba5287ad
Add complete_command for completing commands in PATH
...
use it for pipe completion
2013-12-23 20:43:55 +00:00
Maxime Coste
a0d4a44dd5
Fix prefix completion in prompt
2013-12-23 20:43:29 +00:00
Maxime Coste
c0973075fa
Get rid of Editor for good
...
ClientManager now stores only the free windows, clients take
ownership of its own.
2013-12-20 20:14:57 +00:00
Maxime Coste
cb324a4b88
highlighters: add some optimization flags to regexes
2013-12-17 20:03:54 +00:00
Maxime Coste
0e6bbbb8c4
remove useless code in Buffer constructor
2013-12-16 23:53:04 +00:00
Maxime Coste
d9c3de3fc0
small cleanup in context_wrap
2013-12-16 23:51:57 +00:00
Maxime Coste
d1ac813f61
Pass a Context rather than a Window to highlighters
2013-12-16 23:24:08 +00:00
Maxime Coste
ae75594d25
Window: refactor center_selection/display_selection_at
...
Take the line we are intersted in as a parameter rather than getting
the main selection last char line.
2013-12-16 19:08:19 +00:00
Maxime Coste
94c9e4e99b
Fix select_coord that could select invalid positions
2013-12-16 13:39:02 +00:00
Maxime Coste
6641583a68
cleanup editor.hh, remove editor.cc...
2013-12-15 22:10:19 +00:00
Maxime Coste
f83d5672f8
Fix replace_with_char behaviour, keep the same selections
2013-12-15 20:52:57 +00:00
Maxime Coste
ea95632709
Move Editor::selections_content to Context
2013-12-15 20:37:07 +00:00
Maxime Coste
ad0682ec75
remove unused Editor::check_invariant
2013-12-15 20:32:58 +00:00
Maxime Coste
8047cc97d3
Move Editor::{undo,redo} to free functions in normal.cc
2013-12-15 20:23:02 +00:00
Maxime Coste
cb9384f8a7
move InsertMode to normal.hh
2013-12-15 20:23:02 +00:00
Maxime Coste
7267b8281f
Move insert and erase to normal.cc, and move edition management to context
2013-12-15 20:23:02 +00:00
Maxime Coste
e369b60258
Remove insert_hide_sel option
2013-12-15 14:57:55 +00:00
Maxime Coste
eb81eef03e
Move SelectMode enum as an implementation detail in normal.cc
2013-12-15 14:38:04 +00:00
Maxime Coste
39b43f4c3c
Less uses of Editor, in favor of Context
2013-12-15 14:33:09 +00:00
Maxime Coste
935bc3cec9
Add Context::selections method, and use it in priority to the Editor's one
2013-12-15 14:25:23 +00:00
Maxime Coste
9b6639eb27
Remove Editor::move_selections
2013-12-15 14:14:52 +00:00
Maxime Coste
4e3d551426
split_lines sets the last selection as the main one
2013-12-14 19:25:56 +00:00
Maxime Coste
49ee2495a4
Remove Editor::rotate_selections
2013-12-14 18:41:55 +00:00
Maxime Coste
d0d9717fcf
Fix select_next_match
2013-12-14 18:40:29 +00:00
Maxime Coste
ce0e71aacb
Remove Editor::select methods, add a non-const selections getter
2013-12-14 18:38:14 +00:00
Maxime Coste
0c4d523b22
Move template selectors to the header
2013-12-14 14:49:10 +00:00
Maxime Coste
93b561983a
Rename MultiSelector to Selector
2013-12-14 14:38:17 +00:00
Maxime Coste
6afef079b6
Remove Editor::main_selection(|index), directly use the SelectionList method
2013-12-14 14:38:17 +00:00
Maxime Coste
eced7d4c24
SelectionList should never be empty
2013-12-14 14:38:17 +00:00
Maxime Coste
77590fe2e8
Move (keep|flip|remove|clear)_selections from editor method to free selectors
2013-12-14 14:38:17 +00:00
Maxime Coste
dad27fe1a0
Remove simple selectors, always go through a multi selector
2013-12-14 14:38:17 +00:00
Maxime Coste
f53ba0baed
MultiSelectors takes a reference to the current selection and mutate it
2013-12-14 14:38:17 +00:00
Maxime Coste
db048a0792
MultiSelectors now transforms the whole selection
2013-12-14 14:38:17 +00:00
Maxime Coste
894ee0297e
Move main selection index to SelectionList
2013-12-14 14:38:17 +00:00
Maxime Coste
dffd68a8ca
honor jumpclient for grep
2013-12-13 14:00:14 +00:00
Maxime Coste
6966bf3303
make.kak: errjump tries to recognize current make directory
2013-12-13 13:58:12 +00:00
Maxime Coste
9a2e72f23c
Fix cpp strings highlight
2013-12-13 13:55:08 +00:00
Maxime Coste
ed484dc333
Region highlighter takes regexes for region start/end
2013-12-12 22:49:41 +00:00
Maxime Coste
563f62b467
Fix Buffer::char_next when the line ends with an invalid utf8 sequence
2013-12-12 13:45:14 +00:00
Maxime Coste
bd80cf0404
Add DisplayAtom::check_invariant method
2013-12-12 13:45:08 +00:00
Maxime Coste
277b02eee6
Add experimental region_ref highlighter
...
highlights a region using another highlighter.
2013-12-11 23:19:24 +00:00
Maxime Coste
39512914ad
Add BufWritePre and BufWritePost hooks
2013-12-11 13:58:38 +00:00
Maxime Coste
1b1031627c
Add Buffer::run_hook_in_own_context helper method
2013-12-11 13:57:10 +00:00
Maxime Coste
91cc8dd8bf
Add cursor_char_column env variable
2013-12-11 13:46:33 +00:00
Maxime Coste
f0c336a283
ctags.kak: Show message with Information colalias in gentags
2013-12-07 13:57:24 +00:00
Maxime Coste
9ecfcfad43
use -try-client in kak files rather than ad-hoc shell logic
2013-12-07 13:56:56 +00:00
Maxime Coste
0b473ffe58
eval and exec can use a -try-client option
...
When -try-client <client_name> is used, the context used for the
command is either the given client's context if the client is found,
or the current one if not.
2013-12-07 13:44:23 +00:00
Maxime Coste
05d0397936
Add Client* ClientManager::get_client_ifp() that can return nullptr
2013-12-07 13:43:48 +00:00
Maxime Coste
3dde0b2260
fix strings in comment being highlighted as strings
2013-12-04 18:53:17 +00:00
Maxime Coste
35f12bc5a0
Use a cache for region highlighter
2013-12-04 18:52:16 +00:00
Maxime Coste
054ae08a9f
use region highlighter for cpp
2013-12-04 00:48:57 +00:00
Maxime Coste
8b2f340238
Add basic region highlighter
2013-12-04 00:48:46 +00:00
Maxime Coste
e348c35b25
Write errors while sourcing a file in the debug buffer
2013-12-04 00:27:19 +00:00
Maxime Coste
c9eb65b04c
Change rc files to use shared highlighters
2013-12-03 22:15:59 +00:00
Maxime Coste
45d5dbcc85
Add support for defining and referencing highlighters
...
* defhl <name> defines a shared highlighter
* addhl -def-group <name> adds highlighters to the defined highlighter
* addhl ref <name> add the defined highlighter to the window's ones
2013-12-03 22:07:23 +00:00
Maxime Coste
d5a5b1c329
fixup cpp.kak
2013-12-03 21:21:02 +00:00
Maxime Coste
a443ff7ea6
indent fixes
2013-12-03 19:49:09 +00:00
Maxime Coste
df57870470
rework cpp indenter, try to make them more readable
2013-12-03 19:49:09 +00:00
Maxime Coste
d880465f38
Do not pass a window to highlighters factories
2013-11-28 18:48:40 +00:00
Maxime Coste
a9d832965f
RegexColorizer maintains a per buffer cache
2013-11-28 18:48:39 +00:00
Maxime Coste
255a747fdd
Simplify FlagLines, do not try to update the option
2013-11-28 18:48:39 +00:00
Maxime Coste
2d55ff5feb
Window: forget timestamp when options changes
2013-11-28 18:48:38 +00:00
Maxime Coste
fcf3e9e138
Improve ctags support
...
* cleanup tag command
* add a tag-complete command
* add a gentags command for launching ctags in the background
2013-11-28 18:48:09 +00:00
Maxime Coste
50325e62b0
fix prompt completion handling misbehaving with history
2013-11-28 18:48:09 +00:00
Maxime Coste
b83414ddf7
add alt-& for align indent
2013-11-22 09:55:32 +00:00
Maxime Coste
90ea3023fe
reenable undo support on fifo buffers when the fifo closes
2013-11-20 22:18:40 +00:00
Maxime Coste
b90594353c
NCursesUI: info_show do not require previous call to info_hide
2013-11-19 19:51:39 +00:00
Maxime Coste
44b0957e10
NCursesUI: fix redraw when showing a new menu
2013-11-19 19:51:39 +00:00
Maxime Coste
9a6712e56b
rename idvaluemap to id_map, remove Id template param, use String
2013-11-18 22:24:31 +00:00
Maxime Coste
d27548dd15
Resurect idvaluemap, order of traversal matters
...
This reverts commit 2b9b161d42
.
2013-11-18 22:17:50 +00:00
Maxime Coste
f57f065d76
Fix prompt completion
2013-11-18 21:47:16 +00:00
Maxime Coste
56c0d2de95
Fix insert completion
2013-11-18 21:45:42 +00:00
Maxime Coste
69113f30d1
fix git blame support in git-tools.kak
2013-11-18 01:37:03 +00:00
Maxime Coste
7f4d906774
move is_horizontal_blank to unicode.hh
2013-11-17 23:06:40 +00:00
Maxime Coste
2b9b161d42
remove idvaluemap, use unordered_map in place
2013-11-17 23:06:40 +00:00
Maxime Coste
c764fa7e25
write assert failed info to debug buffer
2013-11-17 13:25:58 +00:00
Maxime Coste
cb7ef23c44
fix invalid value handling for yes no ask options
2013-11-16 00:26:56 +00:00
Maxime Coste
62137f364d
tweak initial debug infos
2013-11-15 23:47:44 +00:00
Maxime Coste
8c25d62056
extract InputHandler to input_handler.{cc,hh}
2013-11-14 21:12:59 +00:00
Maxime Coste
f8cadc0c57
move Client::m_name to context, no more need for DraftUI
2013-11-14 20:51:25 +00:00
Maxime Coste
ad275d1d1c
Extract InputHandler from Client
2013-11-14 18:09:15 +00:00
Maxime Coste
fe55d51e9f
Use Q for macro recording and q for replay, document macros in README
2013-11-14 13:59:32 +00:00
Maxime Coste
f287df2139
align always insert at selection begin
2013-11-14 13:44:55 +00:00
Maxime Coste
9a1d50d9a2
deindent now deindent non completely indented lines
...
If indent is 4 spaces, and a line has only 3 leading spaces, they
will get removed. a-< can be used to avoid this behaviour.
2013-11-14 13:44:54 +00:00
Maxime Coste
04ae48c346
indent cleanup, correct erroneous 3 spaces indent
2013-11-14 00:12:15 +00:00
Maxime Coste
9679b17b16
tweak style cpp.kak
2013-11-14 00:11:27 +00:00
Maxime Coste
323997041d
Do not use eval for grepcmd, as it will evaluate \ escapes as well
2013-11-14 00:07:14 +00:00
Maxime Coste
d2e360a1c8
move cpp indentation to helper hidden commands
2013-11-13 13:11:22 +00:00
Maxime Coste
b2cb5b421c
Centralize file mimetype detection in mime.kak
...
This way, 'file --mime-type $buffer' is called only once per file
rather than once per filetype detection hook.
2013-11-12 20:38:00 +00:00
Maxime Coste
db5050fab0
Add BufSetOption hook support
2013-11-12 20:36:42 +00:00
Maxime Coste
0244112af4
Add support for hidden commands, that will not show on completion
2013-11-12 19:38:19 +00:00
Maxime Coste
5a4650aecc
Add support for hidden options, not showed by completion
...
the decl command can take a -hidden parameter to hide an option
2013-11-12 19:21:07 +00:00
Maxime Coste
c4de866903
Fix select_to_previous_word when cursor is on last buffer char
2013-11-12 18:59:19 +00:00
Maxime Coste
67452c3441
Tweak prompt auto show completion
...
* Auto show completion even before the first key is pressed
* Auto show next completions when validating a single choice completion
2013-11-12 18:56:48 +00:00
Maxime Coste
6877ae151f
Do not require call to menu_hide before menu_show in ncurses ui
2013-11-12 18:52:30 +00:00
Maxime Coste
83a6375263
Fix StronglyTypedInteger::operator%=
2013-11-11 19:11:17 +00:00
Maxime Coste
6b77860fc0
Make Context a class, not a struct
2013-11-11 19:10:49 +00:00
Maxime Coste
bc1d1ba59f
Fix warnings
2013-11-10 22:51:52 +00:00
Maxime Coste
03a6561f50
use abreviated form for keys in client.cc
2013-11-10 22:48:56 +00:00
Maxime Coste
4b518ee6b9
Add support for function keys F1-F12
2013-11-09 11:12:55 +00:00
Maxime Coste
a7ed017ef3
cleanup Makefile
2013-11-09 11:12:25 +00:00
Maxime Coste
b4cc8edd35
Use eval ${kak_opt_(make|grep}cmd} in (make|grep).kak
...
Quotes in the variable are preserved that way.
2013-11-08 19:05:30 +00:00
Maxime Coste
414a1332eb
update cpp indentation hooks, indent after visibilty specifier
2013-11-08 19:04:28 +00:00
Maxime Coste
82b1619b05
cleanup cpp hooks
2013-11-07 21:58:19 +00:00
Maxime Coste
a11bccaa12
fix Buffer constructor exception safety
2013-11-07 21:43:18 +00:00
Maxime Coste
d4216efd75
clang.kak: wrap clang-autocomplete hook in a try %{}
2013-11-07 18:50:16 +00:00
Maxime Coste
bfbb44d994
Makefile: use boost_regex-mt on Cygwin
2013-11-07 18:49:12 +00:00
Maxime Coste
0b23a4f67b
cpp indent improvement
...
* auto inserts a ; after } if it closes a class or struct
* auto copy the // comment of the previous line
2013-11-07 18:45:08 +00:00
Maxime Coste
2eb1a323d9
fix kakrc string highlighting
2013-11-07 18:44:27 +00:00
Maxime Coste
79883f6a51
make align tab-aware
2013-11-06 19:13:06 +00:00
Maxime Coste
f2a902f682
Add modulo operators to StronglyTypedNumber
2013-11-06 19:10:35 +00:00
Maxime Coste
7495d04a47
Add support for -itersel option in exec/eval
...
-itersel makes a -draft eval/exec run once for each selections
separately rather than with all selections at a time.
2013-11-05 23:50:44 +00:00
Maxime Coste
088f670fe9
update cpp indent hooks, add align to opening paren support
2013-11-04 22:23:55 +00:00
Maxime Coste
68a27af56e
Use InsertChar hook for char insertion, and InsertKey for key press
2013-11-04 22:02:44 +00:00
Maxime Coste
9521413b62
Tweak insert completion behaviour
2013-11-04 22:02:44 +00:00
Maxime Coste
dd6462ed57
regex option highlighter use runtime window rather than creation time one
2013-11-04 22:02:44 +00:00
Maxime Coste
02312fe5ff
Allow to ommit the catch part in the try command
2013-11-04 22:02:44 +00:00
Maxime Coste
5e54705e26
simplify clang-enable-autocomplete, no need for shell
2013-11-04 22:02:44 +00:00
Maxime Coste
471aeaab9a
remove filters, use hooks instead
2013-11-04 22:02:44 +00:00
Maxime Coste
4c39743b69
cpp.kak: replace filters with hooks
2013-11-04 22:02:44 +00:00
Maxime Coste
3e12507636
Remove IncrementalInserter and move it's code to InputModes::Insert
2013-11-04 22:02:43 +00:00
Maxime Coste
3e1bb777ce
Add automatic completion display in prompt mode
...
Controlled by the autoshowcompl option
Completers now take a CompletionFlag parameter, used to specify
we want fast completion (tag completion can be slow, we do not
want to run it if not explicitely wanted by the user).
2013-11-04 21:59:28 +00:00