Commit Graph

2240 Commits

Author SHA1 Message Date
Maxime Coste
04ecb2cc5a Wrap info boxes text in ncurses display even in Inline menu style 2014-11-20 13:56:37 +00:00
Maxime Coste
a444cd1d60 Improve wrap_lines behaviour, split on punctiation as well 2014-11-20 13:55:07 +00:00
Maxime Coste
314d662c5f Change wrap_lines to return StringViews, move it to string.cc 2014-11-20 13:15:11 +00:00
Maxime Coste
eb57d0a1d9 Refresh stdscr at startup to avoid flickering 2014-11-18 00:01:29 +00:00
Maxime Coste
6663d50d95 Tweak option completion behaviour 2014-11-17 20:15:54 +00:00
Maxime Coste
0c3acb74c2 Remove unneeded string copies 2014-11-17 19:38:30 +00:00
Maxime Coste
7619fcb198 option completion are valid until a modification is made before it 2014-11-17 13:53:59 +00:00
Maxime Coste
1bd2260fa5 Import std::begin/std::end so that container utils work correctly with non std containers 2014-11-17 13:51:21 +00:00
Maxime Coste
b43f0fb853 Yet more StringView params, less const String& 2014-11-16 20:55:36 +00:00
Maxime Coste
ece03c3599 More const String& to StringView 2014-11-15 18:45:56 +00:00
Maxime Coste
27b1e8944f const String& to StringView 2014-11-14 22:40:51 +00:00
Maxime Coste
7064679c2a small fix 2014-11-13 22:17:10 +00:00
Maxime Coste
3a817e2f96 Cleanup includes 2014-11-12 21:27:07 +00:00
Maxime Coste
58c1721564 Use general flags utility for Face Attribute 2014-11-12 20:31:56 +00:00
Maxime Coste
3f733569ed Fix case where a context ends up locked in no-hooks mode 2014-11-12 20:31:12 +00:00
Maxime Coste
fab9c92006 change filter mode to make backup of files to .kak-bak and edit in place
Add a -q option to filter mode to be quiet about errors while applying
keys.
2014-11-11 23:40:07 +00:00
Maxime Coste
f6e9018bf0 Reduce idle timeout to 50 milliseconds 2014-11-11 23:32:52 +00:00
Maxime Coste
7bb7c1b922 Hide info box when closing insert completion menu 2014-11-11 23:31:06 +00:00
Maxime Coste
e8b0a98a78 Remove %rec{...} strings, now "..." strings expand their content 2014-11-11 13:53:57 +00:00
Maxime Coste
414cfabb8c fix clang compilation 2014-11-11 13:47:51 +00:00
Maxime Coste
b2407d9dfa Add ui_options option for UserInterface configuration
ui_options is a std::unordered_map<String, String> that gets
forwarded to the user interface. Add support ncurses_status_on_top.
2014-11-10 23:29:16 +00:00
Maxime Coste
d803333e73 Add support for unordered_map options 2014-11-10 23:24:02 +00:00
Maxime Coste
4235ab5249 Display status line on top in ncurses 2014-11-10 13:46:08 +00:00
Maxime Coste
7d4c9c2ccf Support hinting if an inline info should be above or below the anchor
Used by ctags function info, we always want it *above* the opening
parenthesis so that it does not hide multi line parameter lists.
2014-11-10 13:37:17 +00:00
Maxime Coste
40d649f836 refactor parse_keys 2014-11-09 13:02:01 +00:00
Maxime Coste
766df0490c small code simplification 2014-11-09 11:42:06 +00:00
Maxime Coste
88aa707b9c For {Menu,Info}Style::Prompt, choose the anchor directly in ncurses code 2014-11-08 19:08:23 +00:00
Maxime Coste
e1fc2677e3 Add a MenuDoc style for info box, that will place it next to the menu 2014-11-08 18:01:55 +00:00
Maxime Coste
484fffc288 Initial support for insert completion docstring 2014-11-07 13:54:43 +00:00
Maxime Coste
fc66c7f92f small style fix 2014-11-07 13:51:07 +00:00
Maxime Coste
5ef4dd84b9 Small refactoring in remote.cc 2014-11-06 13:54:18 +00:00
Maxime Coste
80b50cd737 Simplify RemoteClient creation code 2014-11-05 13:57:12 +00:00
Maxime Coste
a3b29b1f11 Fix potential alignment bug 2014-11-05 13:50:06 +00:00
Maxime Coste
4c3056a05e Fix bug in insert completer deregistering
The context options might change, as the context might have a different
window/buffer from the one at creation. So we need to store the correct
option manager rather than ask the context for it.
2014-11-04 23:51:41 +00:00
Maxime Coste
c8ea2e78f9 Reuse existing buffer when creating a fifo one
That way, client having this buffer already visible wont switch to
another one due to previous buffer getting deleted
2014-11-04 23:51:22 +00:00
Maxime Coste
71197c4641 Tweak flags implementation 2014-11-04 22:23:27 +00:00
Maxime Coste
4d89a297c5 Change Value to be non copyable 2014-11-04 22:23:27 +00:00
Maxime Coste
f5be7c7ba5 minor code cleanup 2014-11-04 13:40:35 +00:00
Maxime Coste
60c1bb1315 Use unescape rather than a regex in command manager parsing 2014-11-04 13:35:54 +00:00
Maxime Coste
97df59ddb7 Support single char StringView
remove single char escape function overload, add unescape function
2014-11-04 13:32:18 +00:00
Maxime Coste
b167c11671 Use StringViews for some helper functions in selectors.cc 2014-11-04 13:14:48 +00:00
Maxime Coste
4051534b83 Open fifo buffers in non block mode 2014-11-03 13:55:07 +00:00
Maxime Coste
abfc016321 Remove AutoRegister util template 2014-11-02 16:04:24 +00:00
Maxime Coste
b494b873b1 Fix buffer being considered modified after reloading 2014-11-01 19:35:27 +00:00
Maxime Coste
c04dfc7bb7 move more parameters from const String& to StringView 2014-11-01 19:31:13 +00:00
Maxime Coste
9a2822e329 Change :info -anchor option, take directly a buffer coordinate
Fix ctags funcinfo feature using that
2014-10-31 21:49:36 +00:00
Maxime Coste
e38ba6ce3d Add scope class and encapsulate Options, Keymaps, Aliases and Hooks in it 2014-10-30 14:04:57 +00:00
Maxime Coste
8649371ff2 Add kak binary location to PATH env var automatically
That way the kak binary can be guaranteed to be available even
if not in user PATH.
2014-10-30 14:02:13 +00:00
Maxime Coste
185b980718 Add scoped aliases
aliases are now stored in window, buffer, or globally.
2014-10-30 14:02:13 +00:00
Maxime Coste
502de87697 Actually release interned string data when refcount drops to 0 2014-10-29 13:54:35 +00:00
Maxime Coste
d29419bcd6 Fix invalid memory access when applying modifications on an empty buffer
That can happen when undoing/redoing accross a buffer reload
boundary.
2014-10-28 21:55:08 +00:00
Maxime Coste
62f56378c9 Add some asserts in StringRegistry methods 2014-10-28 21:54:25 +00:00
Maxime Coste
2944dbc332 Style fixes 2014-10-28 20:01:55 +00:00
Maxime Coste
d3091cb553 Add noexcept spec to move constructor and move assign 2014-10-28 20:01:27 +00:00
Maxime Coste
00aede6e57 mark InternedString move constructor noexcept 2014-10-28 19:44:00 +00:00
Maxime Coste
fa886ffaac Refactor word_db, use an unordered map 2014-10-28 19:23:02 +00:00
Maxime Coste
c2c980c484 Fix unneeded WordDB copy in complete_word 2014-10-28 19:18:33 +00:00
Maxime Coste
efa276b13b Tweak Value constructor, no need for the const ref one 2014-10-28 19:17:54 +00:00
Maxime Coste
5078b9077d Fix interned string hashing, we need to hash content 2014-10-28 19:16:35 +00:00
Maxime Coste
54fd0aab22 Fix filter mode 2014-10-27 17:54:20 +00:00
Maxime Coste
372ba2936f Small formatting fix 2014-10-27 13:22:42 +00:00
Maxime Coste
992c74a06d small formatting tweak 2014-10-26 20:21:01 +00:00
Maxime Coste
2213f98176 Add virtual destructor to Highlighter 2014-10-25 10:40:26 +01:00
Maxime Coste
54f4b8fc2d Do not lose history when reloading a buffer
Fixes #157
2014-10-23 21:04:58 +01:00
Maxime Coste
3e797a3d15 centralize bit operation support for enum used as flags 2014-10-23 19:02:39 +01:00
Maxime Coste
5eb8989192 Fix slow InternedString copy constructor 2014-10-23 13:53:04 +01:00
Maxime Coste
67a5493fa2 minor code tweaks 2014-10-23 13:37:47 +01:00
Maxime Coste
38df876586 Reread file timestamp at the moment the user choose to keep
The previous behaviour ended up asking twice for reloading if the
buffer was modified again after Kakoune had detected the first
change.
2014-10-22 19:24:26 +01:00
Maxime Coste
7f23d4b756 Close fd before notifiying buffer of modification when writing to file 2014-10-22 19:23:54 +01:00
Maxime Coste
b2e90fe21e Refactor highlighters, use an interface with virtual methods 2014-10-22 13:54:03 +01:00
Maxime Coste
fc4142178f Port more code to StringView instead of const String& 2014-10-20 19:18:38 +01:00
Maxime Coste
69113e2711 Add a split function that does not take an escape and returns StringViews
When an escape character is not present, split can just return sub
strings of the parameter, so we can avoid duplicating the original
string data.
2014-10-19 16:27:36 +01:00
Maxime Coste
2e0b4d02b7 Small tweak 2014-10-16 19:43:09 +01:00
Maxime Coste
9c2f9d5547 Make it more explicit that Key modifiers is a bit field 2014-10-15 19:13:51 +01:00
Maxime Coste
1128d941ff Do not write pid and session name in debug buffer on startup 2014-10-14 13:42:47 +01:00
Maxime Coste
e362eb4f3b Add a disabled wrapper for using std regex instead of boost 2014-10-14 13:40:13 +01:00
Maxime Coste
eb0d03f437 Use Pass as default policy for invalid utf8 avoid asserting on that 2014-10-13 21:07:23 +01:00
Maxime Coste
894dd2e055 Add missing includes 2014-10-13 19:28:02 +01:00
Maxime Coste
2adaa7bdfa Do not assert on SIGTERM and backup modified buffers on signal induced termination 2014-10-13 13:38:28 +01:00
Maxime Coste
fa85f0fc32 Refactor regex uses, do not reference boost except in regex.hh 2014-10-13 13:14:23 +01:00
Maxime Coste
b6f2b872b0 Preserve selection orientation when replacing
Fixes #31
2014-10-12 18:58:10 +01:00
Maxime Coste
cbf4d3db3f Add a test make target 2014-10-11 19:50:30 +01:00
Maxime Coste
6a48b5eabc Merge branch 'master' of github.com:mawww/kakoune 2014-10-11 15:54:06 +01:00
Maxime Coste
729e55573f Support changing buffer when an edition is in progress 2014-10-10 14:00:24 +01:00
Maxime Coste
c94b343c65 Start regex search from selection min/max depending on search direction 2014-10-09 18:55:58 +01:00
Roberto Zanotto
daeb8a1c8d empty DESTDIR 2014-10-08 21:23:20 +02:00
Maxime Coste
8a7e16cec3 Switch some const String& parameters to StringView 2014-10-07 21:11:55 +01:00
Maxime Coste
a627eab57c Small refactor 2014-10-07 19:46:12 +01:00
Maxime Coste
b097bbbf52 WordDB: Use interned strings pointing directly into the buffer line data 2014-10-07 09:16:19 +01:00
Maxime Coste
008ba2cbab Use ',' instead of '|' as tuple option fields separators 2014-10-06 19:32:25 +01:00
Maxime Coste
17d591b61c scrolloff is now a line,column pair
Fixes #152
2014-10-06 19:21:32 +01:00
Maxime Coste
844c8f1ec4 InternedStrings know their slots 2014-10-05 10:20:50 +01:00
Maxime Coste
d4a84125ef Use InternedStrings for buffer contents 2014-10-03 13:39:13 +01:00
Maxime Coste
fc53a80395 Small refactor 2014-10-01 23:41:06 +01:00
Maxime Coste
3ea690a92e Fix finding next match when the cursor is in the middle of the only match 2014-10-01 13:54:33 +01:00
Maxime Coste
d55d041c6a Add support for interned strings
Use interned strings for Modification contents and word database.
Interned strings are guaranteed not to move in memory and are
reference counted.
2014-10-01 00:20:12 +01:00
Maxime Coste
d9e462851c Pass -rdynamic only to the linker 2014-09-28 23:59:04 +01:00
Maxime Coste
507cdd7272 Start with the whole buffer selected in filter mode 2014-09-28 23:58:34 +01:00
Maxime Coste
092ac8e9ab Remove unused function 2014-09-26 00:41:50 +01:00
Maxime Coste
9beba90060 Finding next matches start from seleciton min/max instead of cursor
uses min for backward serching, max for forward searching.
2014-09-26 00:27:23 +01:00
Maxime Coste
a404886fe2 line joining will only join selected lines if selection span multiples ones
Fixes #133
2014-09-25 19:26:27 +01:00
Maxime Coste
ecf8047bcc Fix reverse search when extending 2014-09-25 13:29:53 +01:00
Maxime Coste
4c4d3cdd38 Add support for mapping keys in goto/view commands 2014-09-23 13:45:18 +01:00
Maxime Coste
9625ea64ff Add inner versions of to object begin/end selection 2014-09-23 13:37:56 +01:00
Maxime Coste
e440adbcf4 add a 'buffers' debug command to get info on alive buffers 2014-09-22 19:19:34 +01:00
Maxime Coste
0ac65e1610 Use std:move for selection parameters 2014-09-22 13:55:39 +01:00
Maxime Coste
6bcc038329 tweak helper functions in buffer_utils.hh 2014-09-22 13:45:07 +01:00
Maxime Coste
217ba625ad Use raw terminal, and handle signals manually
C-c now sends SIGINT to the process group of Kakoune server
when used in normal mode.

