Maxime Coste
346c78f5e0
Header and dependency cleanup
2019-01-24 21:22:20 +11:00
Maxime Coste
4b72cfe530
Replace std::tie with structured bindings
2019-01-24 21:21:59 +11:00
Maxime Coste
90dd084993
Only embed gdb script on ELF targets, and add missing gdb symlink
2019-01-23 20:59:32 +11:00
Maxime Coste
ebc9f7703b
Embed gdb pretty-printing script directly into Kakoune binary
...
This will get stripped correctly, and should make debugging easier.
2019-01-23 20:27:16 +11:00
Maxime Coste
36e9e7eaf9
Change pipe diffing to work linewise
...
This should greatly improve performances as we only need to diff
lines instead of individual characters.
Closes #2678
Fixes #2037
2019-01-23 20:20:54 +11:00
Maxime Coste
370d10ccc7
Always select inserted text after piping
...
Relying on general selection update code is error prone due to
diffing.
Fixes #2394
2019-01-23 20:14:08 +11:00
Maxime Coste
c07f052de7
Default to release build
...
Fixes #2701
2019-01-22 19:41:58 +11:00
Maxime Coste
eb8f785e91
Try to bypass clang crash
2019-01-20 22:59:28 +11:00
Maxime Coste
77b1216ace
Add a peephole optimization pass to the regex compiler
2019-01-20 22:59:28 +11:00
Maxime Coste
0364a99827
Refactor regex find next start not to be an instruction anymore
...
The same logic can be hard coded, avoiding one thread and 3
instructions, improving the regex matching speed.
2019-01-20 22:59:28 +11:00
Maxime Coste
fd043435e5
Split compile time regex flags from runtime ones
2019-01-20 22:59:28 +11:00
Maxime Coste
8c2603ab3c
Support re-using the same ThreadedRegexVM for multiple iterations
...
This should reduce the number of allocations as the memory allocated
for the thread stack and the saves can be re-used between runs instead
of being cleared every time.
2019-01-20 22:59:28 +11:00
Maxime Coste
30897fd820
Fix warning on gcc 8
2019-01-20 22:59:28 +11:00
Maxime Coste
7b29192c24
Fix use of removed std::random_shuffle
2019-01-20 22:59:28 +11:00
Maxime Coste
2afc147b2c
Refactor parsed regex children iteration to use regular range-for loops
2019-01-20 22:59:28 +11:00
Maxime Coste
566268d7bc
Refactor RegexIterator to use a Sentinel
2019-01-20 22:59:28 +11:00
Maxime Coste
3babd0685c
Switch to compilation standard to C++17
2019-01-20 22:59:28 +11:00
Maxime Coste
cb7401439b
Kakoune v2019.01.20
2019-01-20 22:52:01 +11:00
Maxime Coste
ae69759a53
Defer deletion of unsetted option to return to main loop
...
Fixes #2572
2019-01-20 22:46:40 +11:00
Maxime Coste
7df7f5d38b
small code tweak
2019-01-19 10:34:12 +11:00
Maxime Coste
445da8d7bf
Use an InvalidPolicy in utf8::dump and utf8::codepoint_size
...
Do not throw on invalid codepoints by default, ignore them.
Fixes #2686
2019-01-13 18:29:20 +11:00
Maxime Coste
328c497be2
Add support for named captures to the regex impl and regex highlighter
...
ECMAScript is adding support for it, and it is a pretty isolated
change to do.
Fixes #2293
2019-01-03 22:55:50 +11:00
Maxime Coste
56ee329d79
Add Optional::value_or_compute for lazy computation of default value
2019-01-03 22:49:40 +11:00
Maxime Coste
09e6518545
Remove DurationMs and slight code refactor
2018-12-28 06:27:35 +11:00
Maxime Coste
ef8fdd664f
Merge remote-tracking branch 'lenormf/unit-tests-timing'
2018-12-28 06:16:50 +11:00
Maxime Coste
20e64f34bc
Use fork instead of vfork on CYGWIN
...
Fixes #2653
2018-12-27 13:06:31 +11:00
Frank LENORMAND
623c8a76f4
src: Run and display the time taken by unit tests to run in debug mode
...
Knowing how much time the editor took to run unit tests gives users
a notion of how fast it's performing on a given system.
2018-12-23 09:26:12 +03:00
Frank LENORMAND
b1f5639d8c
src: Add support for right click events
...
The current implementation treats left mouse button clicks as a
generic "mouse press" modifier, this commit extends the list of
modifiers by adding a "right mouse click" one.
The proper way to implement this would be to ship the coordinates
of mouse key press events in each `Key` object, and pass whichever
button was clicked as a codepoint value (instead of coordinates
currently), but this would require more work.
This commit allows:
* right clicks to set the cursor of the main selection
* control-right clicks to merge all the selections, and then set
its cursor
Fixes #843
2018-12-20 14:32:18 +03:00
Maxime Coste
1a280e91c7
Add support for 'sanitizers=...' make option
...
Use make sanitizers=undefined,address to enable undefined and address
sanitizers.
Closes #2596
2018-12-19 19:31:04 +11:00
Maxime Coste
ef3419edbf
Do not pass thread to failed/consumed, capture it implicitely
2018-12-19 19:16:14 +11:00
Maxime Coste
0b9f782691
Take iterators by const-ref in ThreadedRegexVM::exec
2018-12-19 19:14:42 +11:00
Maxime Coste
d2f2c3d0c7
Generate a coredump on quit due to SIGSEGV
2018-12-13 21:29:33 +11:00
Maxime Coste
0e1e0fc57b
Improve deindent behaviour with mixed indent
2018-12-13 17:35:16 +11:00
Maxime Coste
f7ab129e53
Remove support for 8-bit CSI as it breaks utf8 input
...
Fixes #2630
2018-12-12 19:10:28 +11:00
Maxime Coste
b929b94bfc
Merge remote-tracking branch 'lenormf/fix-makefile-test-rule'
2018-12-11 22:11:55 +11:00
Maxime Coste
c6f98f8483
Fix compilation error
2018-12-09 22:05:32 +11:00
Maxime Coste
10163488c1
Merge branch 'patch-1' of http://github.com/gnull/kakoune
2018-12-09 21:51:15 +11:00
Maxime Coste
64f1c31401
Refactor parsing of keys and introduce a builtin key parser mode
...
By setting the ncurses_builtin_key_parser ui_option to true, we
can disable ncurses parsing of key strokes to get less portable
parsing but support for more complex modifiers.
2018-12-09 21:35:22 +11:00
Maxime Coste
1670a7514a
NCursesUI: Handle CSI in 8-bit mode as well
2018-12-09 11:20:03 +11:00
Maxime Coste
e90e77e5fc
Merge remote-tracking branch 'jeapostrophe/master'
2018-12-09 10:33:44 +11:00
Maxime Coste
1875ff51a0
Gather the list of hooks to run before running the parent
...
This will prevent hooks added by the parent hook manager to be
gathered, as was decided during the discussion for #2603
2018-12-09 10:07:40 +11:00
Ivan Oleynikov
48249ea818
Very minor grammar fix
...
Probably, the extra «s» at the end of «exist» was added accidentally. A verb after «does not» in Present Simple definitely shouldn't have this extra «s».
2018-12-08 18:59:13 +03:00
Jay McCarthy
dde81019a2
Fix dumb typo
2018-12-07 16:33:35 -05:00
Jay McCarthy
f36a2870b8
Simplify re: lenormf
2018-12-07 16:33:35 -05:00
Jay McCarthy
4cac29d98c
Update re lenormf's comments
2018-12-07 16:33:35 -05:00
Jay McCarthy
af5d2d9523
Parse xterm-keys for motion directly
...
Ideally, something better should be done (re #2554 ) but this is a decent
intermediate step for some useful keys.
Note: NCurses supports parsing these keys when shifted (KEY_SR,
_SLEFT, S_RIGHT, etc), but it does not do the same thing for the other
modifiers.
2018-12-07 16:33:35 -05:00
Jason Felice
a4f830f143
Use _exit() after vfork()
...
Closes #2620
The docs for Mac OS X's vfork() requires it, and _exit() conforms to
POSIX.1-2008.
http://man7.org/linux/man-pages/man2/_exit.2.html
2018-12-07 09:36:06 -05:00
Frank LENORMAND
7fea08e736
src: The test
build target depends on kak
...
Not having the `test` target (in the Makefile) depend on the `kak` one
prevents users from running commands that make use of parallelism, e.g.:
$ make -j all test
The above command sometimes results in the test suite running before
the binary has been compiled and symlinked, resulting in failures.
2018-12-06 14:34:29 +03:00
Maxime Coste
b897a18aa6
Use a dummy function for SIGPIPE instead of SIG_IGN
...
SIG_IGN is inherited after 'execve' and requires us to reset
that signal handler, which does not work well with vfork on
OSX. Using an empty function does the trick and will be auto
reset to default on exec.
2018-12-06 20:33:13 +11:00
Frank LENORMAND
f0e07cc73c
src: Prevent :prompt -on-change
from crashing the editor
...
Fixes #1217
2018-12-01 08:41:29 +03:00