Maxime Coste
c844f6f5cf
git-tools.kak: use a single git command with subcommands
2013-04-23 14:03:23 +02:00
Maxime Coste
6df60f5d2f
use a DynamicSelectionList when searching as the buffer may be modified during the prompt
2013-04-22 18:49:52 +02:00
Maxime Coste
86f6282cbe
selecting a surrounding object goes up one level if what we find is already selected
2013-04-22 14:18:49 +02:00
Maxime Coste
681f30dd28
support renaming buffers
...
Changing buffer name allows to save a *make* or *grep* buffer when
launching another one for exemple.
2013-04-22 13:49:07 +02:00
Maxime Coste
362e346728
rename go function to goto_commands
2013-04-19 13:49:47 +02:00
Maxime Coste
38bd8c243f
add KakBegin and KakEnd hooks
2013-04-19 13:45:44 +02:00
Maxime Coste
ca69981cc6
Ncurses: display status line in terminal title as well
2013-04-18 20:22:19 +02:00
Maxime Coste
7af98eae43
add man.kak which provides a man command for displaying man pages in kakoune
2013-04-18 19:07:31 +02:00
Maxime Coste
5b61672948
add window_{width,height} env var
2013-04-18 14:28:53 +02:00
Maxime Coste
9a361e2657
Tweak status line
2013-04-18 14:28:35 +02:00
Maxime Coste
f4e7da8826
change swapped_case implementation
2013-04-17 19:31:31 +02:00
Maxime Coste
b229584e95
ShellManager: env_var_regex is an implementation detail
2013-04-17 19:26:44 +02:00
Maxime Coste
0a8f51bddd
ctags.kak: fix zc changed to vc
2013-04-17 19:15:34 +02:00
Maxime Coste
8d83a5ff9e
toolsclient option support is back, add docsclient for git-diff
2013-04-17 19:15:15 +02:00
Maxime Coste
021756dfd4
redeclaring an option with the same type is not an error
2013-04-17 19:10:51 +02:00
Maxime Coste
21f487417b
context_wrap options are allowed only at start
2013-04-17 19:10:06 +02:00
Maxime Coste
d3961768ec
add alt-X for trimming non full lines
2013-04-16 14:30:11 +02:00
Maxime Coste
979cfc1ff2
normal.cc: remove useless do_ prefix on function names
2013-04-16 14:08:15 +02:00
Maxime Coste
5b50b32e68
move view commands to v prefix instead of z
2013-04-16 13:54:04 +02:00
Maxime Coste
485a50bb4b
handle client_removed exception out of ClientManager as well
2013-04-15 18:55:41 +02:00
Maxime Coste
da4be95c90
Handle SIGHUP gracefully
2013-04-15 18:50:45 +02:00
Maxime Coste
cc91a71a96
move Client as a public class instead of a ClientManager implementation detail
2013-04-15 14:28:21 +02:00
Maxime Coste
385241d2c0
remove String::replace, use boost::regex_replace directly
2013-04-12 19:16:55 +02:00
Maxime Coste
b6d21514e4
BufOpen hook is only called for file buffers
2013-04-12 19:11:28 +02:00
Maxime Coste
5653af15ed
move normal mode implementation to normal.{cc,hh}
2013-04-12 14:28:13 +02:00
Maxime Coste
dbffcb226b
echo command can take a -col parameter to specify the colors to use
2013-04-12 14:22:01 +02:00
Maxime Coste
46deca4f3f
Add zj and zk command for scrolling the window
2013-04-12 01:31:21 +02:00
Maxime Coste
e4d87ee1f1
hide ncurses.h include in ncurses.cc
2013-04-12 01:28:22 +02:00
Maxime Coste
e68f3cfe35
git-tools.kak: initial git-show command
2013-04-11 23:09:42 +02:00
Maxime Coste
1b5760f1a1
delete buffer if needed when creating a scratch buffer
2013-04-11 23:09:17 +02:00
Maxime Coste
dcc054a785
git-tools: fix git-diff-show
2013-04-11 22:41:43 +02:00
Maxime Coste
3f5dc9e1cb
ctags.kak: <a-c> is now zc
2013-04-11 21:17:17 +02:00
Maxime Coste
99bb24dd09
add z prefixed 'window commands'
...
* zz or zc for centering selection on window (replaces alt-c)
* zt and zb for placing the main selection on top/bottom
2013-04-11 21:01:27 +02:00
Maxime Coste
fb87c7ac9f
add Window::display_selection_at(LineCount)
2013-04-11 21:01:00 +02:00
Maxime Coste
301921cd45
remove hooks when needed in rc files
2013-04-11 14:30:02 +02:00
Maxime Coste
107e95622d
Hooks can have an (shareable) identifier, and thus be removed
2013-04-11 14:29:10 +02:00
Maxime Coste
172f46f679
idvaluemap: add a remove_all method
2013-04-11 14:27:32 +02:00
Maxime Coste
4cf7c4175a
HookManager: write to debug when a hook fails
2013-04-11 13:58:09 +02:00
Maxime Coste
35d0d5b2ea
exceptions: use const char* what() instead of String description()
2013-04-11 13:57:35 +02:00
Maxime Coste
c699172110
highlight strings after macros
2013-04-11 13:47:15 +02:00
Maxime Coste
8b829d1cdf
display character column instead of byte column in status line
2013-04-11 13:45:28 +02:00
Maxime Coste
1398641d22
Add gt, gb and gc to goto the first/last/middle displayed line
2013-04-10 19:02:28 +02:00
Maxime Coste
9999e5698d
Use the buffer manager to delete buffer, throw when a client is inserting
2013-04-10 18:54:01 +02:00
Maxime Coste
441f9a69ef
InputHandler: auto leave insert mode when editor changed
2013-04-10 14:30:32 +02:00
Maxime Coste
bdd617006b
add a 'debug' command, which write to the debug buffer
2013-04-10 13:45:17 +02:00
Maxime Coste
270e950cf1
sort includes directives
2013-04-09 20:05:40 +02:00
Maxime Coste
5adee4a6a7
rename assert to kak_assert to avoid collisions
2013-04-09 20:04:11 +02:00
Maxime Coste
34b8604f90
move context implementation to context.cc
2013-04-09 19:39:03 +02:00
Maxime Coste
240e0321e8
ge goto end, last character of buffer
2013-04-09 19:32:44 +02:00
Maxime Coste
7f535988f0
gg is back to goto top
2013-04-09 19:32:26 +02:00
Maxime Coste
829876a6fa
Context: push_jump does not allow the same jump to be present multiple times
2013-04-09 14:29:28 +02:00
Maxime Coste
5b1839ab75
BufferIterator: allow operator{==,!=} for different buffers
2013-04-09 14:28:03 +02:00
Maxime Coste
61293e8d60
use gk and gj for goto first/last line instead of gt and gb
2013-04-09 14:23:26 +02:00
Maxime Coste
43b5bd5260
add ga binding to go to last buffer
2013-04-09 14:22:21 +02:00
Maxime Coste
7b94925898
force redraw window if needed in context_wrap
2013-04-09 14:21:48 +02:00
Maxime Coste
624c112d08
tweak prompt text
2013-04-06 15:43:33 +02:00
Maxime Coste
be9bfa479f
use more explicit prompts for search and pipe, use color to validate
2013-04-06 13:02:16 +02:00
Maxime Coste
1ab8120147
refactor regex based selectors, move regex construction out of them
2013-04-05 19:28:08 +02:00
Maxime Coste
c53319ce5e
refactor regex prompting commands
2013-04-05 18:29:05 +02:00
Maxime Coste
9bb9eda302
Dynamically change prompt color for regex prompt depending on regex validity
2013-04-04 19:09:34 +02:00
Maxime Coste
6e2fa38c15
InputHandler::prompt takes a color pair to use
2013-04-04 19:09:19 +02:00
Maxime Coste
f540566b1b
UserInterface: status line messages are now DisplayLines
...
This add color support for the status line
2013-04-04 18:50:00 +02:00
Maxime Coste
6ffdfd7735
Add get_color helper function
2013-04-04 18:47:34 +02:00
Maxime Coste
1822b81d58
pass a color pair when displaying an information window
2013-04-04 14:04:38 +02:00
Maxime Coste
b58f614f40
Pass a fg and bg color when displaying a menu
2013-04-04 14:04:38 +02:00
Maxime Coste
1fd99e7e88
do not check buffer invariant in do_{erase,insert} as this cause O(n²) behaviour
2013-04-04 14:04:37 +02:00
Maxime Coste
4fbe2dc6bc
compile with -pedantic option and fix warnings
2013-04-04 14:04:37 +02:00
Maxime Coste
4aa5a9a3f6
display a message in the status line when yanking
2013-04-03 19:18:17 +02:00
Maxime Coste
c6262fc5e1
use Y for concatenated yank
2013-04-03 19:14:38 +02:00
Maxime Coste
d56f6444b5
Add alt-[kK] for keeping only selections matching/not matching a given regex
2013-04-03 19:07:43 +02:00
Maxime Coste
5bb8e656c5
Editor: fix utf8 handling in prepare_insert
2013-04-03 18:52:49 +02:00
Maxime Coste
72395840f9
Makefile: hide object files
2013-04-03 18:52:16 +02:00
Maxime Coste
0395f3b9fc
fix compilation with clang++
2013-04-03 18:51:40 +02:00
Maxime Coste
161fab13f7
complete_opt: accept an optional length in completion desciptor
2013-04-02 19:57:39 +02:00
Maxime Coste
aa44d05ede
add date information to git-blame
2013-04-02 18:57:02 +02:00
Maxime Coste
3a351aa436
Change list separators to ; and tuple separators to |
2013-04-02 18:56:09 +02:00
Maxime Coste
07f3bbe523
add alt-* for not smart set search pattern to selection
2013-04-02 18:46:33 +02:00
Maxime Coste
0550da2211
add <lt> and <gt> key name
2013-04-02 18:41:45 +02:00
Maxime Coste
b62c78f9e9
ConnectionAccepter: fix socket fd leak
2013-04-02 14:27:04 +02:00
Maxime Coste
76e73866e5
ParameterParser takes flags
...
Only implemented flag is OptionsOnlyAtStart which considers
options given after the first positional parameter as a positional one
2013-04-02 14:22:55 +02:00
Maxime Coste
0325e7f312
minor cleanup in assist function
2013-04-02 14:03:39 +02:00
Maxime Coste
7bf73b5896
OnScopeEnd: move parameter instead of copying it
2013-04-02 14:03:22 +02:00
Maxime Coste
e2d64b01d5
ClientAccepter triggers window redrawing after executing a command
2013-04-02 14:00:37 +02:00
Maxime Coste
cd16a7ff18
FlagLines triggers a window redraw when option is modified
2013-04-02 13:58:28 +02:00
Maxime Coste
e5215e7138
Window: move highlighters after options so that they can reference it
2013-04-02 13:58:04 +02:00
Maxime Coste
b9f5dbd3b5
add an OptionManagerWatcher_AutoRegister class
2013-04-02 13:57:04 +02:00
Maxime Coste
a18241a03b
Extract AutoRegister logic to a helper class
2013-04-02 13:56:30 +02:00
Maxime Coste
b266035c71
fix String::String(Codepoint, CharCount)
2013-04-02 13:42:24 +02:00
Maxime Coste
e070e738f1
Set default shell to bash, as most kak files requires it
2013-04-01 03:49:30 +02:00
Maxime Coste
75fae291e1
Fix flags width handling in FlagLine highlighter
2013-04-01 03:49:30 +02:00
Maxime Coste
f4b3510b14
add git-blame command to git-tools.kak
2013-04-01 03:49:30 +02:00
Maxime Coste
6c2430ce08
FlagLines updates the lines in the option according to buffer modifications
2013-03-31 14:53:32 +02:00
Maxime Coste
22c34b79f6
Move change listener registration to BufferChangeListener_AutoRegister
...
DynamicSelectionList now just inherit from this class, so that
the registration logic can be shared.
2013-03-31 14:53:32 +02:00
Maxime Coste
dbbe455eb1
add git-tools.kak, with experimental git diff display as line flags
2013-03-31 14:53:32 +02:00
Maxime Coste
f09e24607a
add support for adding to options instead of replacing
2013-03-31 14:53:32 +02:00
Maxime Coste
a80cee0d2c
Add support for tuple Options, implement LineAndFlag using that
2013-03-29 19:35:48 +01:00
Maxime Coste
8b821205da
fix BufferIterator::offset
2013-03-29 19:35:48 +01:00
Maxime Coste
585e64fd10
add swap case support with the ~ key
2013-03-29 19:35:48 +01:00
Maxime Coste
01968cb96e
String: inherit from std::string rather than using it as a backend
2013-03-29 19:35:48 +01:00
Maxime Coste
1f4072dc72
use a scoped edition in Repeated so that repeated actions have a single undo group
2013-03-29 19:35:48 +01:00
Maxime Coste
deb502cb40
kakrc: define colorscheme before sourcing user config
2013-03-29 19:35:48 +01:00
Maxime Coste
08873a779a
cpp.kak: fix alt_dirs handling with more than 2 directories
2013-03-29 19:35:47 +01:00
Maxime Coste
96b017f76e
Minor BufferCompleter refactoring
2013-03-29 19:35:47 +01:00
Maxime Coste
417682883e
use only one constructor with a default parameter for units
2013-03-27 18:42:38 +01:00
Maxime Coste
a3bc8dbc79
idvaluemap: minor style changes
2013-03-27 18:42:00 +01:00
Maxime Coste
29f79346c3
Move parameter count validation to the ParameterParser
2013-03-27 14:27:12 +01:00
Maxime Coste
a48672b3bc
factor addhl/rmhl/addfilter/rmfilter completion functions
2013-03-27 14:19:07 +01:00
Maxime Coste
a437e9488b
idvaluemap, FunctionGroup: consitfy completion methods
2013-03-27 14:09:09 +01:00
Maxime Coste
251f09ff89
Merge {Filter,Highlighter}Group in a FunctionGroup template
2013-03-27 13:45:22 +01:00
Maxime Coste
ee0e640384
kak_bufname env var use display_name
2013-03-26 19:28:44 +01:00
Maxime Coste
c6a1fed6b4
add regex_option highlighter, which takes a regex option name and highlight all its matches
2013-03-26 14:26:59 +01:00
Maxime Coste
996e5999ed
permit do declare regex option
2013-03-26 14:26:07 +01:00
Maxime Coste
4ec9c4c32a
Make TypedOption templates public
2013-03-26 13:47:14 +01:00
Maxime Coste
14933bdeaf
% register uses the buffer display name
2013-03-26 13:40:04 +01:00
Maxime Coste
1982144b04
Add a special option type LineAndFlag, use it for FlagLines highlighter
2013-03-26 00:14:38 +01:00
Maxime Coste
36dc6c23a0
add default zero construction to units
2013-03-26 00:04:03 +01:00
Maxime Coste
d02133d382
extract parse_color to color.cc as str_to_color, and add color_to_str
2013-03-25 23:35:59 +01:00
Maxime Coste
9429b662ca
move absolute path logic to Buffer class
2013-03-25 19:58:23 +01:00
Maxime Coste
58caeaa8a8
add a cd command
2013-03-25 19:19:44 +01:00
Maxime Coste
ce67d29871
Always use absolute path for file buffer names, compact paths for display
2013-03-25 19:11:26 +01:00
Maxime Coste
dfa5318765
fix some style problems detected by cppcheck
2013-03-25 18:44:52 +01:00
Maxime Coste
3e9a0c4c13
{grep,make}.kak: use edit! instead of trying to delete buffer
2013-03-22 18:39:48 +01:00
Maxime Coste
a160fd6984
open_fifo delete existing buffer if needed
2013-03-22 18:39:00 +01:00
Maxime Coste
d04a6b1e18
cpp.kak: alt supports an alt_dirs options for directories to search
2013-03-22 14:30:09 +01:00
Maxime Coste
07866e6ae9
show informations on uncaught std::exceptions
2013-03-22 14:29:22 +01:00
Maxime Coste
0082238c75
use canonicalized filenames for buffers
2013-03-22 14:27:30 +01:00
Maxime Coste
5bba01ca9c
BufferManager notify the ClientManager when a buffer dies
2013-03-22 14:26:44 +01:00
Maxime Coste
9494fbbd87
kakrc: avoid bash features
2013-03-22 13:45:52 +01:00
Maxime Coste
a2476a8fbf
setb can take a -buffer argument
2013-03-22 13:44:40 +01:00
Maxime Coste
eeadb59f7f
eval,exec: -restore-selections become -draft, and restore the buffer as well
2013-03-22 13:42:29 +01:00
Maxime Coste
38a46a6682
add WinDisplay hook
2013-03-22 13:41:48 +01:00
Maxime Coste
60599917cc
add a kak_selections env var, which contains all selections separated by a comma
2013-03-21 19:10:18 +01:00
Maxime Coste
e5d93c2194
BufferManager: replace Buffer* get_buffer with Buffer& get_buffer
2013-03-21 19:09:31 +01:00
Maxime Coste
df79b7610a
utf8 validity is not a buffer concern
2013-03-20 19:26:46 +01:00
Maxime Coste
abe37b5fdb
Add a RuntimeError hook called when a runtime_error exception is catched at client level
2013-03-20 19:11:58 +01:00
Maxime Coste
3883bffacc
user defined hooks can access the hook parameter in shell with $kak_hook_param
2013-03-20 19:11:58 +01:00
Maxime Coste
d99fe87b43
Editor: fix select(Selection&, SelectMode::Replace)
2013-03-20 19:11:58 +01:00
Maxime Coste
07a2c2944f
NCurses: draw a scroll bar
2013-03-20 19:11:58 +01:00
Maxime Coste
3f467ba451
BufferCompleter: preserve completions when inserting
...
try to narrow matches with entered prefix
2013-03-20 19:11:58 +01:00
Maxime Coste
a19a788b94
CommandManager: fix some crashes
2013-03-19 18:58:21 +01:00
Maxime Coste
9c78f02903
BufferCompleter: fix backward looping in completion candidates
2013-03-19 14:15:42 +01:00
Maxime Coste
42fae29391
Add an 'insert_hide_sel' option, which hides selection when inserting
2013-03-19 14:04:24 +01:00
Maxime Coste
f0baf35117
clang-complete: do the compilation in the buffer directory
2013-03-19 13:57:23 +01:00
Maxime Coste
ee800ad778
select_to_{,reverse}: search on other lines if needed
2013-03-18 23:47:18 +01:00
Maxime Coste
6907fcf76e
more robust implementation of expand_unprintable
2013-03-18 23:35:23 +01:00
Maxime Coste
d3f586f378
DisplayBuffer::split does not check if the split is on a character boundary
2013-03-18 23:34:40 +01:00
Maxime Coste
2de0d0fccf
add a reg command to set a register
2013-03-18 22:44:39 +01:00
Maxime Coste
5fe7315df9
add 'r' object alias for [] (range)
2013-03-18 22:31:05 +01:00
Maxime Coste
a11a162734
Buffer: optimize do_insert to minimize changes in m_lines vector
2013-03-18 19:45:17 +01:00
Maxime Coste
e6c635be34
DynamicSelectionList: optimize updating on buffer modification
...
Now that we know selections are sorted, we can get the set of selections
needing updating in log(n) time using a binary search, for modification
not changing the line count, this makes updating selections run in log(n)
instead of n.
2013-03-18 19:09:07 +01:00
Maxime Coste
354ae7ad89
Editor: keep selections sorted and use an index for the main one
2013-03-18 19:09:07 +01:00
Maxime Coste
a981d41cde
Editor: replace selections().back() with main_selection()
2013-03-15 18:22:08 +01:00
Maxime Coste
5e88b7fe28
move BufferIterator on_{insert,erase} as DynamicSelectionList implementation detail
2013-03-15 14:22:42 +01:00
Maxime Coste
0c4addb40c
replay_macro: parse keys only once
2013-03-15 14:16:15 +01:00
Maxime Coste
84e3c99c93
Buffer::on_erase: avoid resizing lines more than necessary
2013-03-15 14:15:29 +01:00
Maxime Coste
5dc6a36bf8
Makefile: fix link with bfd linker
2013-03-15 14:03:12 +01:00
Maxime Coste
0ca23f9ebd
clang: fix auto completion when cursor is on end of line
2013-03-14 20:40:43 +01:00
Maxime Coste
17b2d8c052
NCurses: hand coded menu implementation
2013-03-14 19:19:33 +01:00
Maxime Coste
65850ff1e8
add clang.kak, providing clang based insert completion
2013-03-14 14:12:14 +01:00
Maxime Coste
066876a131
add str-list option support to decl command
2013-03-14 14:11:00 +01:00
Maxime Coste
50d9c4dfda
add support for regex options, make ignored_files one
2013-03-14 13:42:07 +01:00
Maxime Coste
0b45a725e4
move remoting code to remote.cc
...
ClientAccepter is now Server's implementation detail and all socket logic
are isolated in remote.cc
2013-03-14 10:23:35 +01:00
Maxime Coste
b309d1df61
move complete_filename to file.cc
2013-03-13 19:39:38 +01:00
Maxime Coste
de536b80cd
goto file uses the 'path' string-list option instead of hard coded paths
2013-03-13 18:52:55 +01:00
Maxime Coste
4069f42845
find_file: automatically add missing '/' and end of paths
2013-03-13 18:52:08 +01:00
Maxime Coste
17f7607a30
write_buffer: consider buffer as saved only if we used it's filename
2013-03-13 18:51:36 +01:00
Maxime Coste
0f957b3743
Editor: fix replace at end of buffer
2013-03-13 14:37:03 +01:00
Maxime Coste
c1db67e31a
Buffer: minor refactoring
2013-03-13 14:36:10 +01:00
Maxime Coste
8acb25d9a4
ctags: use - instead of _ in command name
2013-03-12 19:51:08 +01:00
Maxime Coste
09e30c40e3
BufferCompleter: watch 'completions' option, and update completions when it changes
2013-03-12 19:23:41 +01:00
Maxime Coste
2440a7e82e
NCurses: hook redraw on c-l
2013-03-12 18:57:12 +01:00
Maxime Coste
e428a9757f
Modify network protocol to allow commands through the socket
2013-03-12 18:53:18 +01:00
Maxime Coste
17b861d78e
NCurses: handle empty items in menu_show
2013-03-11 14:20:28 +01:00
Maxime Coste
ddc894ccfe
Add an experimental configurable input completion fonction
...
The completions option (a std::vector<String>) is used for
completions candidates, if it's first element matches the current
cursor position and buffer timestamp.
2013-03-11 14:20:28 +01:00
Maxime Coste
4db6e3e917
add kak_timestamp env var to access current buffer timestamp
2013-03-11 14:20:28 +01:00
Maxime Coste
8cc9a44d47
minor cleanups in complete_word
2013-03-11 14:20:28 +01:00
Maxime Coste
eab2cc240a
InputHandler: complete_word knows best when not to complete
2013-03-09 13:23:47 +01:00
Maxime Coste
89ba8535e2
InputHandler: extract word completion algorithm
2013-03-08 18:43:14 +01:00
Maxime Coste
cfafe203e2
NCurses: fix redrawing when info or menu is hidden
2013-03-08 18:42:43 +01:00
Maxime Coste
1e8a109d0d
Use some builtins colors aliases instead of hardcoded values for highlighters
2013-03-06 20:33:20 +01:00
Maxime Coste
e4240448b1
colalias: always override
2013-03-06 20:30:02 +01:00
Maxime Coste
f677d4ba32
Use a ColorPair in DisplayAtoms instead of separate fg/bg colors
2013-03-06 20:28:02 +01:00
Maxime Coste
594ee65949
do not redraw the whole screen each time
2013-03-06 19:07:10 +01:00
Maxime Coste
a10bfed9e5
ncurses: fix unicode handling in status line
2013-03-06 19:03:58 +01:00
Maxime Coste
5ff22d44be
Add utf8_iterator::advance(CharCount, utf8_iterator end)
2013-03-06 19:03:43 +01:00
Maxime Coste
4712765e8a
Add FlagLines highlighter
...
This highlighter show a given flag in front of each lines whose number
is present in a given int-list option
2013-03-06 14:27:33 +01:00
Maxime Coste
fb7234544e
HighlightersFactories takes back a Window parameter
2013-03-06 14:27:33 +01:00
Maxime Coste
558f32d2d5
throw a runtime error when a wrong type is requested for an option
2013-03-06 14:27:33 +01:00
Maxime Coste
0e2ba188dc
Add support for int list options, specified using a comma seperated list of int
2013-03-06 14:27:00 +01:00
Maxime Coste
3e7344fb14
remove commented line in ncurses.cc
2013-03-05 19:35:40 +01:00
Maxime Coste
ca1d957829
fix ignored_files default value
2013-03-05 19:35:40 +01:00
Maxime Coste
e5dc850274
log to debug when make_regex_ifp catch a regex_error
2013-03-05 19:35:39 +01:00
Maxime Coste
0c4eb7a861
simplify how string -> option conversion are written, free functions instead of template specialization
2013-03-05 19:35:39 +01:00
Maxime Coste
09cf5acb23
Add support for boolean options
2013-03-05 19:03:42 +01:00
Maxime Coste
fac222a427
Strongly typed options support
...
* non builtins options require declaration using the decl command
* At the moment, only int and string options are supported, however
the goal of this change is to provide a consistent way to support
more complex options, namely lists and booleans
2013-03-05 18:49:26 +01:00
Maxime Coste
a36befd653
Use colors instead of underline to highlight selections
2013-03-01 19:31:14 +01:00
Maxime Coste
d23694e31f
Do not use a factory for window builtins highlighters
...
This helps cleanup up the code, as factories no longer takes
a window as parameter.
2013-03-01 19:15:05 +01:00
Maxime Coste
8ef79c41bd
show_line_numbers does not need a window
2013-03-01 14:30:30 +01:00
Maxime Coste
6b812d9f6c
Window: segregate builtins highlighters from the others
2013-03-01 14:29:59 +01:00
Maxime Coste
6318f2268f
assistant: no need for raw strings
2013-03-01 14:29:28 +01:00
Maxime Coste
3a60e633a4
safe_ptr have no overhead when KAK_DEBUG is not defined
2013-02-28 18:54:15 +01:00
Maxime Coste
298926a16e
Editor::multi_select: reserve some vector space in advance
2013-02-28 18:51:58 +01:00
Maxime Coste
161e32e137
fix warning
2013-02-28 18:51:24 +01:00
Maxime Coste
849f225e70
use a 16K buffer when reading from fifo
2013-02-28 18:51:11 +01:00
Maxime Coste
26826b981d
grep: highlight columns when present
2013-02-27 23:50:57 +01:00
Maxime Coste
9f9ad58b39
utf8::dump uses a copy of the output iterator instead of a reference
2013-02-27 23:50:33 +01:00
Maxime Coste
8e07e00f18
ShellManager: remove unneeded end of lines when writing stderr
2013-02-27 21:31:48 +01:00
Maxime Coste
72531f2df0
string: remove unneeded headers
2013-02-27 21:26:12 +01:00
Maxime Coste
9ea11394bc
reorganize keymap
2013-02-27 21:21:11 +01:00
Maxime Coste
771241ad97
use 'Q' for replay macro
2013-02-27 21:13:06 +01:00
Maxime Coste
4ad8941563
Editor: fix move_selection(LineCount) when current column is after next line end
2013-02-27 21:09:48 +01:00
Maxime Coste
8606fdae5d
NCurses: go back to non ncursesw/ headers
2013-02-27 21:05:17 +01:00
Maxime Coste
43bc8314fb
ParameterParser: refactoring, simplify
2013-02-27 20:51:44 +01:00
Maxime Coste
09901d455e
Add 'gf' (goto file) functionality
2013-02-27 19:58:38 +01:00
Maxime Coste
99475f93d9
String: add rbegin/rend methods
2013-02-27 19:58:24 +01:00
Maxime Coste
f82a2e22a1
Containers utils: use Container&& in order to accept temporaries
2013-02-27 19:58:07 +01:00
Maxime Coste
2f410f62e4
Add String Range::content() const
2013-02-27 19:11:25 +01:00
Maxime Coste
9230667c11
Add " and ' support to object selection
2013-02-27 19:08:13 +01:00
Maxime Coste
be0c5ddf49
minor performance tweaks
2013-02-27 19:03:33 +01:00
Maxime Coste
cd8c36fc50
Add a debug option to Makefile, and use KAK_DEBUG define to remove debug code
2013-02-27 19:02:01 +01:00
Maxime Coste
6f48407f55
Use current locale
2013-02-27 19:01:07 +01:00
Maxime Coste
2854984c79
use std::isalnum for is_word implementation in order to support unicode
2013-02-26 18:54:11 +01:00
Maxime Coste
b68cc3cd3c
NCurses: fix unneeded last line when displaying info box
2013-02-26 18:53:29 +01:00
Maxime Coste
0f413607c2
Fix utf8 handling when moving selection up/down
2013-02-26 18:52:49 +01:00
Maxime Coste
3d19111570
Use unicode box drawing character for the assistant
2013-02-26 14:28:42 +01:00
Maxime Coste
ffc5a4a334
Add a String(Codepoint, CharCount) constructor
2013-02-26 14:28:20 +01:00
Maxime Coste
2726d11108
handle SIGFPE, SIGQUIT and SIGTERM as well as SIGSEGV
2013-02-26 14:13:37 +01:00
Maxime Coste
6d4552e7d8
Add an expand_unprintable highlighter which replaces unprintable char with U+XXXX
2013-02-26 14:12:21 +01:00
Maxime Coste
c343407465
Fix utf8 handling in Editor::insert when replacing
2013-02-26 14:06:25 +01:00
Maxime Coste
7865223587
Add utf8::character_start function
2013-02-26 14:05:51 +01:00
Maxime Coste
9b3bc8523b
Use ncursesw in order to get correct utf8 handling
2013-02-26 14:05:16 +01:00
Maxime Coste
dc7227b983
Add the most important missing feature of Kakoune
2013-02-25 19:38:20 +01:00
Maxime Coste
dc8803e41b
String: use a CharCount instead of a size_t in String(char, CharCount)
2013-02-25 19:25:32 +01:00
Maxime Coste
8f3d2ae089
main: catch all exceptions
2013-02-22 18:45:59 +01:00
Maxime Coste
77dc9955d3
Paste: use count for repetition
2013-02-22 18:45:27 +01:00
Maxime Coste
4b11f73f1e
buffer: remove too slow check from check_invariant
2013-02-22 18:38:53 +01:00
Maxime Coste
5c74f98757
Use S for regex splitting, and alt-s for line splitting
2013-02-22 18:37:34 +01:00
Maxime Coste
5f446d9aec
try to merge selections when begining incremental insertion
2013-02-21 18:44:17 +01:00
Maxime Coste
d647e817a4
grep,make: bind normal mode return to jump
2013-02-21 13:39:31 +01:00
Maxime Coste
efc0a8bc07
grep,make: support specifying client with toolsclient option
...
When toolsclient option is set, make and grep opens their buffer
in the specified client instead of the current one.
2013-02-21 13:38:12 +01:00
Maxime Coste
901d5ea1be
Add mail.kak for mail file highlighting
2013-02-21 13:36:25 +01:00
Maxime Coste
cf01f0ed7a
Avoid recursive macro calls
2013-02-21 13:35:20 +01:00
Maxime Coste
9306a89deb
Fix macro recording on the same register, replace instead of appending.
2013-02-21 13:34:34 +01:00
Maxime Coste
6573f16dd9
Buffer: commit current undo group before attempting to undo anything
2013-02-20 14:23:52 +01:00
Maxime Coste
9f4498e035
Buffer: replace {begin,end}_undo_group with a single commit_undo_group method
2013-02-20 14:20:16 +01:00
Maxime Coste
682e4faff0
select and split operations use the search pattern register
2013-02-20 14:04:46 +01:00
Maxime Coste
02b01e2f0a
ShellManager: catch exception thrown by env var functors
2013-02-19 19:06:13 +01:00
Maxime Coste
a83731c8e1
search: fix empty search string, use previous pattern
2013-02-19 19:05:13 +01:00
Maxime Coste
c451dd07c6
InputHandler: do not put empty lines in history
2013-02-19 19:04:36 +01:00
Maxime Coste
18aac3d4e8
Add '*' binding, which (smart) copy current selection to search pattern
2013-02-19 19:04:09 +01:00
Maxime Coste
a453ddaf37
Add support for Home/End key in prompts
2013-02-19 13:50:27 +01:00
Maxime Coste
b08749285e
move status line generation code to client manager
2013-02-18 19:03:39 +01:00
Maxime Coste
b43fdc7eb6
Add macro recording/replay support
2013-02-18 18:58:07 +01:00
Maxime Coste
577734dae7
expose exec_keys function in commands.hh
2013-02-18 18:57:08 +01:00
Maxime Coste
9936ace0db
input_handler: ask dimensions to ui instead of window
2013-02-18 14:13:52 +01:00
Maxime Coste
fc2dd599a3
Move last insert state from context to input handler
2013-02-18 14:07:30 +01:00
Maxime Coste
0e081a76c1
make keymap definition more readable using a select helper function
2013-02-18 14:01:24 +01:00
Maxime Coste
67971995f8
Fix class/struct mismatches
2013-02-18 14:00:43 +01:00
Maxime Coste
bd5955c737
grep: remove enventual \r
2013-02-13 14:32:30 +01:00
Maxime Coste
4eea0a4ce1
Window: try to show as much of the selection as possible
2013-02-12 19:01:25 +01:00
Maxime Coste
cb26948ad3
ClientManager: move the Client inner class detail in the cpp file
2013-02-07 19:25:42 +01:00
Maxime Coste
32e6184210
context_wrap: create a DynamicSelectionList only when needed
2013-02-07 19:25:07 +01:00
Maxime Coste
2f9041b842
Editor: fix warning
2013-02-07 13:37:22 +01:00
Maxime Coste
6c7d646d35
exec keys: push_jump if editor has changed
2013-02-07 13:35:21 +01:00
Maxime Coste
785abfbad5
ctags.kak: do not automatically enable info tooltips
2013-01-31 19:00:02 +01:00
Maxime Coste
1c301482d5
tweak buffer unit test
2013-01-31 18:59:23 +01:00
Maxime Coste
edef8e4e98
Remove Set and use unordered_set
2013-01-31 18:58:25 +01:00
Maxime Coste
7f02ef334f
add some tests for Key functions
2013-01-30 19:16:36 +01:00
Maxime Coste
bc63be3388
open_fifo uses fcntl for more portable CLOEXEC bit setting
2013-01-30 19:08:16 +01:00
Maxime Coste
45367bf447
ctags.kak: tweak auto info
2013-01-30 19:05:52 +01:00
Maxime Coste
c9b113fd5f
InputHandler: add some new hooks
2013-01-30 19:04:03 +01:00
Maxime Coste
de0f765498
Keys: add key_to_str function
2013-01-30 19:03:11 +01:00
Maxime Coste
045aa0c7ec
style fix
2013-01-30 00:27:22 +01:00
Maxime Coste
e278196e99
ctags: initial auto fonction documentation support
2013-01-30 00:24:10 +01:00
Maxime Coste
00a9cdfc90
Context: remove some unused code
2013-01-29 23:16:58 +01:00
Maxime Coste
8933109cc5
Context: fix unintialized m_input_handler
2013-01-29 19:13:39 +01:00
Maxime Coste
252f875926
fix sort_and_merge_overlapping
2013-01-29 19:05:40 +01:00
Maxime Coste
84ea452ed2
info command take a -anchor <pos> instead of -inline params
2013-01-29 18:56:14 +01:00
Maxime Coste
f8209e3b52
fix contains for empty containers
2013-01-29 18:55:32 +01:00
Maxime Coste
3171ab0c52
NCurses: fix multiline info
2013-01-29 14:24:42 +01:00
Maxime Coste
2235944e60
Add NormalIdle hook support
2013-01-29 13:58:19 +01:00
Maxime Coste
38a67e72bc
Do not pass a context to InputHandler methods
2013-01-29 13:49:01 +01:00
Maxime Coste
94bbf47cd4
InputHandler have it's own context
2013-01-28 13:48:34 +01:00
Maxime Coste
3d430e14c4
Buffer: small fix in apply_modification
2013-01-28 13:45:32 +01:00
Maxime Coste
54725ebcca
Buffer::do_insert: fix on_insert call when inserting at the end
2013-01-24 14:08:24 +01:00
Maxime Coste
28cb78bed1
Editor: refactor InsertMode::Replace
2013-01-23 18:58:43 +01:00
Maxime Coste
410067282a
Buffer: end is either one past last character, or one past last line
2013-01-23 18:52:42 +01:00
Maxime Coste
72cc61c987
add undo unit_test and fix Buffer
2013-01-23 14:39:33 +01:00
Maxime Coste
3404366b65
add more asserts
2013-01-23 14:39:33 +01:00
Maxime Coste
f14bc5e310
Buffer: small style fixes
2013-01-23 13:47:45 +01:00
Maxime Coste
9dbc6adcda
add a SIGSEGV handler
2013-01-23 13:46:18 +01:00
Maxime Coste
2f9e061252
assert: add some debug info in the message
2013-01-23 13:45:44 +01:00
Maxime Coste
4497767492
NCursesUI::get_key(): move getch_iterator as a local type
2013-01-22 14:29:16 +01:00
Maxime Coste
0c8832c42a
LineAndColumn::operator+= is not constexpr
2013-01-22 14:28:43 +01:00
Maxime Coste
1b53b92267
Buffer: check that newlines are at the end of lines
2013-01-22 14:28:15 +01:00
Maxime Coste
f7038980a0
Add kak_cursor_{line,column} env var
2013-01-21 13:58:54 +01:00
Maxime Coste
9002059c0d
Window: fix display position, count utf8 characters for column
2013-01-17 19:49:49 +01:00
Maxime Coste
f1b6108367
NCurses: use default background for '~'
2013-01-17 19:49:48 +01:00
Maxime Coste
9c2bbe218b
replace char: fix unicode handling
2013-01-17 19:49:48 +01:00
Maxime Coste
44ca4d23de
Fix sort_and_merge_overlapping
2013-01-17 19:49:48 +01:00
Maxime Coste
3f01f4bdf5
Add some documentation to InputHandler
2013-01-17 14:27:32 +01:00
Maxime Coste
d1f15123e4
InputHandler: minor code cleanup
2013-01-17 14:22:24 +01:00
Maxime Coste
edb5dbc56f
move {exec,eval}_string common code to a helper context_wrap function
2013-01-17 14:06:06 +01:00
Maxime Coste
c45838cc57
Move Insertion Hooks handing to the input handler
2013-01-17 13:58:57 +01:00
Maxime Coste
cedb0d18a3
exec and eval accepts a restore-selection parameter
2013-01-17 13:58:09 +01:00
Maxime Coste
621be2ceab
Hooks now takes a non-const context
2013-01-17 13:45:43 +01:00
Maxime Coste
bdc47ddef8
NCursesUI: redraw becomes a member
2013-01-15 14:16:45 +01:00
Maxime Coste
93cad94330
InputHandler: Insert mode calls 'InsertIdle' hook when idle
2013-01-15 14:15:12 +01:00
Maxime Coste
12ce590f18
Context: add a hooks method similar to the options one
2013-01-14 19:26:44 +01:00
Maxime Coste
a1998dac7a
InputHandler: use a timer for word completion instead of calling it at each insertion
2013-01-14 19:17:37 +01:00
Maxime Coste
90eeb7b8a7
EventManager: add support for timers
2013-01-14 19:07:38 +01:00
Maxime Coste
eaaf88db1d
rename StronglyTypedInteger to more accurate StronglyTypedNumber
2013-01-14 18:51:45 +01:00
Maxime Coste
3d00f398fe
NCurses: redraw after menu/info window is modified
2013-01-14 18:51:07 +01:00
Maxime Coste
310ec1f791
move input watching responsibility into UserInterface implementations
2013-01-14 18:50:17 +01:00
Maxime Coste
d2f0e2de66
RemoteClient owns the FDWatcher of it's socket
2013-01-11 18:44:02 +01:00
Maxime Coste
914ede7a82
Add and use a Set template class for recuring small sets
2013-01-11 14:28:13 +01:00
Maxime Coste
79d28e68dc
Refactor EventManager
...
Watching a file descriptor is now done using a FDWatcher object
2013-01-10 19:10:42 +01:00
Maxime Coste
bba7152063
Add backward search support (bound to alt-/)
2013-01-08 18:46:45 +01:00
Maxime Coste
f77509d498
add sh.kak for shell script highlighting
2013-01-08 14:01:22 +01:00
Maxime Coste
59941bcfa9
Make: fix userconfig target
2013-01-08 14:00:13 +01:00
Maxime Coste
3f7bf82cde
Support for selecting to surrounding object begin/end with [ and ]
2013-01-07 18:53:27 +01:00
Maxime Coste
8d4678a82e
Autoname client on creation, and access client name from shell with $kak_client
2013-01-07 13:59:09 +01:00
Maxime Coste
7acd4e3e6a
minor code cleanup
2013-01-06 21:58:02 +01:00
Maxime Coste
9efc32596b
make: use a makecmd option
2013-01-06 19:21:42 +01:00
Maxime Coste
f3640a2d03
alt-r rotates selections
2013-01-05 18:26:57 +01:00
Maxime Coste
4b649d386c
various code style fixes
2013-01-04 18:39:13 +01:00
Maxime Coste
5939eb219f
add client.kak providing 'new' command for opening a new client
...
Autodetect tmux, use tmux if we are in a tmux session, else fallback to
urxvt.
2013-01-04 18:31:37 +01:00
Maxime Coste
03d32c2e2d
tweak kakrc highlighting
2013-01-03 18:53:04 +01:00
Maxime Coste
08fd946c07
Add a nop command to avoid accidental shell output evaluation
2013-01-03 18:52:07 +01:00
Maxime Coste
f84e46f805
tweak errjump command
2013-01-03 18:47:51 +01:00
Maxime Coste
ae9aadb07d
Fix captures preservation in Editor
2013-01-03 18:47:02 +01:00
Maxime Coste
2195d59b49
refactoring selectors
2013-01-03 14:30:14 +01:00
Maxime Coste
4f6507b808
Highlight last selection differently
2013-01-03 14:01:34 +01:00
Maxime Coste
0045456f87
alt-n replace last selection with next match
2013-01-03 14:00:59 +01:00
Maxime Coste
02b9fcc3df
Editor: add a ReplaceLast select mode
2013-01-03 14:00:31 +01:00
Maxime Coste
9fb0129061
Editor: keep last selection as last when sorting
...
sort selections 'circularly', keeping the last one
at the end of the list.
2013-01-03 13:59:53 +01:00
Maxime Coste
a9d5f126a0
Editor: preserve captures accross movements
2013-01-02 13:49:02 +01:00
Maxime Coste
476363bf0d
Editor: cleanup check_invariants calls
2012-12-31 18:36:28 +01:00
Maxime Coste
074a21463b
add a current search highlighter
2012-12-31 14:37:11 +01:00
Maxime Coste
d5582b0df4
add incsearch option to choose if incremental search is enabled
2012-12-31 14:12:00 +01:00
Maxime Coste
76c3246642
Add Editor::select(const Selection&, SelectMode)
2012-12-31 14:06:20 +01:00
Maxime Coste
4e69ec078d
minor cleanup
2012-12-31 13:57:21 +01:00
Maxime Coste
18b35a3ab3
Editor: merge_overlapping -> sort_and_merge_overlapping
2012-12-31 13:56:52 +01:00
Maxime Coste
dc9635a247
Fix join on last line (it appended a trailing space)
2012-12-31 13:44:01 +01:00
Maxime Coste
fe363094cf
support count in search next, and only push jump in replace mode
2012-12-31 13:42:59 +01:00
Maxime Coste
2b2474b2d1
add a force mode to delete buffer (db!)
2012-12-28 14:07:35 +01:00
Maxime Coste
cb80ae139b
IncrementalInserter: fix append mode when on line end
2012-12-28 14:06:56 +01:00
Maxime Coste
28cf772deb
tweak window status line format
2012-12-28 13:53:00 +01:00
Maxime Coste
9531fd5915
Buffer loses the 'New' flag when written
2012-12-28 13:52:19 +01:00
Maxime Coste
d4f155cae7
new clients always takes last used buffer, support multiple file on command line
2012-12-28 13:51:14 +01:00