Commit Graph

1566 Commits

Author SHA1 Message Date
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
Maxime Coste
7b0eeb26b1 Run new clients in a new process session
When running a terminal emulator containing a kakoune client,
it used to still have the server tty as controlling termnal,
and so received SIGINT's from the user in it. Termnal emulators
then responded by exiting. This is no longer the case.
2013-11-04 21:59:28 +00:00
Maxime Coste
feff965ac6 Remove setg/setb/setw and use set <scope>
(with scope a prefix of global,buffer or window)
2013-10-30 09:38:40 +00:00
Maxime Coste
cc01aab8b8 add <a-gt> for indenting even empty lines 2013-10-30 08:45:47 +00:00
Maxime Coste
dc1fbcdaa2 minor style fix 2013-10-26 19:23:00 +01:00
Maxime Coste
90d499b94d Add a WinClose hook 2013-10-26 18:51:25 +01:00
Maxime Coste
29ab42149c Keep does nothing if an empty regex is entered (rather than crashing) 2013-10-26 18:46:21 +01:00
Maxime Coste
cf6c07d37d Specify key modifiers using constexpr functions for brevity 2013-10-26 18:42:36 +01:00
Maxime Coste
0746e7309e InputMode::Prompt: use an enum for mode rather than bool m_insert_reg 2013-10-26 14:06:27 +01:00
Maxime Coste
ebd768e03d remove unneeded code in client 2013-10-26 11:49:16 +01:00
Maxime Coste
2c09da50be Add key mapping support 2013-10-25 00:30:46 +01:00
Maxime Coste
77ac777526 use prefix matching for hook scope 2013-10-25 00:00:44 +01:00
Maxime Coste
748cc79d0f Add std::hash specialization for std::pair 2013-10-24 22:21:41 +01:00
Maxime Coste
baa9f28714 Add an autoreload YesNoAsk option, for configuring buffer reloading behaviour. 2013-10-21 18:58:11 +01:00
Maxime Coste
76deb60771 Add YesNoAsk type for options 2013-10-21 18:57:48 +01:00
Maxime Coste
60dbec4949 Add Buffer::reload for reloading buffers without loosing options and hooks 2013-10-21 18:57:19 +01:00
Maxime Coste
9e9b503f5d Code style cleanups in ncurses.{cc,hh} 2013-10-17 18:48:12 +01:00
Maxime Coste
44281c8fed More robust Buffer filesystem timestamp handling 2013-10-17 18:47:09 +01:00
Maxime Coste
c3bafea2cd Improve NCurses UI menu scroll bar, use a variable height 2013-10-17 00:32:13 +01:00
Maxime Coste
03c74b7a88 Detect file external modification and ask the user whether to reload or not
* Buffer now store a m_fs_timestamp field.
* Client in Normal mode checks current buffer file every 500 ms, or
  each time it goes back to Normal mode.
2013-10-15 18:51:31 +01:00
Maxime Coste
fe0a4f0d11 Reset normal mode when changing the current editor 2013-10-15 18:50:43 +01:00
Maxime Coste
608196f526 Fix indent code, support indentwidth=0 for using tabs 2013-10-14 13:47:43 +01:00
Maxime Coste
bc3cfb9016 Fix ctags.kak function info support 2013-10-11 18:45:23 +01:00
Maxime Coste
17951bf077 Fix Editor::remove_selection when the main selection is the first one and is the removed one 2013-10-11 18:44:43 +01:00
Maxime Coste
ee0e6dcef9 Display session name in the status line 2013-10-11 18:43:39 +01:00
Maxime Coste
d1159be19c Use { and } for extending selection to object start/end 2013-10-11 09:58:35 +01:00
Maxime Coste
632e7e217e Save last pipe command to the '|' register, and use it for empty cmd 2013-10-11 00:31:03 +01:00
Maxime Coste
3c959cee99 Pass title to UserInterface::info_show
Move unicode box generation and assistant code as
a NcursesUI implementation detail.
2013-10-11 00:17:22 +01:00
Maxime Coste
93f6a2ee43 Display target register name in status line when recording a macro 2013-10-11 00:17:22 +01:00
Maxime Coste
59ae6411f5 Only allow recording macro to register a-z 2013-10-11 00:17:21 +01:00
Maxime Coste
c478a97a2f Let InputModes describe themselves for status line display 2013-10-11 00:17:21 +01:00
Maxime Coste
74fe8b5e8d Remove Context::numeric_param, pass it directly to normal mode functions 2013-10-10 21:22:20 +01:00
Maxime Coste
00c8d1a4fa Fix tabs that appeared in the codebase 2013-10-08 19:28:57 +01:00
Maxime Coste
ab925686ab Improve object selection support
* A count is supported for nestable objects so that we
  can specify the surrounding level.
