Commit Graph

3165 Commits

Author SHA1 Message Date
Kylie McClain
77ba471020 Makefile: Allow for passing include/ncursesw path 2015-11-19 20:09:24 -05:00
Maxime Coste
c0f1b7b99f Introduce a debug flags option to control some tracing
Support shell|hooks and write traces in debug buffer
2015-11-19 21:58:26 +00:00
Maxime Coste
2977cc97b3 Merge branch 'ws' of git://github.com/jubalh/kakoune 2015-11-19 21:56:45 +00:00
Maxime Coste
bf213b01dd Keep an empty last line in debug buffer to provide auto scrolling 2015-11-19 21:33:50 +00:00
Kylie McClain
1ed66e9b6a Fix building with musl libc 2015-11-19 20:23:55 +00:00
Maxime Coste
788c358720 Fix some cases where menu items are truncated needlessly 2015-11-19 20:23:27 +00:00
Michael Vetter
71f6ee3234 Remove trailing whitespaces 2015-11-19 16:31:00 +01:00
Maxime Coste
daf041e839 Implement some generic utilities to convert flags to/from strings 2015-11-19 00:17:52 +00:00
Maxime Coste
784ab635ee Splitting an empty string now returns an empty vector 2015-11-19 00:17:18 +00:00
Maxime Coste
9656f088e7 Change autoinfo option to be a flags option, document flags options
Support the value1|value2|value3 syntax for flag options.
2015-11-18 23:47:28 +00:00
Maxime Coste
5c37f0dd5e Propagate shell context through prompt/onkey/menu commands 2015-11-18 20:15:51 +00:00
Maxime Coste
5743ea7384 Respect count argument on search 2015-11-18 20:13:03 +00:00
Maxime Coste
8d47cf0674 Fix correctly ncurses menu size computations and avoid divide by 0 2015-11-18 20:12:16 +00:00
Maxime Coste
6925ff33b1 Send client dimensions on connection, avoid a race condition.
Fixes #429
2015-11-18 13:43:43 +00:00
Maxime Coste
a37858ece7 Put count and register normal mode params in the shell context
'10:echo %val{count}' will display 10
Fixes #10
2015-11-17 23:47:59 +00:00
Maxime Coste
6bd71c68e5 NCurses: Fix max menu item width computation 2015-11-17 23:34:03 +00:00
Maxime Coste
cb108b248a Fix alias completion and overwritting 2015-11-17 13:55:27 +00:00
Maxime Coste
97cc166885 Try to restore the previously opened buffer when converting to client mode
Fixes #483
2015-11-16 13:52:33 +00:00
Maxime Coste
1bf0a964ce Move is_basic_alpha to unicode.hh 2015-11-15 13:24:39 +00:00
Maxime Coste
111732005a Support <c-v> to insert raw value in insert/prompt mode 2015-11-13 13:52:54 +00:00
Maxime Coste
67d1b7dcd1 Faster BufferIterator::operator++/-- 2015-11-12 13:59:36 +00:00
Maxime Coste
2113b829df Show an info box explaining that spaces disable history recording in command prompt
Fixes #477
2015-11-12 13:57:14 +00:00
Maxime Coste
d6168a90fc Fix access to dead temporary 2015-11-11 19:14:35 +00:00
Maxime Coste
b73a890f8c Document i attribute in face command info 2015-11-11 19:05:47 +00:00
Maxime Coste
a5c8437873 Remove unneeded conversion 2015-11-11 19:05:32 +00:00
Maxime Coste
892c3647e4 Fix to_lower/to_upper handling to correctly support non unicode chars
require a proper unicode locale setup on the system
Fixes #94
2015-11-11 00:21:20 +00:00
Maxime Coste
7bd3f4306d Remove useless checks, buffer has always at list one line 2015-11-10 23:06:57 +00:00
Maxime Coste
217dd6a1de Disable history when executing maps
Fixes #476
2015-11-10 21:24:47 +00:00
Maxime Coste
a0bcdd83df Document default registers 2015-11-10 20:39:17 +00:00
Maxime Coste
9134066e85 Try to switch to last buffer when removing the current one 2015-11-10 13:52:48 +00:00
Maxime Coste
53184829ee Avoid unneeded inc/dec rec in RefPtr::operator= 2015-11-10 13:50:15 +00:00
Maxime Coste
6e08716899 Refactor Normal input mode on_key method 2015-11-09 21:30:07 +00:00
Maxime Coste
6ecccf4119 Regex based normal mode command honor the selected register
They default to the '/' register for the default regex, but can
use another if specified with "<reg>
2015-11-09 21:28:18 +00:00
Maxime Coste
9b8e2526f9 Merge search hihglighter and regex option highlighter in dynregex 2015-11-09 09:34:03 +00:00
Maxime Coste
62c981fe2d Small tweak in DynamicRegexHighlighter 2015-11-09 08:50:17 +00:00
Maxime Coste
a2d78941ba Catch expression evaluation errors in line/column highlighters 2015-11-09 08:42:40 +00:00
Maxime Coste
12abb54a88 Slightly more performant regex capture gathering in select_all_matches 2015-11-09 08:42:12 +00:00
Maxime Coste
6840f7ce9c Store the last used buffer in clients
Fixes #474
2015-11-07 18:25:49 +00:00
Maxime Coste
6bb775241c Optimize BufferIterator to avoid a lot of pointer chasing 2015-11-07 16:55:48 +00:00
Maxime Coste
04c8334c98 Avoid useless StringDataPtr copy 2015-11-07 16:55:20 +00:00
Maxime Coste
28d451b844 Support 'current' scope in set/unset command 2015-11-06 13:56:48 +00:00
Maxime Coste
65e67b0656 Remove unused _ss UDL 2015-11-06 13:37:51 +00:00
Maxime Coste
33253a8fd5 Support 'V' for locked view control
Fixes #343
2015-11-05 13:40:40 +00:00
Maxime Coste
05f7337eb0 Change ncurses wheel down default button to 5 2015-11-05 13:28:58 +00:00
Maxime Coste
48a296dc71 Avoid an unneeded call to ensure_char_start 2015-11-04 20:10:12 +00:00
Maxime Coste
d6a2d77857 Fix double check_invariant in SelectionList construction, and set main selection to last 2015-11-04 19:53:47 +00:00
Maxime Coste
2ce0a5a8a8 Merge https://github.com/alpha123/kakoune 2015-11-04 19:49:21 +00:00
Maxime Coste
1c831b41da always_inline a few RefPtr operators 2015-11-04 19:47:26 +00:00
Maxime Coste
e82ca36117 Avoid unneeded sort_and_merge_ovelapping call in select_all_matches 2015-11-04 19:43:25 +00:00
Maxime Coste
719997f0ab Do not tag BufferIterator as random access
Boost regex considers that random access means fast distance
computation, which is not the case for BufferIterator where
Buffer::distance is O(num lines between them) which can get
big on large files.

