Commit Graph

1301 Commits

Author SHA1 Message Date
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