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