Commit Graph

1733 Commits

Author SHA1 Message Date
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
Maxime Coste
70e94cb00a Fix select_next_match that would select the end of the buffer in some circumstances 2013-11-04 21:59:28 +00:00