Fixes #462
2015-11-04 01:01:52 +00:00
Maxime Coste
6273aa9443 Rework Buffer::distance implementation 2015-11-04 01:01:52 +00:00
alpha123
97c92368bc Build on FreeBSD 2015-11-03 11:51:27 -07:00
Maxime Coste
e8239feddf Minor cleanup in normal.cc 2015-11-03 13:59:05 +00:00
sinetek
4b8c03afe6 Adding support for DragonFlyBSD. 2015-11-03 01:14:34 +07:00
Maxime Coste
c8d2417646 Support horizontal centering in view commands (using m)
Fixes #442
2015-11-02 19:51:59 +00:00
Maxime Coste
17eef4a7dc Use explicit lambda captures 2015-11-02 13:44:03 +00:00
Maxime Coste
2bf44b6b49 Make word insert completion work better with unicode char 2015-10-30 13:57:46 +00:00
Maxime Coste
f556ef12c4 Fix preservation of entered text in option insert completer 2015-10-30 13:08:07 +00:00
Maxime Coste
34d7bdbc01 Minor code cleanup in insert_completer.cc 2015-10-30 13:07:48 +00:00
Maxime Coste
32b51e2cc3 Use ranked matches for option completion as well 2015-10-29 13:57:50 +00:00
Maxime Coste
8030897708 Merge branch 'master' into ranked-word-completion 2015-10-29 13:44:55 +00:00
Maxime Coste
24043bbffe Use an heuristic based match ranking algorithm inspired by what YouCompleteMe does 2015-10-29 13:36:30 +00:00
Maxime Coste
4b7b04bf59 Fix mouse scrolling up stopping at line 2
Fixes #448
2015-10-28 00:01:25 +00:00
Maxime Coste
89d22f3335 Move more logic into RankedMatch 2015-10-27 21:25:18 +00:00
Maxime Coste
2eba789610 Merge branch 'master' into ranked-word-completion 2015-10-27 13:33:15 +00:00
Maxime Coste
40c6edf243 Document exclusive attribute 2015-10-23 13:49:02 +01:00
Maxime Coste
5118e13aee Remove useless std::move 2015-10-23 13:46:55 +01:00
Maxime Coste
e7152bad56 Add an exclusive attribute that overrides existing face 2015-10-23 13:46:41 +01:00
Maxime Coste
1ba37bacd8 Fix optimized linkage 2015-10-23 09:49:06 +01:00
Maxime Coste
c77cb7c777 Extract WordDB::RankedWord as RankedMatch in its own file 2015-10-22 19:49:08 +01:00
Maxime Coste
da7fc3311f Pass ShellContext to commands
Fix #427
2015-10-22 13:59:23 +01:00
Maxime Coste
e51ef6c3c2 Wrap the shell params en env vars in a ShellContext struct 2015-10-22 13:48:57 +01:00
Maxime Coste
7346220e38 Fix :set completion when -add switch is given 2015-10-22 13:29:34 +01:00
Maxime Coste
5938712d1f Support :set -add on strings, using concatenation 2015-10-22 13:21:59 +01:00
Maxime Coste
019b3235b0 Remove legacy WordDB::find_matching method 2015-10-21 20:16:36 +01:00
Maxime Coste
2bf391f36d Sort insert completer words by name favoring lower case and then stable sort by rank 2015-10-20 13:50:55 +01:00
Maxime Coste
9449f763e0 Fix removal of duplicated words in insert completion 2015-10-19 19:39:05 +01:00
Maxime Coste
73e438be07 Fix handling of explicit insert completers 2015-10-19 13:43:23 +01:00
Maxime Coste
364914afbd Do not filter completions in InsertCompleter anymore
Just rerun the actual completers
2015-10-18 17:51:13 +01:00
Maxime Coste
4f2584a091 Experiment with ranked word completion depending on word boundaries 2015-10-18 16:55:21 +01:00
Maxime Coste
944d8f53fb Fix OSX compilation 2015-10-18 12:45:27 +01:00
Maxime Coste
2cd0ce41ac Do not try to extend last match when updating regex matches
It does not work well with regexes starting with a lookbehind, as
we would need to reparse from further away, leading to the last
match just being removed. It seems safer not to remove it, as
the motivating use case (multiline macros) is better left to
regions anyway.