Fixes #30
2014-09-20 19:35:37 +01:00
Maxime Coste
2aaae7473c preserve selection direction in split lines 2014-09-19 13:45:24 +01:00
Maxime Coste
f738316689 small refactor in highlighters 2014-09-19 13:45:11 +01:00
Maxime Coste
af1134bd75 Fix confusion between -n and -d switches in main 2014-09-18 18:43:42 +01:00
Maxime Coste
ff25948a6f Fix compilation on recent cygwin 2014-09-18 18:43:12 +01:00
Maxime Coste
90df4320b7 Add a small validation assert to catch a rare bug 2014-09-18 10:47:59 +01:00
Maxime Coste
dd2bdea8dd Keep selection direction on split/select/search 2014-09-18 00:34:23 +01:00
Maxime Coste
be85eb5d0b Makefile: Include system header in generated dependencies 2014-09-15 18:59:49 +01:00
Maxime Coste
827a77539a Add some color to mode specific mode line info 2014-09-10 19:06:53 +01:00
Maxime Coste
c18e2ac90e Target end of line on line selectors 2014-09-09 23:41:32 +01:00
Maxime Coste
5092494427 Add support for target column preservation
Fixes #64
2014-09-09 19:42:57 +01:00
Maxime Coste
6dc223ed6a Fix spaces_to_tabs when tabs follow spaces 2014-08-28 23:19:18 +01:00
Maxime Coste
114d33c7f8 Limit the iteration count when reading from a fifo 2014-08-26 22:11:23 +01:00
Maxime Coste
c90bdb9862 Fix handling of -- in parameter parser 2014-08-26 22:10:54 +01:00
Maxime Coste
8fc230e40d Add a 'disabled_hooks' regex option
Hooks whose group matches this regex wont get executed.
2014-08-21 14:37:59 +01:00
Maxime Coste
50e1e5fadd Add support for 'c-o' in prompt and insert to hide the completion menu
Fixes #229
2014-08-19 23:32:19 +01:00
Maxime Coste
d78a586126 Do not allow using color names as face names 2014-08-19 23:16:21 +01:00
Maxime Coste
d78e331304 Allow faces to reference faces
Fixes #102
2014-08-19 23:10:56 +01:00
Maxime Coste
bea53d09b2 Remove option checkers, handle that through the type system
Use a specific type for InsertCompleterDesc with checks in
the option_{from,to}_string functions
2014-08-19 18:56:11 +01:00
Maxime Coste
a36aed94f1 Add support for operator== to Optional 2014-08-19 18:55:36 +01:00
Maxime Coste
2e2812b10f Do not escape completions in completer functions let the client decide
Fixes #231
2014-08-18 23:31:02 +01:00
Maxime Coste
e6b9a1d982 Get forced file descriptors after calling poll
That way, we do not wait for the next poll to finish before servicing
forced fd triggered by a signal that interupted the poll call.
2014-08-17 15:58:42 +01:00
Maxime Coste
6ba3017a8e Always inline a few more methods 2014-08-17 15:36:12 +01:00
Maxime Coste
5c3f01fea2 Add exception reporting in filter mode 2014-08-17 15:19:04 +01:00
Maxime Coste
8d4531d419 Add support for reading from stdin/writing to stdout in filter mode
Note that kakoune still needs to read the whole buffer first, only
once stdin is closed can it execute the keys.
2014-08-15 13:21:54 +01:00
Maxime Coste
eff32aa1a1 Refactor, remove kakoune function and move it inside main. 2014-08-14 23:57:13 +01:00
Maxime Coste
ceb10665d1 Add support for running kakoune as a filter, using -f 'keys'
It will cycle on every given files, apply the keys and write to
<filename>.kak-out. Only normal/insert mode is available, kakrc
are not read.
2014-08-14 23:51:24 +01:00
Maxime Coste
0588780866 Refactor main loops, use separate functions for each running mode
Server, Client, and Pipe are handle through separate functions,
with the kakoune function handling parameter parsing.
2014-08-14 20:37:36 +01:00
Maxime Coste
aaa6d3ab39 memoryview: add support for reverse iteration 2014-08-14 20:35:03 +01:00
Maxime Coste
fbbe741c07 Add support for <c-w> <c-b> and <c-e> for word moves in the line editor
This might go away later if we find a better way of handling line
edition, but seems like a good compromise for now.

