Maxime Coste
70d65dac79
git-tools.kak: support add and diff command
2013-04-26 18:48:31 +02:00
Maxime Coste
8bfe2d62e5
echo: rename -col option to -color
2013-04-26 18:48:31 +02:00
Maxime Coste
7ce3212fb2
When committing an undo group, run an optimization pass on it
...
With incremntal insertion, undo groups tends to be a lot of single
character insertion/deletions at the same point, but the end
result is most of the time a single string insertion. Buffer
now tries to optimize the undo group.
2013-04-26 18:48:31 +02:00
Maxime Coste
b16c967f9c
Buffer::Modification::Position is a BufferCoord instead of a BufferIterator
2013-04-26 18:46:42 +02:00
Maxime Coste
f8c3b6c9ef
Buffer: rename character_count method to byte_count
2013-04-24 13:56:36 +02:00
Maxime Coste
7c4e79ef98
BufferCompleter: change behaviour to handle non prefix completions
...
Try to have a nice behaviour when the completions do not share
a prefix with the [completion begin, cursor pos] string.
For example an address book completion may provide candidates
for frrrwww that are 'Maxime Coste <frrrwww@gmail.com>', not
having frrrwww as a prefix.
2013-04-23 19:08:50 +02:00
Maxime Coste
ef07b98215
utils: add is_in_range function
2013-04-23 19:08:44 +02:00
Maxime Coste
6913510e67
use alt-J for joining and selecting the spaces replacing line breaks
2013-04-23 18:54:31 +02:00
Maxime Coste
72ef210e1b
Buffer: add is_valid(BufferCoord) method
2013-04-23 18:46:18 +02:00
Maxime Coste
dd3a7f739d
FlagLines: do not create a new local option in window if the option comes from the buffer
2013-04-23 14:03:54 +02:00
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