Fixes #440
2015-10-18 11:37:04 +01:00
Maxime Coste
76fadd8108 More cleanups in the buffer open/reload code 2015-10-17 11:33:09 +01:00
Maxime Coste
fe704b9b84 Move line parsing and to Buffer.cc directly 2015-10-17 11:33:09 +01:00
Maxime Coste
3795ff735a Refactor buffer creation and reloading to be more explicit
Reloading used to be implicit in the buffer creation function,
which is not always nice, as code that explicitely wanted to
reload a buffer could not say so.
2015-10-17 11:33:09 +01:00
Maxime Coste
776059a4c3 Fix double destruction of local ui 2015-10-14 13:21:27 +01:00
Maxime Coste
43fb216772 Remove unneeded constructor 2015-10-14 08:49:13 +01:00
Maxime Coste
572cf9d6b2 Fix file change detection not working in certain cases
Files opened from the command line where not handled correctly.
2015-10-13 19:31:24 +01:00
Maxime Coste
49557f5b17 Restore info box after a resize as well
Fixes #425
2015-10-13 13:58:39 +01:00
Maxime Coste
9f78f9bfd5 Try to restore menu after a resize 2015-10-13 13:52:02 +01:00
Maxime Coste
e5240ba4ff Fix NCursesUI::m_items not being empty after a resize
Fixes #435
2015-10-13 13:40:04 +01:00
Maxime Coste
2d7e99da98 Tweak file change checking timeout handling 2015-10-10 14:18:43 +01:00
Maxime Coste
50f5140cbd When displaying a prompt content with line break char, replace them with their unicode control picture 2015-10-09 13:55:55 +01:00
Maxime Coste
256e4d7862 NCursesUI: Remove color restoring support 2015-10-09 13:43:13 +01:00
Maxime Coste
a4447819e5 Fix OSX compilation 2015-10-09 13:41:28 +01:00
Maxime Coste
0d8b9c6677 Tweak handling of SIGINT 2015-10-08 20:23:32 +01:00
Maxime Coste
473196e18d Store color/color pairs mapping in the ncurses ui instance 2015-10-08 20:23:32 +01:00
Maxime Coste
bd01171861 Auto fork server when suspending the local client
That way, other clients can still be serviced by the server.
2015-10-08 20:05:47 +01:00
Maxime Coste
7776c38755 Detect ungraceful exits, and backup modified buffers in these cases 2015-10-08 13:43:39 +01:00
Maxime Coste
3098cd12f8 Check for terminal resize on SIGCONT
Fixes #423
2015-10-08 13:24:58 +01:00
Maxime Coste
5e4443812c Fix warning in ncurses_ui.cc 2015-10-06 21:15:13 +01:00
Maxime Coste
67646cd45a Cleanup insert_completer code and use markup for option completion menu entry 2015-10-06 13:37:16 +01:00
Maxime Coste
c41a7eed09 Fix display of path insert completion for absolute paths 2015-10-05 23:30:20 +01:00
Maxime Coste
31cc61b6fc Allow parsing empty strings as default color in face descs 2015-10-05 20:32:51 +01:00
Maxime Coste
db2fa6f5cb Support markup in menu command 2015-10-05 13:51:13 +01:00
Maxime Coste
69b16d814b Display word insert completion buffer name in a different color 2015-10-05 01:48:00 +01:00
Maxime Coste
c54e6738b9 Use DisplayLine for menu choices 2015-10-05 01:25:23 +01:00
Maxime Coste
38e9bf4f96 Fix OSX compilation 2015-10-03 11:21:35 +01:00
Maxime Coste
f7ba2a896c Tweak ui_options docstring 2015-10-02 13:56:19 +01:00
Eike Plack
faa3b3b173 Add self documentation to ui_options
* For now the non ui code will hold this information. Ideally the UI would
be able to describe its options in some way.
2015-10-02 13:54:08 +01:00
Maxime Coste
a6cd764042 Add ncurses_enable_mouse ui option 2015-10-02 13:52:41 +01:00
Maxime Coste
bb96ad44b2 Refactor ShellManager process spawning 2015-10-02 13:37:06 +01:00
Maxime Coste
1cb4d2965f Fix '*' word boundary detection at begin/end of buffer 2015-10-01 19:35:42 +01:00
Maxime Coste
77408becbd Fix removing shared highlighters 2015-09-30 00:18:37 +01:00
Maxime Coste
6913d5427c Try to fix OSX compilation 2015-09-27 18:48:01 +01:00
Maxime Coste
9fdb822c27 Add support for italic text attribute 2015-09-27 14:24:42 +01:00
Maxime Coste
e2720f1fbe Store timespec for buffer fs timestamps, not just time_t
time_t has a resolution of one second, which cause troubles when
a file changes multiple time during that same second.
2015-09-27 11:55:34 +01:00
Maxime Coste
3262a6902c Allow custom separator for line numbers
the number_lines highlighter accepts a -separator <arg> switch
to change the default '│' separator.