Fixes #168
2014-08-14 00:31:39 +01:00
Maxime Coste
518b995720 NCurses: properly handle ctrl+alt 2014-08-14 00:30:32 +01:00
Maxime Coste
2204b7cf06 Defer deletion of buffers to after the event loop
We can have SelectionList in flights on the buffer, so mark
it for deletion by moving it in a buffer trash, and effectively
delete it later, at a point where there should not be any further
access to it.
2014-08-12 19:24:09 +01:00
Maxime Coste
e2b3dd0ca4 Tweak client redraw logic, avoid highlight if only status line changed 2014-08-12 19:19:46 +01:00
Maxime Coste
d356ae2419 Make safe_ptr able to track callstacks
The code stays disabled, as the performance penalty is quite
high, but can be enabled to help debugging safe pointers.
2014-08-12 19:18:10 +01:00
Maxime Coste
1b54b65bb5 Add an operator[](CharCount) to String and StringView 2014-08-11 19:40:35 +01:00
Maxime Coste
43f44bbab3 Fix buffer modification check
It used to grab the next key, because the normal mode reactivation
when executing the on_next_key would trigger a timestamp check again.
2014-08-07 21:51:36 +01:00
Maxime Coste
c4f0c4dee6 Change escaping method for command completion 2014-08-03 10:03:14 +01:00
Maxime Coste
8ee2aa9ba7 Use more StringView in string helper functions 2014-08-03 10:02:17 +01:00
Maxime Coste
de402c4703 Fix buffer name completion when basename only 2014-08-03 10:00:34 +01:00
Maxime Coste
aac02410b1 Buffer completion match directory names as well for subsequence match 2014-07-31 22:43:36 +01:00
Maxime Coste
beb6065a71 Add a -existing switch to edit command
with this switch, fail if the file is not found rather than creating
a new one. Use that in grep and make jump commands.
2014-07-31 22:10:01 +01:00
Maxime Coste
5fc063c520 Insert word completion: Use subsequence matching if prefix failed 2014-07-30 19:58:34 +01:00
Maxime Coste
4c31449a65 Add access to specific env vars in %val{...} evaluation 2014-07-30 19:17:04 +01:00