* more symetric behavior for select to end/ to begin
2013-10-08 19:28:18 +01:00
Maxime Coste
fccb954611 Use WordType enum instead of a bool punctuation_is_word for word selector 2013-10-07 18:44:22 +01:00
Maxime Coste
6e5ff644f2 add <a-R> for rotating selections content 2013-10-02 19:10:43 +01:00
Maxime Coste
6331fb5a61 Add <c-s> for saving current selection in the jump list 2013-10-02 18:49:06 +01:00
Maxime Coste
307fc228d2 Add <c-u> in insert mode for forcing commiting the current undo group 2013-10-02 18:45:39 +01:00
Maxime Coste
bc051c53af Cleanup dynamic registers init, and add # register for selection count 2013-10-01 19:52:19 +02:00
Maxime Coste
fb80ef092e clean up env var registration 2013-10-01 19:47:37 +02:00
Maxime Coste
c312b06e39 Do not push jump on search next 2013-09-27 19:26:52 +01:00
Maxime Coste
560e3397e8 minor cleanup 2013-09-27 19:24:18 +01:00
Maxime Coste
61cc53b325 Support highlighters that add new lines in scroll_to_keep_cursor_visible 2013-09-27 19:16:49 +01:00
Maxime Coste
3021c7f60a Remove $kak_socket replaced with $kak_session
use /tmp/kak-$kak_session to get the socket path
2013-09-25 19:04:52 +01:00
Maxime Coste
b080f456a7 Do not take directories into account when completing buffer name
(except if a / is found in the completion prefix)
2013-09-25 18:59:03 +01:00
Maxime Coste
60f4e1104f complete_filename fallback on subsequence completion if prefix does not work 2013-09-24 10:16:47 +02:00
Maxime Coste
9018bc47df use subsequence instead of regex matching for buffer completion 2013-09-24 10:13:39 +02:00
Maxime Coste
bab10f5b93 add subsequence_match(str, subseq) utility function 2013-09-23 21:17:16 +02:00
Maxime Coste
5ae43acf94 Add prefix_match function and use it instead of adhoc code 2013-09-23 21:16:25 +02:00
Maxime Coste
5a02d38081 small optimization in event manager 2013-09-23 20:32:45 +02:00
Maxime Coste
124be2ac2e extract client main to a run_client function 2013-09-23 20:28:15 +02:00
Maxime Coste
ce4ed44496 Add missing newlines to printed messages 2013-09-21 17:10:37 +02:00
Maxime Coste
b1d62a307d Add a -d command line option for running Kakoune as a headless server 2013-09-19 20:09:53 +01:00
Maxime Coste
415be1d2c7 Add a -s command line option for specifying session name 2013-09-19 19:54:14 +01:00
Maxime Coste
0b63074f90 extract main kakoune code to a kakoune function 2013-09-19 19:53:04 +01:00
Maxime Coste
03588f1b78 Support multiple selections per ligne when aligning 2013-09-18 18:54:04 +01:00
Maxime Coste
e70d75d6a6 Only redraw clients after handling all available events 2013-09-17 18:51:14 +01:00
Maxime Coste
7fef7ec063 Add a InputMode::on_replaced virtual method.
Destructors are not a good place to run mode exit hooks, as they
wont be called until the next mode trash clearing, so we now call
this virtual method on the previous mode just before it gets replaced.
2013-09-16 19:38:28 +01:00
Maxime Coste
168b4b775b Do not clear Client::m_mode_trash in handle_key, but in handle_available_input
handle_key can be called from exec_keys while running a hook, and a previous
key in exec_keys could have changed the mode. This would make the mode that
runned the hook deleted when the controls returns to it.

handle_available_input should always be called at top level, so can safely
clear the mode trash.
2013-09-16 19:25:18 +01:00
Maxime Coste
06e06d6ea6 remove print_status from UserInterface, pass status line to draw
Client store the current status line. This way calls to print status
do not force the user interface to display directly.
2013-09-16 19:15:13 +01:00
Maxime Coste
49903523a7 Resurect Client::handle_available_input() 2013-09-16 18:48:41 +01:00
Maxime Coste
27a1e70b01 Rework client name change 2013-09-13 00:01:47 +02:00
Maxime Coste
000af8e206 Fix clang.kak, now that eval -draft does not use the client user interface 2013-09-12 23:52:43 +02:00
Maxime Coste
fd021de7d7 use directly context.client() for getting the kak_client env var value 2013-09-12 23:49:08 +02:00
Maxime Coste
823812fd1a rename InputHandler to Client 2013-09-12 23:47:23 +02:00
Maxime Coste
ac7e437730 Move Client responsibilities to InputHandler
InputHandler owns it's UserInterface, and is directly stored by the ClientManager.
2013-09-12 23:39:34 +02:00
Maxime Coste
916a0cb52e Allow :exec mode changes to remains when keys are finished
Pass keys one by one to the input handler so that BatchUI is not needed
We can now use :exec to pre-fill the command line without validating
the command.
2013-09-11 18:58:23 +01:00
Maxime Coste
96fc340a5c add alt-& which aligns inserting spaces before selection start 2013-09-02 13:30:46 +01:00