Maxime Coste
d9abc2a156
Refactor StringData and StringRegistry to remove need for purging
...
Purging unused strings could get pretty expensive with a lot of
interned strings as it requiered iterating on all of them. Use
a flag on the refcount of the StringData to see if the string
is interned, and notify the StringRegistry in this case.
This should improve the speed of editing big files with many words,
such as the one described in #1195
2017-02-23 00:03:32 +00:00
Maxime Coste
7a143a7f7c
Use false instead of 0 in the kak_assert do while
2017-02-23 00:03:11 +00:00
Frank LENORMAND
98cfbc7c3c
Properly wrap kak_assert
into a do-while scope
...
Expanding the `kak_assert` macro to either an `if` statement or nothing
leads to issues when the macro is used in a conditional statement that
doesn't use braces.
Example: ncurses_ui.cc:476, in non debug mode, the macro will expand to
an empty line, resulting in the `ungetch` call not being executed if the
`ioctl` call succeeds (line 448).
2017-02-22 13:04:25 +03:00
Maxime Coste
467f5547d5
Try to please clang-3.5
2017-02-22 09:44:19 +00:00
Maxime Coste
e2f6b9a393
Fix overly strict backward_sorted_until
...
A change that ended exactly where the previous one started was not
considered backward sorted. Leading to some very bad performances in
certain cases, like '100000o<esc>u'
2017-02-20 19:46:12 +00:00
Maxime Coste
fe2d0fab71
Fix performance of word completion with many different selections
...
Fixes #1228
2017-02-20 19:28:02 +00:00
Maxime Coste
5eef2b9105
Correctly handle mutation of the watcher list while iterating on them
...
Fixes #1227
2017-02-20 13:50:30 +00:00
Maxime Coste
2b01da530d
Fix hook list in commands.cc
2017-02-19 14:14:22 +00:00
Maxime Coste
9fdbcf761d
Display an info box on startup with recent breaking changes
2017-02-19 13:59:44 +00:00
Maxime Coste
9271f0a87d
Fix handling of disabled_hooks regex
2017-02-19 13:59:34 +00:00
Maxime Coste
edc2a88643
Rename BufNew and BufOpen hooks to BufNewFile and BufOpenFile
...
Fixes #1225
2017-02-19 13:08:06 +00:00
Maxime Coste
889a2144d4
Copy the list of hooks to run before iterating on them and running them
...
Running hooks could result in the hook list getting mutated, leading
to potential crashes.
Fixes #1222
2017-02-19 12:08:13 +00:00
Maxime Coste
38102595ef
Small naming tweak in HookManager
2017-02-19 11:52:31 +00:00
Maxime Coste
c3af384c70
Detect when -client, -buffer or -try-client are used at the same time
...
Fixes #1218
2017-02-15 18:59:37 +00:00
Maxime Coste
0a1cb4b9b1
Detect when switches are specified more than once
...
Fixes #1219
2017-02-15 18:55:11 +00:00
Maxime Coste
9e0f085b86
Reorganize code in main.cc
2017-02-14 13:54:45 +00:00
Maxime Coste
d470bd2cc9
Make numeric registers setable
...
Fixes #1214
2017-02-14 00:02:01 +00:00
Maxime Coste
e3a04dfa65
Fix RegisterRestorer not handling potential throws on register assign
...
This should fix part of #1214
2017-02-13 23:31:16 +00:00
Maxime Coste
4f18e56320
Fix non-returning parse_key lambda
2017-02-13 14:02:09 +00:00
Maxime Coste
2edb7d62ef
Add support for -on-change and -on-abort to prompt
...
Fixes #1209
2017-02-12 12:51:58 +00:00
Maxime Coste
9ba1665e58
Refactor show_whitespaces a bit
2017-02-09 23:52:38 +00:00
Maxime Coste
6163134f30
Merge remote-tracking branch 'lenormf/show-whitespaces-flags'
2017-02-09 23:33:08 +00:00
Maxime Coste
4ae441db68
Merge remote-tracking branch 'Delapouite/decl-completer'
2017-02-09 23:26:12 +00:00
Maxime Coste
86bba5d9d2
Merge remote-tracking branch 'Delapouite/line-flags'
2017-02-09 23:26:05 +00:00
Delapouite
0cf94292e4
Add command completer for types to declare-option
2017-02-09 10:18:13 +01:00
Delapouite
cfb2b4fade
Fix missing new line char in declare_option_cmd info
2017-02-09 09:01:49 +01:00
Maxime Coste
1c63d28f15
Fix Buffer::offset_coord that was dropping the target coordinate
2017-02-07 23:13:14 +00:00
Maxime Coste
5342d67fa4
Remove unneeded padding in relative line numbers highlighting
...
We were still adding one more char to the line number width in case
it would contain a minus sign. The minus signs are not used anymore
in relative line numbering so we dont need to keep that addtional
char which is always a blank.
2017-02-07 23:01:23 +00:00
Maxime Coste
ce2b85ddac
Add -match-capture support for regions higlighter
...
Closes #837
2017-02-06 23:00:13 +00:00
Maxime Coste
45b145f540
Small layout tweak for Buffer::HistoryNode
2017-02-06 13:33:20 +00:00
Frank LENORMAND
5d86b58a38
Allow modifying the characters used when highlighting whitespace
...
This commit adds the following flags to the `show_whitespaces`
highlighter, with a one character long parameter:
* `-lf`: character replacing line feeds
* `-spc`: character replacing spaces
* `-nbsp`: character replacing non breakable spaces
* `-tab`: character replacing a tabulation
* `-tabpad`: character used as padding after a tabulation to satisfy
the `tabstop` option
2017-02-04 10:21:13 +03:00
Maxime Coste
cb2e1a17b3
Fix some bugs in non blocking pipe writing
2017-02-03 18:40:03 +00:00
Maxime Coste
f500af9023
Merge remote-tracking branch 'ekie/move_buffer_end'
2017-02-03 13:49:33 +00:00
Maxime Coste
c793ef3aa8
Store shell-candidates completions in the Completion memory domain
2017-02-03 13:42:47 +00:00
Maxime Coste
02b7e58481
Make piping data into shell commands non blocking
...
Fixes #1180
2017-02-03 01:14:42 +00:00
Maxime Coste
d90919568a
Also execute prompt callback when just starting
...
incsearch will immediatly display the result of using an empty
string (reusing the search register content).
Fixes #1174
2017-02-01 23:04:37 +00:00
Maxime Coste
bc0dfa9e8f
Use <a-'> for backward rotate selection and move rotate content to <a-">
2017-02-01 22:53:42 +00:00
Maxime Coste
65bbc19d6f
Change n
behaviour to only select next match for main selection
...
Select next match for all selections is still available as /<ret>
Fixes #1173
2017-02-01 20:00:05 +00:00
Maxime Coste
6a0354a597
Tweak ranked match ordering
2017-01-31 22:30:23 +00:00
Maxime Coste
472f5149c0
Formatting fix
2017-01-31 21:46:20 +00:00
Maxime Coste
f44415cee4
Add some noexcept to pointer policies
2017-01-31 21:45:55 +00:00
Eike Plack
01eceebf75
Support the vim behaviour for +line syntax
...
* Ommitting the linenumber will move to buffer end
2017-01-31 19:44:27 +01:00
Maxime Coste
34870eb353
Rework NCurses key parsing to properly handle <a-special key>
2017-01-30 13:38:56 +00:00
Maxime Coste
f30e164232
Make SharedString::create take a list of StringViews
2017-01-30 13:38:38 +00:00
Maxime Coste
9d09d14d99
Warning fix in ranked_match.cc
2017-01-30 11:22:14 +00:00
Maxime Coste
192ea9a9d9
Fix explicit insert completion menu/info not hiding
...
Fixes #1168
2017-01-30 10:32:29 +00:00
Maxime Coste
632e05d830
Fix infinite loop when comparing RankedMatches containing invalid utf8
...
If we had a word containing some invalid utf8, like a wrong sequence
of continuation bytes, we would infinitely loop back to the previous
valid character start.
Fixes #1157
2017-01-29 23:50:33 +00:00
Maxime Coste
1ff60ff592
Fix some uninitialized values
2017-01-29 23:37:42 +00:00
Maxime Coste
cb395d39f8
Use iswlower instead of islower
...
islower can crash with big codepoints, and is incorrect anyway.
2017-01-29 23:37:10 +00:00
Maxime Coste
565d835d57
Fix option name in haskell.kak
2017-01-29 16:10:48 +00:00