Maxime Coste
802d6e106c
Keep hash stored in StringData
2015-05-14 19:13:52 +01:00
Maxime Coste
e9af3a4217
always_inline a few methods
2015-05-14 19:05:41 +01:00
Maxime Coste
8ba6804480
Do not use diff when reloading a no undo buffer
2015-05-14 14:05:02 +01:00
Maxime Coste
cc97d4ba41
Fix bugs in diff implementation
2015-05-14 13:57:03 +01:00
Maxime Coste
f224d11ccd
Small cleanup in selections.cc
2015-05-13 23:22:48 +01:00
Maxime Coste
11528e45e9
Use friend functions rather than methods for StronglyTypedNumber binary ops
2015-05-13 23:22:48 +01:00
Maxime Coste
15b26fd06c
Use diff when reloading buffer
2015-05-13 23:22:42 +01:00
Maxime Coste
7a8c2d7f56
Fix diff implementation and change the Diff struct format
2015-05-13 23:22:29 +01:00
Maxime Coste
49def73e4e
Add initial diff implementation based Eugene W. Myers' algorithm
2015-05-12 23:41:35 +01:00
Maxime Coste
30bec11010
Fix bug in ncurses mouse handling
2015-05-11 19:11:02 +01:00
Maxime Coste
e21d9feb05
Style tweak
2015-05-09 19:20:11 +01:00
Maxime Coste
c94b30903d
Fix dangling info window pointer in ncurses ui
2015-05-07 00:34:30 +01:00
Maxime Coste
559bcdde50
Formatting fix
2015-05-06 23:05:44 +01:00
Maxime Coste
9f1b129053
Fix bug in fifo creation where BufOpenFifo hook was using a dead string
2015-05-05 20:23:15 +01:00
Maxime Coste
0ee95d02c4
line highlighter highlights up to window's end
2015-05-05 20:21:17 +01:00
Maxime Coste
1a1db1cb3a
{line,column}_option highlighters use an expanded string instead of an option name
...
That allows access to non option values, such as cursor_column or cursor_line with
:addhl line '%val{cursor_line}' default,rgb:404040
Fixes #38
2015-05-04 17:12:51 +01:00
Maxime Coste
cfdf03ab31
Make expand function (that expand %...{} tokens) public
2015-05-04 17:08:57 +01:00
Maxime Coste
7f0588c02c
Dont use a regex to match face spec for regex highlighter
2015-05-03 18:22:49 +01:00
Maxime Coste
78eb437b90
Formatting fix
2015-05-02 18:48:20 +01:00
Maxime Coste
d7159a9af0
Add str_to_int_ifp that returns an Optional<int> instead of throwing
2015-05-01 18:47:22 +01:00
Maxime Coste
d3607bc773
Rename eval(_token)? to expand(_token)? and use a const Context
2015-04-30 19:18:20 +01:00
Maxime Coste
4e89cbfe83
Add a column_option highlighter that highlight a column given in an option
2015-04-30 19:18:20 +01:00
Maxime Coste
202d4766c2
Do not display info box when there is not enough room on screen for it
...
Fixes #159
2015-04-30 13:45:05 +01:00
Maxime Coste
6974cfbf64
Use char32_t for Codepoint
2015-04-29 13:51:15 +01:00
Maxime Coste
d169558e09
When file to open is a fifo, do not read from it (use -fifo for that)
...
Fixes #267
2015-04-29 13:46:04 +01:00
Maxime Coste
1337763cb5
Fix formatting
2015-04-29 13:45:53 +01:00
Maxime Coste
e4880ad91a
Use unicode elipsis to mark trimmed mode line
2015-04-28 21:03:37 +01:00
Maxime Coste
5bff742e0a
Replace some String temporaries with StringViews
2015-04-27 16:46:57 +01:00
Maxime Coste
720c54c759
Move option_not_found exception to the cpp file
2015-04-26 20:40:32 +01:00
Maxime Coste
bbefde9379
Move Colors enum class as NamedColor enum inside Color struct
2015-04-25 10:47:39 +01:00
Maxime Coste
dc46eda279
Set default MatchingChar face to bold instead of underline
2015-04-24 20:34:38 +01:00
Maxime Coste
075c5013a1
Move Register to register_manager.hh
2015-04-23 21:51:48 +01:00
Maxime Coste
4e1ed13f25
Use a struct for RangeAndMatches
2015-04-23 21:44:20 +01:00
Maxime Coste
045272ab8a
Use a struct for BufferRange rather than std::pair
2015-04-23 21:38:45 +01:00
Maxime Coste
840e58e0b1
NCurses: When mode line is too long, trim it rather hiding it
2015-04-23 21:11:50 +01:00
Maxime Coste
e0f7a6f0be
Remove simple_factory for highlighters
2015-04-23 20:27:52 +01:00
Maxime Coste
d6b69cb6f7
Fix :open bug that could set a deleted buffer as the last used one
2015-04-23 20:15:17 +01:00
Maxime Coste
80fb8aa60d
Use puts instead of printf in ncurses_ui
2015-04-22 22:03:01 +01:00
Maxime Coste
f6c7948c12
Add format_to allowing formating to an existing buffer
2015-04-22 13:19:46 +01:00
Maxime Coste
8ff63198bc
Comment out update_erase function (keeped for reference)
...
Fixes #254
2015-04-21 13:51:01 +01:00
Maxime Coste
7824a76e1a
Disable history in :exec and :eval
2015-04-21 13:45:10 +01:00
Maxime Coste
4bb1e0a878
Support -buffer * to iterate over all buffers in :eval or :exec
2015-04-21 13:40:14 +01:00
Maxime Coste
1d40827da3
Small style tweak
2015-04-21 13:33:35 +01:00
Maxime Coste
6e5e831ce6
Merge remote-tracking branch 'ekie/next_buffer'
2015-04-21 13:28:09 +01:00
Maxime Coste
d2e8bd2431
Fix select_number crashing on empty buffers
2015-04-20 13:55:42 +01:00
Maxime Coste
ddd70fd09a
Make empty context construction more explicit
2015-04-19 18:47:52 +01:00
Maxime Coste
f714766854
Fix search highlighter wrong code
2015-04-19 15:19:39 +01:00
Maxime Coste
1dfa2d7fe4
Avoid unneeded update of selections when we are going to overwrite them
2015-04-19 15:12:16 +01:00
Maxime Coste
9f65a4e6dd
Remove Context::set_selections, use Context::selections() = ...
2015-04-19 15:00:37 +01:00
Maxime Coste
b570c68c75
Run BufOpenFifo hook when opening a fifo in a (new or already existing) buffer
2015-04-19 14:48:39 +01:00
Maxime Coste
95a14c5049
UndoGroupOptimizer disappeared long time ago
2015-04-18 14:17:17 +01:00
Maxime Coste
d2b6d696a2
Small layout change
2015-04-17 16:47:31 +01:00
Maxime Coste
3982131753
Fix StronglyTypedNumbers::abs
2015-04-17 01:01:58 +01:00
Maxime Coste
b584fd3bfc
Fix UnorderedSet allocator
2015-04-16 23:46:26 +01:00
Maxime Coste
2902fce437
Use an UnorderedSet for string registry
2015-04-16 12:38:59 +01:00
Maxime Coste
491ffc4ffd
Improve ui_options docstring
2015-04-16 11:35:52 +01:00
Maxime Coste
ea67724ff5
Optional: put the bool m_valid after the content to improve packing
2015-04-15 11:43:39 +01:00
Eike Plack
2cf45ddb21
Refactor nextbuffer_cmd
2015-04-15 02:43:16 +02:00
Eike Plack
0f9b210e3f
Fix set_last_used_buffer
2015-04-15 02:36:47 +02:00
Maxime Coste
bf02838816
Remove is_blank, which is identical to is_horizontal_blank
2015-04-15 00:34:00 +01:00
Maxime Coste
eb9c95298e
Add support for string <-> selection list serialization
2015-04-13 15:21:26 +01:00
Maxime Coste
731c27c094
Add a 'abs' friend function to StronglyTypedNumber
2015-04-13 15:20:47 +01:00
Maxime Coste
f93081471a
Refactor nextbuffer command to be more idiomatic
2015-04-13 11:34:21 +01:00
Maxime Coste
43c03ea412
Merge remote-tracking branch 'jjthrash/next-prev-buffer'
2015-04-13 11:26:31 +01:00
Maxime Coste
be5ed0e036
Small alignement change
2015-04-12 23:48:11 +01:00
Maxime Coste
f644a51f24
Use char for KeyMapMode enum
2015-04-11 17:22:37 +01:00
Maxime Coste
cfd071b2ad
small code formatting fix
2015-04-09 16:28:13 +01:00
Jimmy Thrasher
ba59033935
Add nextbuffer command
...
Wraps around at the end. If only 1 buffer loaded, does nothing.
2015-04-09 10:14:32 -04:00
Maxime Coste
da09da29c4
Regex comparison operator are const
2015-04-08 23:16:27 +01:00
Maxime Coste
b5ab318a2d
Always optimize StringView::strlen (recursive due to constexpr)
2015-04-07 23:21:14 +01:00
Maxime Coste
87b385b956
Use default values for ncurses options when not specified
2015-04-06 20:05:49 +01:00
Maxime Coste
b7144fff6c
Make ncurses wheel scroll button configurable
2015-04-06 18:43:27 +01:00
Maxime Coste
dde16b00a9
Add onkey command for executing commands after reading a key
...
This completes the various user interaction primitives, on_next_key
was the last not to be available through a command.
2015-04-04 13:10:39 +01:00
Maxime Coste
04a922fe1a
Avoid zstr in write_debug when no *debug* buffer can be created
2015-04-03 13:14:59 +01:00
Maxime Coste
7176685690
Avoid zstr call in ncurses addutf8str
2015-04-03 13:10:46 +01:00
Maxime Coste
762f60f9fd
Rewrite rgb color parsing
2015-04-02 21:27:58 +01:00
Maxime Coste
64e0b6e3f8
Replace a snprintf with format in backup file name generation
2015-04-02 13:58:06 +01:00
Maxime Coste
9edeb08e3a
Avoid zero terminated string based console printing
2015-04-01 13:44:04 +01:00
Maxime Coste
4c49583fed
small code tweak in format
2015-03-31 13:55:57 +01:00
Maxime Coste
e875828aa9
Use format for {Win,Buf}SetOption hooks description
2015-03-31 13:55:40 +01:00
Maxime Coste
758bfe7284
number to string conversion avoids memory allocations
2015-03-31 13:53:40 +01:00
Maxime Coste
519254dfdc
More useage of the format function
2015-03-30 23:56:33 +01:00
Maxime Coste
335c73a09b
Use custom implementation rather the sscanf in str_to_int
2015-03-30 23:37:55 +01:00
Maxime Coste
6e1a388544
Replace various adhoc operator+ based formatting with format func
2015-03-30 23:06:02 +01:00
Maxime Coste
13a5af70ae
Add a format function for printf like formatting
2015-03-30 23:05:24 +01:00
Maxime Coste
8761fc34f4
Always go through StringView to compare strings
...
That avoids creating temporary String needlessly
2015-03-30 19:59:08 +01:00
Maxime Coste
8439059758
Fix wrong implicit conversions from int/Codepoint to StringView
2015-03-30 13:33:46 +01:00
Maxime Coste
adaf6ecc40
Move skip_while helpers to selectors.hh
2015-03-29 20:03:09 +01:00
Maxime Coste
56b5300b9d
Handle mouse events in key_to_str
2015-03-28 18:18:52 +00:00
Maxime Coste
d1b81c8f8a
minor cleanup
2015-03-27 13:47:02 +00:00
Maxime Coste
195b813b73
Add support for Home/End keys in normal and insert mode
...
Fixes #260
2015-03-27 13:33:14 +00:00
Maxime Coste
0fbbd64681
small formatting tweak
2015-03-27 13:20:37 +00:00
Maxime Coste
727580a238
Make utf8_iterator a proper stl useable iterator
2015-03-27 13:19:30 +00:00
Maxime Coste
c2150dd163
Rework show_matching highlighter implementation
2015-03-27 13:18:06 +00:00
Maxime Coste
94bd32572d
Move some only used once inline functions directly in their caller
...
No need to have that in a header, and not really selectors anyway
2015-03-26 13:34:21 +00:00
Maxime Coste
757366472b
Add <alt-:> for ensuring selections are forward (cursor >= anchor)
...
Not very useful interactively, but that feature can make macros much
more robust.
2015-03-26 13:34:21 +00:00
Maxime Coste
e0757e7ba9
Flip the cat assistant
2015-03-25 13:53:13 +00:00
Maxime Coste
16037744b7
Add exception type name when failing with an uncaught exception
2015-03-25 13:42:36 +00:00
Maxime Coste
bc67a6547d
Remove unneeded c_str() call
2015-03-25 13:42:36 +00:00
Maxime Coste
48007d5de2
Only do tty validation when using a NCursesUI
2015-03-24 19:38:03 +00:00
Maxime Coste
7eaa6976b9
Use a dummy UI when running tests, so that we do not need a tty
2015-03-24 13:14:02 +00:00
Maxime Coste
4188335b51
Fix segfault in highlighting
2015-03-23 19:21:35 +00:00
Maxime Coste
323b0359c7
Add support for mouse wheel
2015-03-22 12:17:01 +00:00
Maxime Coste
5eaf472fc0
Experimental support for mouse
2015-03-22 11:41:20 +00:00
Maxime Coste
def33de9bc
Check modifiers before inserting codepoints in the line editor
2015-03-22 11:41:19 +00:00
Maxime Coste
7a7f86a205
Impreove Window::buffer_coord behaviour with invalid coords
2015-03-22 11:41:19 +00:00
Maxime Coste
dbbbc3aa80
constexprify Face
2015-03-21 16:32:22 +00:00
Maxime Coste
74ecf4976e
Fix Color constructor not constexpr
2015-03-21 16:32:07 +00:00
Maxime Coste
bbfcfe4242
constexprify Color (in)equality operator
2015-03-20 19:03:41 +00:00
Maxime Coste
5cf7d650c8
Small code tweak
2015-03-19 23:33:44 +00:00
Maxime Coste
f5da1671fd
Refactor number_line higlighter, use a switch to higlhight the cursor line
2015-03-19 00:31:11 +00:00
Maxime Coste
006f8ca588
Merge remote-tracking branch 'ekie/relative_line_numbers'
2015-03-19 00:03:59 +00:00
Maxime Coste
3e28539b81
Add a display coord to buffer coord method to Window
2015-03-18 23:40:26 +00:00
Eike Plack
5627d33ac3
Add support for relative line numbers
2015-03-18 22:07:57 +01:00
Maxime Coste
d3738b858b
Remove unneeded include
2015-03-17 20:06:35 +00:00
Maxime Coste
4770d3d86c
Change flags operator& to return a value convertible both to flags and bool
2015-03-16 18:57:18 +00:00
Maxime Coste
3921b234e7
Store fake keystrokes when selecting an insert completion candidate
...
Instead of storing the real 'select next completion' keystroke,
generate fake backspace/delete/char keystrokes so that replay
of the insert will insert the exact same text.
Fixes #135
2015-03-15 18:44:11 +00:00
Maxime Coste
b5854ece43
Change ParameterParser switch interface, use an Optional<StringView>
...
Merge has_option and option_value into a single method get_switch.
2015-03-14 19:16:46 +00:00
Maxime Coste
65fd0df041
More code style cleanup
2015-03-14 17:30:44 +00:00
Maxime Coste
8a211fc87a
Tweak command docstrins
2015-03-14 12:17:43 +00:00
Maxime Coste
82833608c9
Allocate some data in advance in string algorithm
2015-03-14 11:46:53 +00:00
Maxime Coste
9657ef88b7
Small refactoring in client_manager.cc
2015-03-14 11:27:01 +00:00
Maxime Coste
adcb72e987
Minor code cleanup
2015-03-14 11:11:01 +00:00
Maxime Coste
2be6cc918b
Avoid stdout/stderr as variable names
2015-03-14 01:53:17 +00:00
Maxime Coste
09e2a0b6ac
Do not change the insert completion menu when a candidate is selected
2015-03-13 13:52:23 +00:00
Maxime Coste
6b3201f0f1
Change ShellManager to return both stdout and the return value in a pair
2015-03-13 13:39:18 +00:00
Maxime Coste
dbe27d3df2
Code style change in shell_manager.cc
2015-03-13 13:25:20 +00:00
Maxime Coste
2747c4dd3e
exception::what returns a StringView rather than a const char*
2015-03-13 13:15:51 +00:00
Maxime Coste
52cd08915d
Keep the dir trailing slash in split_path
2015-03-13 13:09:54 +00:00
Maxime Coste
762643d320
Use correct %zu format string rather than cast
2015-03-12 20:43:21 +00:00
Maxime Coste
1a7d50b347
Minor cleanup
2015-03-12 20:40:00 +00:00
Maxime Coste
b4f6b50dbb
Make split_path public
2015-03-12 20:39:34 +00:00
Maxime Coste
2f20399d03
Improve 'def' command completion behaviour and clean it up a little
2015-03-12 19:45:05 +00:00
Maxime Coste
d9cd5fef8f
Avoid calling real_path when not needed in BufferManager::get_buffer_ifp
2015-03-12 19:40:10 +00:00
Maxime Coste
c57e76ee41
Cleanup parameter parser code
2015-03-12 13:58:31 +00:00
Maxime Coste
f2b8b1ae2b
Fix compilation on clang
2015-03-12 13:04:53 +00:00
Maxime Coste
348e23dd8a
Remove unused StaticString
2015-03-12 09:52:33 +00:00
Maxime Coste
4843643514
Always inline OnScopeEnd constructor and destructor
2015-03-11 20:52:39 +00:00
Maxime Coste
ecabfc67b7
fix warning on 32 bit compilation
2015-03-11 20:52:17 +00:00
Maxime Coste
c81a5d03c5
String tweaks
2015-03-11 19:41:44 +00:00
Maxime Coste
a0e8e4265a
coords/units hashing refactoring
2015-03-11 13:59:25 +00:00
Maxime Coste
023c8afb73
Fix unneeded string copy
2015-03-11 13:58:42 +00:00
Maxime Coste
3c1a325b6f
Refactor String, use a common StringOps interface, hide std::string
2015-03-10 19:50:22 +00:00
Maxime Coste
a0cf75ec39
Tweak WordDB implementation
2015-03-10 13:50:25 +00:00
Maxime Coste
ea526c2137
Small refactoring
2015-03-10 13:34:46 +00:00
Maxime Coste
ea42d9dd4a
Remove is_in_range utility function
2015-03-09 22:37:42 +00:00
Maxime Coste
7af8937bac
Extract remaining lambdas commands so that the cmds array can be compile time initialized
2015-03-09 14:01:17 +00:00
Maxime Coste
d1f17228dd
Use a static array to store the keymap
2015-03-09 13:55:55 +00:00
Maxime Coste
1cec8df45e
ArrayView content is not const anymore
...
As in upcoming std c++ array_view, ArrayView<T> points to mutable
data, use ArrayView<const T> or alias ConstArrayView<T> for const
data.
2015-03-09 13:54:09 +00:00
Maxime Coste
44f81d0b8b
constexprify ArrayView
2015-03-09 13:21:43 +00:00
Maxime Coste
0bbaef6e48
Use a sorted array for keymap rather than an unordered map
...
with ~100 entry, a binary search finds in < 7 step, unordered map
is overkill.
2015-03-08 11:40:50 +00:00
Maxime Coste
3ece7bcf75
Orderable Keys
2015-03-07 15:29:21 +00:00
Maxime Coste
4be6090107
Fix additional eol inserted when replace piping at end of buffer
2015-03-06 13:57:21 +00:00
Maxime Coste
2d93933d81
Rework keymap to use function pointer rather than std::function
2015-03-05 19:57:46 +00:00
Maxime Coste
99996902de
Use a IdMap for storing hooks
...
The number of hook names is small (<20), using an UnorderedMap
is overkill, and prevents using StringView for key searching.
2015-03-05 14:59:27 +00:00
Maxime Coste
d1f3c1832c
Small code tweak
2015-03-05 13:52:54 +00:00
Maxime Coste
bc7c3987e1
Convert CodepointPair to struct MatchingPair
2015-03-04 20:47:14 +00:00
Maxime Coste
c0e4268e17
Reactivate direct file change check on entering normal mode
2015-03-04 20:46:26 +00:00
Maxime Coste
4e02e822fd
Merge remote-tracking branch 'ekie/fix_debug_cmd'
2015-03-04 09:37:06 +00:00
Maxime Coste
604e95f771
Tweak StringData::create implementation
2015-03-02 23:55:41 +00:00
Eike Plack
2354655df2
Fix documentation for debug_cmd
2015-03-02 16:38:05 +01:00
Maxime Coste
0eca3b5526
Use StringDataPtr alias for RefPtr<StringData>
2015-03-01 12:06:19 +00:00
Maxime Coste
98972c18b7
rename StringStorage to StringData
2015-03-01 12:03:08 +00:00
Maxime Coste
092dcd174f
Add StaticStringStorage for storing string literals
2015-02-28 17:09:29 +00:00
Maxime Coste
f88e873f55
Add IndexSequence and make_index_sequence utilities
2015-02-28 17:08:19 +00:00
Maxime Coste
31267675b9
Small cleanup in containers utils
2015-02-27 19:32:27 +00:00
Maxime Coste
b480d6b419
Tweak BufferIterator::{+=,-=} implementation
2015-02-26 21:58:56 +00:00
Maxime Coste
00bde4ef48
Respect columns when copying selection, not just bytes
2015-02-25 13:41:00 +00:00
Maxime Coste
46f37a6050
Always inline RefPtr::{acquire,release,moved}
2015-02-24 13:43:37 +00:00
Maxime Coste
0a6901899d
Use RefPtr as SafePtr backend
2015-02-23 20:39:56 +00:00
Maxime Coste
8df77121d7
Rename safe_ptr and ref_ptr to SafePtr and RefPtr
2015-02-19 13:58:25 +00:00
Maxime Coste
6c65c5e080
Add docstrings to highlighters, displayed by addhl help
2015-02-19 13:54:03 +00:00
Maxime Coste
fd3365deb1
Remove unused RegionMatch::timestamp
2015-02-17 13:56:26 +00:00
Maxime Coste
59177c12f9
Replace vector of vector in RegexHighlighter with a single vector.
2015-02-17 13:50:31 +00:00
Maxime Coste
2f890f12c6
Fix RegexHighlighter cache invalidation when changing the regex
2015-02-16 22:43:14 +00:00
Maxime Coste
e5121fe40a
Wrap debug loop in ifdef KAK_DEBUG
2015-02-16 22:27:40 +00:00
Maxime Coste
8f6dab08d6
Try to limit the quantity of buffer reparsed by RegexHighlighter
2015-02-16 19:13:55 +00:00
Maxime Coste
ce950ec9f7
Fix RegexHighlighter in a few corner cases
2015-02-16 13:25:17 +00:00
Maxime Coste
53f1c35013
Fix caching of regex highlighter matches
...
The previous method was constantly invalidating cache when used in
conjunction with region highlighters.
2015-02-15 19:42:48 +00:00
Maxime Coste
8e6cfd3f09
Indent fix
2015-02-14 23:28:09 +00:00
Maxime Coste
8c843f5bea
Add <a-h>, <a-l>, <a-x> and <a-d> bindings to line editor
...
<a-h> : move cursor left
<a-l> : move cursor right
<a-x> : delete char before cursor
<a-d> : delete char under cursor
2015-02-13 19:13:44 +00:00
Maxime Coste
224f73d72a
Cleanup and refactor externally modified buffer reloading
...
* Correctly hide the reload dialog in every client.
* Correctly handle buffer being deleted.
2015-02-12 19:18:03 +00:00
Maxime Coste
6658d15741
Allow <ret> and <esc> to reload/keep an externally modified file
...
Fixes #113
2015-02-11 13:56:45 +00:00
Maxime Coste
790e671f6c
Replace some <cstring> function usage with c++ algorithms
2015-02-10 23:09:30 +00:00
Maxime Coste
8714c41403
Do not hash rgb values for non rgb colors
2015-02-10 22:53:37 +00:00
Maxime Coste
56dd5f9540
Fix selecting of insert text in SelectionList::insert
2015-02-09 21:09:17 +00:00
Maxime Coste
ec1d5509bb
Refactor ncurses assistant option handling
...
The option is now ncurses_assistant, defaults to clippy, none
and off a recognized to disable assistant.
2015-02-09 13:33:54 +00:00
Maxime Coste
accc510d15
Merge remote-tracking branch 'robinmoussu/cat_assistant'
2015-02-09 13:26:33 +00:00
Maxime Coste
a94c554a7b
Add optional helper for commands, to get parameter dependent help
...
Use for the set command to document options.
2015-02-08 19:04:20 +00:00
robin moussu
0a5a37c1f2
add `assistant=cat|trombon' option
...
Move ascii art of assistant of top of file.
`assistant' has been renamed to `s_assistant' because it become a static
variable. It was because it `assistant()' was used in `set_ui_options' and
`make_info_box()'
2015-02-08 11:53:41 +01:00
robin moussu
239bb2dd33
Add a cat assistant!
2015-02-08 11:53:41 +01:00
Maxime Coste
0a2f2c2247
Use parameter pack to that the default hash_value is the worst match
2015-02-07 20:15:22 +00:00
Maxime Coste
5b6b04ef9c
Merge remote-tracking branch 'jjthrash/not-warnings'
2015-02-06 23:22:17 +00:00
Maxime Coste
f7b8215a68
Add a from C array constructor to ArrayView
2015-02-06 23:22:01 +00:00
Maxime Coste
bf088a864c
Avoid selecting buffer end when copying selection to next line
2015-02-06 22:04:42 +00:00
Jimmy Thrasher
240a004354
Fix compile warnings on OSX that could actually be errors
...
c++ -std=gnu++11 -g -Wall -Wno-reorder -Wno-sign-compare -pedantic -DKAK_DEBUG -MD -MP -MF .buffer.d -c -o .buffer.o buffer.cc
buffer.cc:35:20: warning: logical not is only applied to the left hand side of this comparison
[-Wlogical-not-parentheses]
kak_assert(not line->length == 0 and line->data()[line->length-1] == '\n');
^ ~~
./assert.hh:17:18: note: expanded from macro 'kak_assert'
if (not (condition)) \
^
buffer.cc:35:20: note: add parentheses after the '!' to evaluate the comparison first
./assert.hh:17:18: note: expanded from macro 'kak_assert'
if (not (condition)) \
^
buffer.cc:35:20: note: add parentheses around left hand side expression to silence this warning
./assert.hh:17:18: note: expanded from macro 'kak_assert'
if (not (condition)) \
^
buffer.cc:177:20: warning: logical not is only applied to the left hand side of this comparison
[-Wlogical-not-parentheses]
kak_assert(not line->length == 0 and line->data()[line->length-1] == '\n');
^ ~~
./assert.hh:17:18: note: expanded from macro 'kak_assert'
if (not (condition)) \
^
buffer.cc:177:20: note: add parentheses after the '!' to evaluate the comparison first
./assert.hh:17:18: note: expanded from macro 'kak_assert'
if (not (condition)) \
^
buffer.cc:177:20: note: add parentheses around left hand side expression to silence this warning
./assert.hh:17:18: note: expanded from macro 'kak_assert'
if (not (condition)) \
^
2 warnings generated.
2015-02-06 09:12:05 -05:00
Maxime Coste
eb5f458138
Extract directory/filename splitting in a function
2015-02-06 13:47:19 +00:00
Maxime Coste
622919bafd
Add C and alt-C for 'copy selection to next/previous line'
2015-02-05 21:25:04 +00:00
Maxime Coste
5339f94eb8
Fix missing modes in :map completion and docstring
2015-02-05 13:56:16 +00:00
Maxime Coste
d59b36b816
Fix incorrect Buffer::Change generated in Buffer::reload
2015-02-04 21:42:42 +00:00
Maxime Coste
87125e2707
Fix too strict assert and unneeded (lets hope) check
2015-02-03 23:39:04 +00:00
Maxime Coste
2a28260f87
Extend line numbering max width to 15 char
2015-02-03 13:44:42 +00:00
Maxime Coste
18eec7e511
Regex selectors more tolerant to matches not ending on char boundaries
2015-02-02 22:54:05 +00:00
Maxime Coste
340fc63f84
Improve code compatibility
2015-02-02 18:46:55 +00:00
Maxime Coste
b4442055e8
Fix recursive regions matching when a recursive matches just before an end
...
%sh{ $test {} $test } was incorrrectly closing the %sh block at the first {
because it was immediatly followed by a }.
2015-02-02 13:48:27 +00:00
Maxime Coste
c004187f32
Fix buffer reloading
2015-02-02 13:24:40 +00:00
Maxime Coste
09fc14be4b
Small refactor in highlighters.cc
2015-02-01 23:30:58 +00:00
Maxime Coste
4d6b8a70e1
Fix highlighter update with new LineModification behaviour
2015-02-01 23:19:07 +00:00
Maxime Coste
d3bccfeb94
Fixes in line_modification change, along with style tweak
2015-02-01 22:33:59 +00:00
Maxime Coste
0b4ecef2d2
Rewrite line modifications, hopefully with easier to comprehend code
2015-01-31 23:50:24 +00:00
Maxime Coste
804a050c39
Tweak Buffer::Change layout
2015-01-29 22:44:07 +00:00
Maxime Coste
ffff4711c5
Add history memory domain
2015-01-28 22:33:29 +00:00
Maxime Coste
bb74770a24
Add C-f and C-b binding for page up/page down
...
Fixes #173
2015-01-27 23:33:22 +00:00
Maxime Coste
cc699faa54
Store direct ref_ptr<StringStorage> for WordDB lines
...
Storing a SharedString is a waste, we want the whole line.
2015-01-27 13:12:52 +00:00
Maxime Coste
fb98ff652d
Keep all completion matches when selecting a candidate
2015-01-27 13:12:52 +00:00
Maxime Coste
2c425bb436
Always inline StringStorage methods
2015-01-26 19:41:26 +00:00
Maxime Coste
b697bf1795
Release display buffers when a window is added to free list
2015-01-26 19:41:10 +00:00
Maxime Coste
92cb3a035f
Try to improve ga behaviour
2015-01-26 19:40:48 +00:00
Maxime Coste
42966317b8
Tweak SharedString
2015-01-25 22:36:05 +00:00
Maxime Coste
79954e89ab
Fix GCC 4.8 compilation
2015-01-24 14:36:03 +00:00
Maxime Coste
f4e96e7f2e
Fix bug when deleting end of buffer text using multiple selections
2015-01-23 19:12:15 +00:00
Maxime Coste
cb197f57ba
Avoid temporary strings on buffer load/reload
...
Pass directly a Vector<ref_ptr<StringStorage>> to the buffer
2015-01-22 13:39:29 +00:00
Maxime Coste
2516c16bb9
Fix error message in tuple option parsing
2015-01-22 13:10:21 +00:00
Maxime Coste
0ff415597e
Add Display memory domain
2015-01-21 13:35:46 +00:00
Maxime Coste
b2d5b9ca5f
Try to fix travis compilation errors
2015-01-21 13:35:23 +00:00
Maxime Coste
5383cece3e
Fix write_debug with no debug buffer and multiple lines
2015-01-20 19:57:17 +00:00
Maxime Coste
b1281d225d
rename SharedString::Storage to StringStorage and use directly in Buffer
2015-01-19 19:31:56 +00:00
Maxime Coste
3697548e35
Use a single allocation for SharedString::Storage
2015-01-19 13:25:04 +00:00
Maxime Coste
39689f0a18
Add helper for overloading operator new/delete
2015-01-18 18:49:32 +00:00
Maxime Coste
9b057896d4
Replace std::shared_ptr with homemade, intrusive, ref_ptr
...
That saves a lot of memory as sizeof(SharedString) is now one
pointer less.
2015-01-18 18:23:58 +00:00
Maxime Coste
ef26b77aa7
buffer updates are in BufferMeta memory domain
2015-01-18 11:22:28 +00:00
Maxime Coste
7cdeb3d7f7
simplify echo code, avoid trailing spaces
2015-01-17 22:55:48 +00:00
Maxime Coste
32319aca45
Add support for per type default memory domain
2015-01-16 13:58:21 +00:00
Maxime Coste
4fd92127c3
Add a no copy shared string constructor, used for map lookup, and intern words
2015-01-15 19:58:08 +00:00
Maxime Coste
bb915f0bc5
Fix filename completion
2015-01-15 19:26:38 +00:00
Maxime Coste
8eef019cf8
Do not store lines to word in word db, just keep the old lines alive
2015-01-15 19:26:38 +00:00
Maxime Coste
76d806e98d
Replace InternedStrings with SharedString, shared_ptr based
2015-01-15 19:26:38 +00:00
Maxime Coste
2a878d51fd
Even more memory tracking
2015-01-14 19:16:32 +00:00
Maxime Coste
442304bc1c
Add missing cast to void* in placement new
2015-01-14 00:01:20 +00:00
Maxime Coste
2415d3f63c
Add missing <new> include
2015-01-13 23:54:58 +00:00
Maxime Coste
1e3e0b01af
Fix compatibility with gcc 4.8
2015-01-13 22:56:51 +00:00
Maxime Coste
118a6e1a7c
Use uint32_t for interned strings slots
2015-01-13 13:58:11 +00:00
Maxime Coste
61619a4d4d
Style tweak in WordDB
2015-01-13 13:57:44 +00:00
Maxime Coste
0412487b0c
-rdynamic does not work on gcc 4.9 under cygwin
2015-01-13 13:50:16 +00:00
Maxime Coste
beb3390334
Add interned string stats in debug command
2015-01-13 13:48:16 +00:00
Maxime Coste
b9c4fc2d8c
Add size_t and float to_string overload, and _sv UDL
2015-01-13 13:47:46 +00:00
Maxime Coste
f440c31370
Add missing cstddef include for ptrdiff_t
2015-01-12 20:03:52 +00:00
Maxime Coste
c8d651a517
Protect use of mallinfo in #ifdef __GLIBC__ blocks
2015-01-12 19:55:58 +00:00
Maxime Coste
e8b8070536
refactor slighly memory domain handling
2015-01-12 19:48:51 +00:00
Maxime Coste
19797ae8d6
Fix flag line highlighting
2015-01-12 19:35:31 +00:00
Maxime Coste
da562e03a0
replace all std::vector with Vector
2015-01-12 13:58:41 +00:00
Maxime Coste
83d0813b0f
Yet more tracking
2015-01-12 13:45:44 +00:00
Maxime Coste
f1f10639a5
Compute tracked memory total as well
2015-01-12 13:32:30 +00:00
Maxime Coste
0bdf1778cb
Some more memory tracking
2015-01-12 13:32:14 +00:00
Maxime Coste
dedb16bc73
Track some more memory
2015-01-11 19:28:03 +00:00
Maxime Coste
9adb97ea28
Track buffer lines memory
2015-01-10 12:56:09 +00:00
Maxime Coste
9f9156a752
Track String memory allocations
2015-01-09 13:57:21 +00:00
Maxime Coste
e5b36f548b
Add missing include
2015-01-08 19:31:28 +00:00
Maxime Coste
9b30e7469a
Add initial memory domain allocation tracking support
2015-01-07 19:29:31 +00:00
Maxime Coste
de12fe1cc6
Add completion for debug command
2015-01-06 19:06:53 +00:00
Maxime Coste
295a97f2a6
Rename memoryview to ArrayView
2015-01-06 13:43:37 +00:00
Maxime Coste
8e92e0eebc
Go back to previous buffer name completion implementation
2015-01-05 19:33:33 +00:00
Maxime Coste
c279da14e3
Refactor write_debug to avoid empty first line in *debug* buffer
2015-01-05 09:38:51 +00:00
Maxime Coste
ca9baecd4c
Another stule tweak
2015-01-04 22:34:36 +00:00
Maxime Coste
23f30f6709
Small style tweak
2015-01-03 17:35:53 +00:00
Maxime Coste
019a91505f
Remove unneeded static String
2015-01-02 11:55:15 +00:00
Maxime Coste
15542c3357
minor style tweak
2015-01-01 12:09:30 +00:00
Maxime Coste
c698032ace
Style tweak
2014-12-31 13:09:35 +00:00
Maxime Coste
0493cf6d62
Use a struct rather than a std::pair for InternedString DataAndRefCount
2014-12-30 11:56:01 +00:00
Maxime Coste
d4a929b42e
Use a struct KeyAndName rather than a std::pair
2014-12-29 17:18:42 +00:00
Maxime Coste
955d1dea66
Small formatting fixes
2014-12-29 12:19:16 +00:00
Maxime Coste
8cc96ec36b
Add a join function for joining strings using a specific char
2014-12-28 11:16:51 +00:00
Maxime Coste
71bfe5498d
Refactor color functions
2014-12-27 12:09:28 +00:00
Maxime Coste
248c1bda02
Style tweak
2014-12-26 10:53:30 +00:00
Maxime Coste
33bde3e067
Minor code tweak in optional.hh
2014-12-25 10:59:06 +00:00
Maxime Coste
2e1c6eaff7
sort includes
2014-12-24 13:03:17 +00:00
Maxime Coste
2852e0fbe5
Remove trailing blank lines
2014-12-23 23:00:20 +00:00
Maxime Coste
b0fef1a962
Rename id_map to IdMap
2014-12-23 22:51:00 +00:00
Maxime Coste
fb611e2f62
Use an id_map directly for HighlighterRegistry rather than the FunctionRegistry class
2014-12-23 22:15:53 +00:00
Maxime Coste
c17fa7be14
Tweak id_map implementation
2014-12-23 22:15:25 +00:00
Maxime Coste
79de7ee717
Code refactoring in WordDB
2014-12-23 19:32:42 +00:00
Maxime Coste
ed54e102ee
Extract complete_buffer_name as a free function in commands.cc
2014-12-23 17:42:17 +00:00
Maxime Coste
ae602106e0
Remove prefix_complete, superseeded by complete
2014-12-23 17:39:12 +00:00
Maxime Coste
b6ff15aa75
Unify completion from container content logic
2014-12-23 13:54:09 +00:00
Maxime Coste
064fb81b8d
Move containers utils to containers.hh and add filtered/transformed utils
2014-12-23 13:40:26 +00:00
Maxime Coste
bf980eba04
Merge branch 'list_buffers'
2014-12-23 13:20:29 +00:00
Eike Plack
9f81093411
Expose buffer list to shell over $kak_buflist
2014-12-23 02:49:53 +01:00
Maxime Coste
ff1f4dcb5c
Minor cleanup
2014-12-22 20:08:53 +00:00
Maxime Coste
e911c86306
Remove useless code
2014-12-22 20:08:30 +00:00
Maxime Coste
7a7ad57871
Support absolute paths when completing commands
2014-12-21 17:08:33 +00:00
Maxime Coste
5b94b73152
Small code tweak
2014-12-20 18:40:17 +00:00
Maxime Coste
116ea7364a
Restore some special behaviours, I missed them in interactive mode.
2014-12-19 13:58:33 +00:00
Maxime Coste
c454cf1379
Avoid eol after undo/redo
2014-12-18 23:17:38 +00:00
Maxime Coste
eee2cb3a6e
Revert "Add support for BufInsert/BufErase hooks"
...
This is potentially quite slow, and not used, reintroduce
later if we have a use case for it.
This reverts commit 5f3a477277
.
2014-12-18 23:13:45 +00:00
Maxime Coste
1c8ee78d1a
Do not register timers for transient input handlers
2014-12-18 23:12:58 +00:00
Maxime Coste
4827ae0a53
Do not wait for the first event before drawing clients
2014-12-18 19:01:18 +00:00
Maxime Coste
5f3a477277
Add support for BufInsert/BufErase hooks
2014-12-17 13:56:45 +00:00
Maxime Coste
3b9f40fd58
Fix split selecting the buffer end
...
Fixes #241
2014-12-17 13:21:20 +00:00
Maxime Coste
e0c452adb6
Tweak keymap_manager style, fix missing move
2014-12-17 13:20:48 +00:00
Maxime Coste
ebecd60eb8
Rework hashing, use a more extensible framework similar to n3876 proposal
...
std::hash specialization is a pain to work with, stop using that, and
just specialize a 'size_t hash_value(const T&)' free function.
2014-12-16 18:57:19 +00:00
Maxime Coste
72bdb8faa9
Always use plain ncurses.h
2014-12-14 23:42:00 +00:00
Maxime Coste
fc4d77964e
Remove special case when appending at eol
2014-12-13 13:10:40 +00:00
Maxime Coste
a0b35bf590
Add support for user mappings, bound to comma
...
:map have a 'user' mode that is accessible through the comma key.
the mapping will get executed in normal mode.
2014-12-12 13:57:02 +00:00
Maxime Coste
801bd5245d
Avoid very long timeouts in event manager
2014-12-12 13:55:32 +00:00
Maxime Coste
9c1ca303ff
Change a-| to ignore output, and add ! and a-! for insert/append cmd output
2014-12-11 23:21:11 +00:00
Maxime Coste
c68c9abcac
Display the register we yanked to
2014-12-11 19:36:41 +00:00
Maxime Coste
2c4ed3a78c
Do not avoid eol on escape
2014-12-11 19:36:20 +00:00
Maxime Coste
7a10029c4f
Use algorithms in id_map rather than raw loops
2014-12-11 13:55:04 +00:00
Maxime Coste
35e7a67c6a
Do not sort results of WordDB, simplify code
2014-12-11 13:14:57 +00:00
Maxime Coste
f32ab5793e
Remove unneeded includes
2014-12-11 13:10:41 +00:00
Maxime Coste
e0cc59914e
Fix OSX compilation
2014-12-10 20:54:47 +00:00
Maxime Coste
319cfcda34
Get rid of uses of unordered_set, vector is just simpler and faster...
2014-12-09 21:59:47 +00:00
Maxime Coste
0a57fa0766
Rename ncurses.{cc,hh} to ncurses_ui.{cc,hh}
2014-12-09 13:57:21 +00:00
Maxime Coste
2f2752cd1d
Force inline StringView::{begin,end}
2014-12-09 13:56:05 +00:00
Maxime Coste
87d312b6d4
More string cleanups
2014-12-08 13:59:29 +00:00
Maxime Coste
9f4af93780
cleanup in string.hh
2014-12-08 13:46:07 +00:00
Maxime Coste
1a17d9c73f
const String& to StringView
2014-12-07 21:01:42 +00:00
Maxime Coste
d57be83522
Disable history writing when running hooks
2014-12-05 14:01:07 +00:00
Maxime Coste
1c5975835e
Consolidate constext disablable feature in a 'Disableable' helper
2014-12-05 13:47:09 +00:00
Maxime Coste
423030c9bd
Refactor (again) event handling, use proper infinite timeout
2014-12-04 20:01:34 +00:00
Maxime Coste
176358f6b7
Fix logic error in shell manager
2014-12-04 13:58:02 +00:00
Maxime Coste
a51dd737ea
Limit event handler timeout to 2 seconds
2014-12-03 19:55:53 +00:00
Maxime Coste
d437ae0ecf
Microsecond is 10^(-6)s, not 10^(-9)s
2014-12-03 18:57:33 +00:00
Maxime Coste
995c7b4634
Fix timeval field types
2014-12-03 14:02:46 +00:00
Maxime Coste
24519e645e
Revert "Handle SIGCHLD signals when piping"
...
This reverts commit 8208e75294
.
2014-12-03 13:57:04 +00:00
Maxime Coste
0517a19e6d
Use a select based event handling and fix deadlock
2014-12-03 13:56:02 +00:00
Maxime Coste
def4221ac7
Pass a BufferRange to highlighters, fix subregions
...
Regions highlighter can now correctly be applied to only subrange
of the buffer, fixing some corner cases in recursive regions.
2014-12-02 19:56:17 +00:00
Maxime Coste
8208e75294
Handle SIGCHLD signals when piping
2014-12-02 18:59:39 +00:00
Maxime Coste
4fbaee61c5
Change default PrimarySelection face to be white on blue
2014-12-01 13:06:26 +00:00
Maxime Coste
a3b3001d8f
Rework client pending key handling, fix insert/normal timers
2014-11-29 20:14:52 +00:00
Maxime Coste
77e2e8a31e
Support selecting yank/paste register with "
2014-11-28 13:58:36 +00:00
Maxime Coste
75fe9a76db
Fix compilation
2014-11-28 13:47:42 +00:00
Maxime Coste
7c87abe856
Process ctrl-c when not in urgent event mode as well
2014-11-28 13:30:58 +00:00
Maxime Coste
da9f688f37
Fix indent/deindent when multiple selections are on same line
2014-11-28 13:22:54 +00:00
Maxime Coste
6902301674
Fix bug in :debug command
2014-11-28 13:18:08 +00:00
Maxime Coste
4c7f6985f1
Add an 'options' debug command
2014-11-26 13:27:26 +00:00
Maxime Coste
49931fbf05
Separate events between normal and urgent ones
...
Run urgent ones while executing %sh blocks.
Fixes #236
2014-11-25 13:52:06 +00:00
Maxime Coste
0272da65c0
Style tweak
2014-11-24 13:49:41 +00:00
Maxime Coste
35b89d5b87
Display selection count in insert mode line
2014-11-24 13:26:42 +00:00
Maxime Coste
dfed7ed211
const String& to StringView
2014-11-23 19:49:59 +00:00
Maxime Coste
88def85d77
Do not merge overlapping selections in InputMode::Replace
...
Fixes #237
2014-11-22 21:20:29 +00:00
Maxime Coste
f56b6ed75b
Do not record keys that were not user generated
2014-11-21 19:00:34 +00:00
Maxime Coste
e8c8833211
Do not reset edition level to 0 on buffer change
...
Keep it as is, commit undo in current buffer, and we will commit it in
the new buffer when edition level gets back to 0.
2014-11-21 18:56:39 +00:00
Maxime Coste
5497064f9c
Fix missing include in assert.cc
2014-11-20 19:32:58 +00:00
Maxime Coste
bfbee3c71e
Fix info box placement when too wide
2014-11-20 18:45:27 +00:00
Maxime Coste
b5ccc8bc73
Improve line wrapping behaviour
2014-11-20 18:45:10 +00:00
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