Fixes #295
2015-09-25 13:47:57 +01:00
Maxime Coste
4ea89def3b Avoid (*it++) pattern in utf8.hh 2015-09-25 13:19:21 +01:00
Maxime Coste
48a7448b11 Merge remote-tracking branch 'freefull/master' 2015-09-24 23:01:20 +01:00
Filip Szczepański
47e6eed7c9 Add Haiku support. 2015-09-24 22:36:29 +00:00
Maxime Coste
aa4b98af7c Add utf8::read_codepoint that both gets the codepoint and advance iterator 2015-09-24 23:00:47 +01:00
Maxime Coste
12ef466f3a Avoid redundant calls to get_face in highlight_selections 2015-09-24 13:55:06 +01:00
Maxime Coste
e601bd5fe8 Minor additional cleanup in utf8.hh 2015-09-23 22:09:37 +01:00
Maxime Coste
ceafa5459a Avoid unneeded iterator copies in utf8.hh 2015-09-23 19:48:15 +01:00
Maxime Coste
27571a7716 Refactor utf8::iterator to be on the safe side
utf8::iterator now knows the iterator valid range, and pass
it to utf8 functions.
2015-09-23 19:39:21 +01:00
Maxime Coste
b5972cd647 Tweak utf8::iterator::distance implementation, remove unused advance method 2015-09-23 19:30:47 +01:00
Maxime Coste
6ec693d598 Cleanup compute_needed_size implementation 2015-09-23 00:43:40 +01:00
Maxime Coste
eed3e5459d Cleanup ncurses string writing code 2015-09-23 00:40:09 +01:00
Maxime Coste
3c000cbd0d Error when trying to run an empty register as a macro 2015-09-22 19:01:24 +01:00
Maxime Coste
8529720aef Fix some redrawing problems after resize 2015-09-21 22:12:23 +01:00
Maxime Coste
8b9452680a Use different object filenames between debug/non-debug builds 2015-09-21 13:39:11 +01:00
Maxime Coste
459d0baf79 Tweak string unit tests 2015-09-20 17:18:43 +01:00
Maxime Coste
22f3881cad Fix prompt history handling when pressing the down key 2015-09-20 17:02:37 +01:00
Maxime Coste
01152d7cd9 Improve escaping of % in command parsing 2015-09-20 11:48:11 +01:00
Maxime Coste
ca2043d9f2 Fix unescape implementation 2015-09-20 11:47:20 +01:00
Maxime Coste
2b4b73ae8e Remove the default_face parameter of parse_display_line
No need to define a default face there, we will pass a default face
to UserInterface::draw_status later.
2015-09-20 11:34:13 +01:00
Maxime Coste
b3e0e27d1f Do not allow '\n' in display lines, replace with a space 2015-09-20 11:23:10 +01:00
Maxime Coste
574e337132 Improve command completion by taking into account quoting of arguments 2015-09-20 11:19:10 +01:00
Maxime Coste
f59108072f Initial support for user configurable modeline with the modelinefmt option
modelinefmt is first sent through a command line expander (so %sh{...},
%val{...} et al. are expanded), then through markup expand (so that
{face} are interpreted as well)
2015-09-19 12:43:39 +01:00
Maxime Coste
6bc5f8c3a3 Add simple markup support to generate display lines from strings
The syntax is simply {face} to enable the given face, use \{ to
escape a {, and \\ to escape a \.
2015-09-19 12:19:17 +01:00
Maxime Coste
db8c12fd2a Be tolerant to modifiers in <c-x> bindings
<c-x><c-f> should be accepted, as it is cumbersome to unpress
control before hitting f in that case.
2015-09-19 11:55:55 +01:00
Maxime Coste
96b6b1b647 Tweak NCursesUI behaviour to reduce flickering on resize 2015-09-19 11:30:17 +01:00
Maxime Coste
d2c4d22d1f Keep it simple, remove all that sorted id map thing 2015-09-18 13:52:32 +01:00
Maxime Coste
6a6b22d92c Fix libstdc++ 4.8 compatibility 2015-09-17 20:03:58 +01:00
Maxime Coste
e7a8f64722 Use a sorted IdMap for aliases 2015-09-16 22:32:02 +01:00
Maxime Coste
bab95491c8 Keep sorted state when transmitting id maps 2015-09-16 22:29:19 +01:00
Maxime Coste
36828e6059 IdMaps can be sorted, in which case the find method uses a binary search 2015-09-16 22:22:51 +01:00
Maxime Coste
c859e8ab5f Create directory with 0777 mode in make_directory
Fixes #408
2015-09-16 20:17:31 +01:00
Maxime Coste
693d9a4861 Store key hash in IdMap 2015-09-16 20:02:12 +01:00
Maxime Coste
afad50514b Simpler IdMap::operator== 2015-09-16 19:25:12 +01:00
Maxime Coste
73c0fa175e Use IdMap instead of UnorderedMap for ui options and env vars 2015-09-16 19:04:19 +01:00
Maxime Coste
85918d9f15 use getpwuid(geteuid())->pw_name rather than getlogin()
getlogin() can fail when stdin is not a tty on certain configuration
as it needs to find a controling terminal.
2015-09-15 13:32:26 +01:00
Maxime Coste
0338c0f437 Fix compilation with std regex 2015-09-15 13:28:36 +01:00
Maxime Coste
fd0567c730 Do not touch the first 16 colors in ncurses UI 2015-09-14 14:47:37 +01:00
Maxime Coste
a4804afa42 Restore redraw on <c-l> in ncurses ui 2015-09-14 14:30:01 +01:00
Maxime Coste
e0049bb587 Fix backward search searching from on char before the corret one.
Fixes #406
2015-09-14 14:28:45 +01:00
Maxime Coste
a2b4bf09fd Fix color restoring 2015-09-12 10:54:55 +01:00
Maxime Coste
ad2aa35546 Fix ncurses info box avoiding dead menus 2015-09-12 10:51:46 +01:00
Maxime Coste
5173dad470 Add some missing memory domains 2015-09-12 10:51:16 +01:00
Maxime Coste
8aca7622bf Restore keypad support in ncurses ui 2015-09-11 13:54:37 +01:00
Maxime Coste
2334a57970 Reduce allocation count in file.cc 2015-09-11 13:49:08 +01:00
Maxime Coste
afbe2f10d5 Slight refactor of NCursesUI ui_options handling 2015-09-11 13:20:37 +01:00
Maxime Coste
6ac1ae56fb Small code style tweak in insert_completer.cc 2015-09-11 13:07:51 +01:00
Maxime Coste
6292d451cf Small code cleanup in ncurses_ui.cc 2015-09-11 13:07:51 +01:00
Maxime Coste
5a5a78c608 Improve redraw behaviour on resize 2015-09-11 11:46:39 +01:00
Maxime Coste
34d0f63fd9 Use wgetch rather than getch to avoid unwanted redraws 2015-09-11 00:05:31 +01:00
Maxime Coste
80726a789b Refactor NCursesUI implementation, use pads instead of windows 2015-09-10 23:39:19 +01:00
Maxime Coste
a685a928f7 Try to restore colors to hard coded xterm palette on ncurses quit
Fixes #327
2015-09-10 23:38:05 +01:00
Maxime Coste
182cc368a0 Tweak BufferManager::delete_buffer implementation 2015-09-08 13:10:22 +01:00
Maxime Coste
fede8da14b Delete all existig window before resizing 2015-09-07 23:52:34 +01:00
Maxime Coste
29b508a894 Avoid wrapping lines with negative max width 2015-09-07 23:29:01 +01:00
Maxime Coste
53b65401f8 Small info box handling in cleanup in ncurses 2015-09-07 23:15:21 +01:00
Maxime Coste
30ad9a0475 Complete aliases in command prompt 2015-09-06 18:09:32 +01:00
Maxime Coste
a45876124b Avoid restoring selections in regex_prompt when they cannot have been modified 2015-09-04 19:00:42 +01:00
Maxime Coste
ae720b90b1 Small code tweak in show_whitespaces highlighter 2015-09-04 13:47:16 +01:00
Maxime Coste
ededc84c8c Remove some useless code in remote.cc 2015-09-03 23:17:57 +01:00
Maxime Coste
f81e5593db Tweak headers in shell_manager.hh, no need for regex.hh 2015-09-03 13:54:21 +01:00
Maxime Coste
e69db0f671 Regex are overkill for shell manager env vars, we just need exact match or prefix match 2015-09-03 13:21:35 +01:00
Maxime Coste
ea7f76f7f2 Change ncurses title logic, use hard coded \033]2;<title>\007 sequence
And add a ncurses_set_title ui option defaulting to true.
2015-09-03 00:03:07 +01:00
Maxime Coste
995a094471 Fallback on /usr/share/kak if the relative runtime path does not exists 2015-09-02 22:28:41 +01:00
Maxime Coste
a7d93fa11e std::accumulate is in <numeric> not <algorithm> 2015-09-02 21:15:16 +01:00
Maxime Coste
da5e662cf8 Add missing include 2015-09-02 20:59:45 +01:00
Maxime Coste
64a5948e1c comparison ops for MatchAndBuffer should be const 2015-09-02 13:54:17 +01:00
Maxime Coste
455cca19db Add support for a separate menu text in insert completions
Display buffer of origin in word completion menu
2015-09-02 13:43:07 +01:00
Maxime Coste
1295bc95cc Fix clang compilation 2015-09-02 13:35:50 +01:00
Maxime Coste
adcd0a03b1 Fix forward declare struct/class mismatch 2015-09-02 13:34:18 +01:00
Maxime Coste
e9d7d70e47 Cache buffer display name 2015-09-01 20:49:47 +01:00
Maxime Coste
ae7dc3c576 Simplify runtime_directory 2015-09-01 13:51:57 +01:00
Maxime Coste
b512f3220f Detect normal mode count overflow 2015-08-31 20:34:45 +01:00
Maxime Coste
c603d39a20 Merge remote-tracking branch 'elegios/master' 2015-08-31 00:02:59 +01:00
Maxime Coste
6071e636a2 Use a named struct for insert completion candidates 2015-08-30 23:02:20 +01:00
Maxime Coste
f666cd9c69 Merge remote-tracking branch 'Maroniemann/master' 2015-08-30 15:48:45 +01:00
Clemens Stadlbauer
3db95ce50c Prevented incorrect softlink from being created
If the "autoload" directory softlink has already been created,
"make install" would place a recursive softlink inside it on the
next install, which made future installs fail.
2015-08-30 13:30:15 +02:00
Maxime Coste
64c21b93a5 Additional code tweak in command_manager.cc 2015-08-29 21:39:23 +01:00
Maxime Coste
ac78cfa11c Add missing std::move, avoid a needless string copy 2015-08-28 13:54:12 +01:00
Maxime Coste
1249df9c76 Avoid using an UnorderedMap for 4 elements... 2015-08-27 21:36:49 +01:00
Maxime Coste
36b82c42e5 Refactor command parsing, maintain coordinates while reading the string 2015-08-27 21:32:04 +01:00
Maxime Coste
b529288176 Small code cleanup in command_manager.cc 2015-08-27 13:57:56 +01:00
Maxime Coste
04536657d1 Add a kill command that kills the current session
Fixes #331
A given session can be killed with 'echo kill | kak -p <session>'
2015-08-26 19:34:19 +01:00
Maxime Coste
0c41c14187 Reorganize slightly local client creation 2015-08-26 19:33:52 +01:00
Viktor Palmkvist
b53d9e282e Fix segfault in edge case when jumping backwards in jumplist
Closes #380
2015-08-26 11:54:51 +02:00
Viktor Palmkvist
1bdaf0675d Argument text object no longer handles <> 2015-08-25 15:56:49 +02:00
Maxime Coste
0755366cb1 Rework resize handling
Fixes #383
2015-08-23 15:18:18 +01:00
Maxime Coste
a2e90c2c25 Add support for listing existing sessions with kak -l
Fixes #381
2015-08-23 14:22:23 +01:00
Maxime Coste
71e362e2f9 Move session socket to /tmp/kakoune/<user name>/<session> 2015-08-23 14:13:46 +01:00
Maxime Coste
ae839fc471 Remove Client::window() method, use a force_redraw() one
We cannot assume Client::m_window is always non-null, as when
changing current buffer its temporarily null, at the point
where WinCreate hook might get called.

Fixes #382
2015-08-23 13:29:24 +01:00
Maxime Coste
dc504284c3 Change flag lines highlighter to use faces instead of colors
Fixes #130
2015-08-23 12:13:14 +01:00
Maxime Coste
504862fce7 Avoid double session closing 2015-08-22 11:27:48 +01:00
Maxime Coste
47ab4038ec Format session socket name in place into the sockaddr_un 2015-08-22 11:27:04 +01:00
Maxime Coste
564ab7d942 Merge remote-tracking branch 'zakgreant/reference-sheet-scripts' 2015-08-20 20:13:48 +01:00
Maxime Coste
689494fb2f Fix reentrency in Normal::handle_key 2015-08-20 19:16:14 +01:00
Maxime Coste
3834a967f8 No reason for NestedBool operator bool to be explicit 2015-08-19 21:20:34 +01:00
Maxime Coste
8af3b52bfa Add alternative names to ^ (caret) and @ (arobase) registers 2015-08-19 21:20:01 +01:00
Maxime Coste
7ee027b125 Use the "<reg> syntax along with a default register for marks and macros
Marks use the '^' register by default, macros the '@' register.
2015-08-19 13:58:37 +01:00
Maxime Coste
baf0203b9d Default register is not handled by the Normal input mode.
Normal input mode will just pass 0 as the reg if it was not specified
by the user, its yank/paste functions that should determine 0 means
use '"' register.
2015-08-19 13:41:16 +01:00
Maxime Coste
3f493fa186 Rename Disableable to more general NestedBool
A NestedBool can be set multiple times, and will be considered false
only when unset the same number.
2015-08-18 23:17:56 +01:00
Maxime Coste
a33c8d9677 Smaller sizeof for in place strings 2015-08-18 21:06:53 +01:00
Maxime Coste
386f41e1c5 Be more explicit about paramater parsing error 2015-08-18 00:28:04 +01:00
Maxime Coste
f2580a366d Cleanup key to codepoint conversion
Fixes #378
Fixes #365
2015-08-18 00:19:14 +01:00
Maxime Coste
043ca99983 Cleanup mouse handling a little 2015-08-16 14:06:07 +01:00
Zak Greant
dc2d12a124 Fixing minor typo
s/prevous/previous/
2015-08-15 16:46:57 +02:00
Maxime Coste
97b871d49e Tweak notify_fatal_error message box title, might not be an assert failed 2015-08-14 13:16:06 +01:00
Maxime Coste
92d3178305 Clamp m_anchor in mouse handler, nothing garantees that it is still valid
Fixes #350
2015-08-14 13:12:44 +01:00
Maxime Coste
d2b82f507f More performant escape/unescape 2015-08-13 22:04:21 +01:00
Maxime Coste
7a36a4644e Detect face being aliased to itself
Fixes #374
2015-08-12 21:49:29 +01:00
Maxime Coste
d2762e6a1a Try to fix compilation on travis 2015-08-12 19:16:52 +01:00
Maxime Coste
7086135fa6 Display auto info on register insertion/explicit insert completion 2015-08-11 20:36:07 +01:00
Maxime Coste
8d9c402f52 Handle registers insert/explicit completion with a nested on_next_key mode 2015-08-11 13:55:56 +01:00
Maxime Coste
d7744308f6 Ensure the command exist before adding an alias
Fixes #371
2015-08-11 13:37:38 +01:00
Maxime Coste
94ec1cdde7 Add an unset command to remove an option value (falling back to parent)
unset is not applicable to global scope.
2015-08-10 13:54:52 +01:00
Maxime Coste
10d8cf64cf Move option docstring obtention to OptionRegistry 2015-08-10 13:53:30 +01:00
Maxime Coste
bfb116b8b4 Move option name completion to the OptionRegistry
Option names are the same for every option manager.
2015-08-10 13:38:06 +01:00
Maxime Coste
2eced81753 clamp coordinates find_buffer_coord 2015-08-09 23:18:26 +01:00
Maxime Coste
9d50dd3886 Use a struct rather than a std::pair for InputHandler::Insertion 2015-08-08 22:46:11 +01:00
Maxime Coste
7a59a6d758 ensure a buffer is not referenced a second time, just before actually deleting it
It can happen in certain case that a buffer gets referenced after it
gets moved to the trash, for example when it gets deleted during its
construction (due to BufCreate hook for example).
2015-08-06 21:51:44 +01:00
Maxime Coste
e7b4217762 Support flags getting modified by hooks at buffer creation
Fixes #361
2015-08-04 23:02:40 +01:00
Maxime Coste
d19df5d5de Enable more invariant checking in selection lists 2015-08-03 11:23:40 +01:00
Maxime Coste
19c52c3d61 Fix command parsing bug
Fixes #347
2015-07-30 09:41:23 +01:00
Maxime Coste
3da9458b5e Merge remote-tracking branch 'lenormf/autoinfo_number' 2015-07-29 10:44:39 +01:00
Frank LENORMAND
b7e232d230 Add the 'n' flag to the autoinfo popup window 2015-07-29 10:20:11 +03:00
Maxime Coste
12e0f46e25 Use forward declaration instead of include in commands.hh 2015-07-28 20:18:18 +01:00
Maxime Coste
6b06d77490 Small formatting fix 2015-07-27 20:43:18 +01:00
Maxime Coste
1170277e91 Always inline Allocator::construct/destroy 2015-06-26 21:32:37 +01:00
Maxime Coste
1af82e2e24 Tweak regex constructor calls 2015-07-25 11:15:03 +01:00
Maxime Coste
6bed464105 Avoid appending chars one by one in some parsing functions in CommandManager 2015-07-25 08:56:27 +01:00
TSUYUSATO Kitsune
4a20882a8d CPPFLAGS should use to specify flags for C pre-processor 2015-07-25 10:20:33 +09:00
Maxime Coste
6f337b254d Fix warning 2015-07-24 13:57:44 +01:00
Maxime Coste
ea02467564 Disable notifications when disabling an option temporarly 2015-07-23 23:42:48 +01:00
Maxime Coste
58101645ab Rewrite select_lines and trim_partial_lines
Fixes #338 for real (I hope)
2015-07-23 21:03:38 +01:00
Maxime Coste
2946504a17 Improve column highlighter to cooperate better with other highlighters
Fixes #268
2015-07-23 13:58:23 +01:00
Maxime Coste
889bc98866 fix crash in trim_partial_lines
Fixes #338
2015-07-23 13:46:20 +01:00
Maxime Coste
36ffff96be Avoid copying selection before the first line 2015-07-22 23:24:20 +01:00
Maxime Coste
733e004d44 Fix potential crash 2015-07-22 18:38:44 +01:00
Maxime Coste
82145168ec Add /usr/include/ncursesw in the include dirs list 2015-07-22 18:38:01 +01:00
Maxime Coste
3019118b10 Style tweak in client.cc 2015-07-22 13:30:03 +01:00
Maxime Coste
d55297c12d Remove -rdynamic from cygwin LDFLAGS 2015-07-20 13:17:03 +01:00
Maxime Coste
10f4bb5872 Add support for FocusIn/FocusOut events from UI 2015-07-15 13:56:31 +01:00
Maxime Coste
f8e4bb09f2 Merge remote-tracking branch 'ekie/makefile_fix' 2015-07-14 22:02:51 +01:00
Maxime Coste
17e3be48a5 Transform boost/std regex_error to Kakoune::regex_error at Regex construction
Fixes #318
2015-07-14 21:06:41 +01:00
Eike Plack
441ad1511d Install color schemes 2015-07-14 19:44:03 +02:00
Maxime Coste
7d9ec52bf2 Only allow 'sane' register names
Fixes #316
2015-07-14 13:48:39 +01:00
Maxime Coste
f87dbe410f Add missing support for Codepoint in format 2015-07-14 13:47:51 +01:00
Maxime Coste
c1b9ea4d1e Formatting tweak 2015-07-13 13:57:43 +01:00
Maxime Coste
c44c8c3d1f Use different variable for pipe command in/out text 2015-07-13 13:50:36 +01:00
Maxime Coste
905af05c61 Move Context scope access helpers as inline methods 2015-07-13 13:43:52 +01:00
Maxime Coste
24de3ed822 Move selection saving/restoring to z/Z
Fixes #284
2015-07-11 11:36:23 +01:00
Maxime Coste
a15d816ea8 Use a named struct Empty in optional 2015-07-10 19:05:21 +01:00
Maxime Coste
1d1927647a Fix formatting 2015-07-09 13:53:21 +01:00
Maxime Coste
f1c286e592 Notify user when some hooks failed 2015-07-08 14:00:50 +01:00
Maxime Coste
883a14e853 Do not allow exiting insert mode while running InsertEnd hook.
Fixes #311
2015-07-08 13:53:19 +01:00
Maxime Coste
123541822b Gracefully handle exception when opening files given on command line
Fixes #310
2015-07-08 13:43:40 +01:00
Maxime Coste
f65d41a30a Fix scrolling down hiding the cursor with scrolloff == 0 2015-07-08 13:43:32 +01:00
Maxime Coste
3c4400c5fd Change scrolloff behaviour, allow displaying pas the end of buffer
Fixes #306
2015-07-07 22:36:27 +01:00
Maxime Coste
1cbaac5323 Fix window position computation that could get negative with big scroll offsets 2015-07-06 13:10:36 +01:00
Maxime Coste
72b7a8910b Print connection failed messages with a newline
Fixes #308
2015-07-05 13:39:30 +01:00
Maxime Coste
b7be43f9b9 Merge remote-tracking branch 'xificurC/master' 2015-07-03 20:59:41 +01:00
Maxime Coste
eedf7d6c68 Fix mouse coordinates in ncurses ui with status on top 2015-07-03 18:44:25 +01:00
Maxime Coste
12dd7b04ac Try to simplify argument selector, abandon pair matching checks
Recognize both , and ; as argument separator
2015-07-02 13:41:50 +01:00
Maxime Coste
2660793a31 Small refactoring in selectors.cc 2015-07-01 23:54:17 +01:00
Maxime Coste
28ebe776c0 Refactor select_arguments and slightly change behaviour for non-inner
non inner argument contains the argument, preceeding whitespaces,
and eventual ending comma, except for first arguments (that
contains the whitespaces after the comma), and last argument (that
contains the comma before it).
2015-07-01 23:47:22 +01:00
Maxime Coste
33616f4192 Merge branch 'remap-objects' of http://github.com/elegios/kakoune 2015-07-01 22:08:17 +01:00
Viktor Palmkvist
ab2007bd4e Add remapping of text object keys 2015-07-01 17:53:38 +02:00
Viktor Palmkvist
13d212f445 Added argument text object 2015-07-01 17:42:10 +02:00
Maxime Coste
ee6fc92ae2 Fix stupid bug in '*' 2015-07-01 13:33:20 +01:00
Maxime Coste
58d115ec88 Force redraw all clients after a face changed 2015-06-30 19:12:25 +01:00
xificurC
fbb216d2ed commands starting with horizontal whitespace don't go into the history 2015-06-30 16:06:49 +02:00
Maxime Coste
670d8f7d1e Use tparm instead of tiparm 2015-06-30 13:35:51 +01:00
Maxime Coste
eb4ac85fb1 Force setting of terminal hardware scroll region on resize
It seems there is a race condition with VTE based terminals when
created and resized almost immediatly (like when doing :new) where
we end up with the hardware scroll region set to the old terminal
size.
2015-06-30 09:08:44 +01:00
Maxime Coste
130b22ff74 Refactor resize handling in NCursesUI 2015-06-30 00:31:26 +01:00
Maxime Coste
3fe8446065 Use StatusLine face as default for the status line 2015-06-29 22:48:26 +01:00
Maxime Coste
05b4d95a56 Run BufReadFifo hook after reading from fifo 2015-06-28 11:06:19 +01:00
Maxime Coste
8795a56731 Merge overlapping selections before erasing
Overlapping selections on erase confuse the ForwardChangeTracker
and will confuse the user,

Fixes #298
2015-06-28 10:16:39 +01:00
Maxime Coste
bf09f464c2 Use a relative symlink for autoload 2015-06-27 16:12:04 +01:00
Maxime Coste
44d7910336 Merge branch 'master' of http://github.com/tduzan/kakoune 2015-06-27 11:02:16 +01:00
Maxime Coste
e1ba2991f5 Initial selection saving/restoring support bound to ^ and alt-^ 2015-06-27 11:02:08 +01:00
tduzan
3bd8c36b74 Removed the '-r' flag from the ln command in the install step of the Makefile. It is not a POSIX compliant option, therefore does not work on BSD or OS X. Reference GH Issue#286.
Based on my understanding of this Makefile, the '-r' flag is unnecessary and didn't do anything additional.  The pathspec for both the source and target are explicit using a variable for a portion.
Will test via Homebrew following pushing this to my fork.
2015-06-26 12:35:03 -06:00
Maxime Coste
5b554ff474 Add support for command completion on commands, use it for :new
That means commands can be completed using other commands and their
completers. Yes that does makes sense.

Closes #296
2015-06-26 13:57:23 +01:00
Maxime Coste
b579f90bae Make sure we do not put a Value in a Value 2015-06-25 19:45:42 +01:00
Maxime Coste
cf33a062df Force redraw window after adding/removing highlighters 2015-06-25 19:45:41 +01:00
Maxime Coste
d207d13b68 Avoid unneeded default constructor call in Optional 2015-06-25 13:36:45 +01:00
Maxime Coste
cc09c36fe0 Minor reorganisation in buffer.hh 2015-06-25 13:36:23 +01:00
Maxime Coste
26cfd6af9b Style tweak 2015-06-24 13:44:47 +01:00
Maxime Coste
b97b907b2a Fix include 2015-06-24 13:40:18 +01:00
Maxime Coste
fa4c486b69 Always redraw status when redrawing the main window
That is needed so that on resize the status line does not disappear
2015-06-24 13:35:46 +01:00
Maxime Coste
6870895374 Add support for hex formatting 2015-06-22 13:56:00 +01:00
Maxime Coste
7e6b02f26a Refactor slightly window redrawing 2015-06-22 13:34:22 +01:00
Maxime Coste
3834440298 Rework window redraw handling, should redraw window less often 2015-06-21 19:56:23 +01:00
Maxime Coste
7c22ff217d Improve ncurses redraw behaviour 2015-06-21 19:51:14 +01:00
Maxime Coste
2162157752 Display pid in fatal signal message 2015-06-21 19:44:43 +01:00
Maxime Coste
75dd74ff43 Use <a-R> as replace paste all yanked selections
Move rotate to ' and rotate contents to <a-'>
Fix segfault when pasting all and nothing was yanked yet
2015-06-21 19:36:13 +01:00
Maxime Coste
64cbdcd328 Merge remote-tracking branch 'ekie/fix_edit' 2015-06-20 15:04:39 +01:00
Maxime Coste
7fd7098265 Add a combine_hash helper function 2015-06-20 15:04:31 +01:00
Maxime Coste
6d23bb056a Fix wrong exception type in str_to_int 2015-06-19 18:29:58 +01:00
Eike Plack
1bdc98abd3 Fix Self Documentation 2015-06-19 17:10:16 +02:00
Maxime Coste
fce2a21690 Fix segfault on g. when last modification position past buffer end 2015-06-18 19:51:04 +01:00
Maxime Coste
bf46870ff2 Move status/mode line drawing as a separate ui method 2015-06-17 21:28:02 +01:00
Maxime Coste
7417c5e9e2 Resolve symbol names in Cygwin Backtrace::desc implementation 2015-06-16 18:49:56 +01:00
Maxime Coste
d8e2e9e043 Small formatting fix 2015-06-15 23:00:37 +01:00
Maxime Coste
3fb783f7f9 Add <a-;> in insert mode to execute a single normal mode command 2015-06-12 13:56:11 +01:00
Maxime Coste
84d8447a58 Notify user on kakrc parsing errors
Fixes #281
2015-06-12 13:43:46 +01:00
Maxime Coste
2c15dbe6b2 Fix regions highlighter docstring 2015-06-11 19:04:30 +01:00
Maxime Coste
0555288e46 Show main selection search pattern on '*'
Fixes #278
2015-06-10 22:48:15 +01:00
Maxime Coste
46b167b851 Style tweak 2015-06-10 22:42:07 +01:00
Maxime Coste
e5852f6822 Fix race condition ShellManager::eval with SIGCHLD 2015-06-09 20:28:24 +01:00
Maxime Coste
b4329dd643 Fix comment 2015-06-09 13:27:51 +01:00
Maxime Coste
409d804ee8 Do not close stderr/stdout before program finish
Programs like grep called in '$' command will fail due to SIGPIPE
for example. So we need to keep the pipe open.
2015-06-08 22:42:51 +01:00
Maxime Coste
66866aafd3 Change gl/gh to only move cursor, not selecting (<a-h>/<a-l>) are unchanged
That is more consistant with other goto commands (that just move the cursor)
2015-06-08 13:51:06 +01:00
Maxime Coste
942fc224af Specify if ShellManager should read output or not using a flag
Some program (xclip), will fork a daemon keeping stdout/stderr open,
so waiting for them to be closed make kakoune hang. Commands discarding
stdout can then just not wait on it.
2015-06-08 13:45:20 +01:00
Maxime Coste
7acf3da3ca Change select_to_eol implementation 2015-06-07 23:17:23 +01:00
Maxime Coste
e6f0e8ef75 Move write_debug to buffer utils as write_to_debug_buffer 2015-06-06 11:54:48 +01:00
Maxime Coste
be03db9a24 Support sourcing files that use crlf end of lines 2015-06-05 13:52:56 +01:00
Maxime Coste
7bff1b782e Merge branch 'mode-stack' 2015-06-05 13:16:31 +01:00
Maxime Coste
d6d81607ed Gracefully handle reloading a file that was deleted 2015-06-05 13:11:04 +01:00
Maxime Coste
87fcfda508 Avoid buffer end in compute_modified_ranges 2015-06-05 13:10:30 +01:00
Maxime Coste
7cddaacc5d Fix support for default face on remote clients 2015-06-04 18:51:00 +01:00
Maxime Coste
f39b450e94 on_enabled might change mode, so assert Normal mode before 2015-06-04 13:56:08 +01:00
Maxime Coste
b34d469b72 Merge branch 'master' into mode-stack 2015-06-04 13:54:03 +01:00
Maxime Coste
9668dccea9 Add support for Default face
The Default face is used to set default color values, if set
to default (the default), refers to terminal default colors.
2015-06-04 13:49:28 +01:00
Maxime Coste
f30cd317b0 Describe facedesc in :face docstring 2015-06-03 22:10:37 +01:00
Maxime Coste
64a3b0bd50 Fix memory leak in fifo buffer handling 2015-06-03 20:22:26 +01:00
Maxime Coste
f0886ad323 Get rid of the mode trash, delete mode directly when leaving on_key 2015-06-03 20:03:06 +01:00
Jiří Konečný
ff27b190eb Fix Makefile for Fedora packaging system
There was a problem with absolute path for symlink.
I think most of the packaging systems will be affected by this problem.
2015-06-02 22:38:20 +02:00
Maxime Coste
964b0e9a6e InputHandler now uses a stack for active modes
instead of having a single mode enabled, modes can be pushed/poped,
with the top of the stack being the active mode.
2015-06-02 20:56:57 +01:00
Maxime Coste
8f6fc6a0f3 Port even more code to use format function 2015-06-01 21:15:59 +01:00
Maxime Coste
f19bb4fe6d Port more code to use the format function instead of adhoc string concat 2015-06-01 19:06:35 +01:00
Maxime Coste
57a03d8495 Remove redundant forward declaration 2015-06-01 18:33:08 +01:00
Maxime Coste
2426384360 Autoload site wide kak scripts if the user does not have his own autoload folder 2015-05-30 14:32:04 +01:00
Maxime Coste
c61c76061f Improve CYGWIN bactrace description 2015-05-30 12:40:24 +01:00
Maxime Coste
5aba5d38f2 Add missing include 2015-05-29 13:46:49 +01:00