Olivier Perret
052eccd964
Add missing newline to 'regions' highlighter description
2018-11-23 10:13:48 +01:00
Maxime Coste
29d4a582d8
Merge remote-tracking branch 'Delapouite/typos'
2018-11-19 20:50:59 +11:00
Maxime Coste
9a68a2d3af
Change BufReadFifo hook param to contain the inserted range
...
the buffer name was not a very interesting information, whereas
the buffer range allows a hook to run only on the appended text
instead of all the buffer.
2018-11-14 17:52:57 +11:00
Maxime Coste
021ba55b38
Small code tweak in DualThreadStack::swap_next
2018-11-14 17:50:17 +11:00
Maxime Coste
54d35472c0
Fix spurious redraw
...
m_last_setup was not storing the actual position that was used to
redraw the window, but the previous one, leading to an additional
spurious redraw immediatly after (triggered by window position not
believed to be the one at last redraw).
Fixes #2562
2018-11-14 17:49:44 +11:00
Maxime Coste
b9ca3ee6dc
Fix column highlighter adding display atoms past the window width
2018-11-14 17:47:11 +11:00
Delapouite
4c68abab11
doc: fix misc typos for source and region highlighter
2018-11-10 12:12:03 +01:00
Delapouite
22166a69c2
Add set-face/unset-face CommandHelpers
2018-11-09 08:29:16 +01:00
Olivier Perret
b96ab67479
Expose selection(s) length with a value
2018-11-08 20:14:33 +11:00
Maxime Coste
8c2c3d27ad
Fix memory leak in DualThreadStack
...
Fixes #2556
2018-11-07 12:28:41 +11:00
Maxime Coste
95622bc6e8
Merge remote-tracking branch 'Delapouite/debug-regex'
2018-11-06 20:17:41 +11:00
Maxime Coste
2eeb9d8deb
Merge remote-tracking branch 'ul/replace-e-face-with-F-in-rc'
2018-11-06 20:16:38 +11:00
Maxime Coste
7f83c41256
align ThreadedRegexVM::Thread to permit fused copy optimization
...
Aligning makes gcc able to copy a Thread object with a single
32bit mov instruction instead of two 16bits one.
2018-11-06 20:13:09 +11:00
Maxime Coste
05a9eb62f4
Never grow the DualThreadStack in push_next
...
As we do at most one push_next per step_thread, and we pop_current
before step_thread, we can avoid a branch there at the expense of
sometimes growing unecessarily (once).
2018-11-06 07:32:47 +11:00
Maxime Coste
7fbde0d44e
Various micro performance tweaks in ThreadedRegexVM
2018-11-05 21:54:29 +11:00
Maxime Coste
7959c7f731
Refactor ThreadedRegexVM::exec_program to avoid branching
...
Moving logic into step_thread instead of returning an enum to
select what to run avoids the switch logic and improves run time.
2018-11-05 19:46:53 +11:00
Maxime Coste
7463a0d449
Remove use of utf8::iterator in regex execution
...
This avoids having two copies of the subject string bounds, one
in the ExecConfig and one in the utf8 iterator.
2018-11-05 08:17:50 +11:00
Maxime Coste
b4571bd172
Dump start description as well when writing a regex dump
2018-11-04 12:01:29 +11:00
Maxime Coste
4ac7df3842
Remove most regex impl special casing for backwards matching
2018-11-03 13:52:40 +11:00
Maxime Coste
ee74c2c2df
Use custom code instead of reverse_iterator in Regex VM
2018-11-02 08:23:39 +11:00
Maxime Coste
6fce8050ee
Use BufferCoord sentinel type for regex matching on BufferIterators
...
BufferIterators are large-ish, and need to check the buffer pointer
on comparison. Checking against a coord is just a 64 bit comparison.
2018-11-01 21:51:10 +11:00
Maxime Coste
8a751e1b57
Remove caching from utf8_iterator
2018-11-01 21:05:09 +11:00
Maxime Coste
4cd7583bbc
Improve regex vm to next start performance by avoiding iterator copies
2018-11-01 08:22:43 +11:00
Maxime Coste
4cfb46ff2e
Support different type for iterators and sentinel in utf8 functions
2018-11-01 08:22:43 +11:00
Delapouite
a61c6a9bb5
Truncate incomplete debug command docstring
2018-10-30 19:46:05 +01:00
Maxime Coste
9fec1b3faf
Buffer: Remove m_line_count field from BufferIterator
...
It seems unlikely this would give performance gain, as buffer
lines are always accessed when we read that field, leading to
all the necessary data already being in memory. Removing it
reduces the size of a BufferIterator, which are already pretty
hefty objects.
2018-10-30 23:18:41 +11:00
Maxime Coste
6271d0d9ff
Merge remote-tracking branch 'eraserhd/refactor-surround'
2018-10-29 19:27:18 +11:00
Delapouite
44ce4bc069
Remove extra spaces for switches list in info
2018-10-28 13:34:19 +01:00
Ruslan Prokopchuk
b65a6493aa
replace usage of the deprecated 'e' face attribute with the new 'F' one
...
and update set-face docstring
2018-10-28 08:52:14 +11:00
Jason Felice
feea0064d8
Simplify surround selection
...
This has the same effect with fewer conditions, and I think it also
specifies the intent more closely this way.
2018-10-27 13:49:45 -04:00
Maxime Coste
3b40ab82f4
Kakoune v2018.10.27
2018-10-27 09:26:50 +11:00
Justin Frank
0d49c925e3
Keep doc/kak.1 when running make-install
2018-10-23 18:15:01 -07:00
Maxime Coste
365407c37a
Merge remote-tracking branch 'Delapouite/previous-char'
2018-10-24 08:13:45 +11:00
Delapouite
ec0926c312
Change next_key title for <a-f>, <a-t>, <a-F> and <a-T>
2018-10-23 19:09:01 +02:00
Maxime Coste
207291219c
Merge remote-tracking branch 'maximbaz/fix-makefile-manpage'
2018-10-23 20:20:32 +11:00
Maxime Coste
7c00165c23
Merge remote-tracking branch 'laelath/vertical-menu-option'
2018-10-23 20:18:56 +11:00
Maxim Baz
9f6518a031
Fix Makefile for manpage
2018-10-23 02:34:05 +02:00
Maxime Coste
e3668121f2
Merge remote-tracking branch 'lenormf/no-a2x'
2018-10-23 08:19:56 +11:00
Maxime Coste
dfc11d1c43
Refactor Hook management to have a well defined list of hooks
...
Hooks are now an enum class instead of passing strings around.
2018-10-23 08:15:53 +11:00
Frank LENORMAND
60b24c6a32
doc: Convert the man page to the TROFF format
...
Fixes #2504
2018-10-21 14:04:25 +03:00
Maxime Coste
72bdd7900f
Move LineRangeSet to line_modification.hh
2018-10-21 12:10:21 +11:00
Maxime Coste
a383ce3045
Fix LineRangeSet::udpate not updating some traling ranges correctly
...
Fixes #2499
2018-10-21 11:49:30 +11:00
Justin Frank
c5a1225638
removed option and horizontal layout
2018-10-15 14:07:39 -07:00
Justin Frank
a1e3fa02e6
added option for vertical menu layout in the ncurses ui
2018-10-15 14:07:39 -07:00
Maxime Coste
da13b5f814
Fix handling of capture matching in region highlighter
...
Also extend the highlight/regions test to validate that.
Thanks to lenormf for reviewing my change and finding this bug.
2018-10-15 21:21:12 +11:00
Maxime Coste
71e27c73af
Cleanup RegexHighlighter code and drop cache when it becomes too big
...
The RegexHighlighter range cache can get pretty big in nested
regions use cases, and maintaining it can become pretty costly,
so if it hits a certain size, just drop it.
Should improve performances in #2454
2018-10-14 09:48:39 +11:00
Maxime Coste
194a5db5d6
maintain a list of valid ranges for region highlighting
...
This should greatly reduce memory usage by only caching matches
for ranges that needs to be highlighted, in the case where multiple
regions are nested, this means only the topmost region needs to parse
and cache the whole buffer, other regions highlighter will only ensure
the lines for the ranges they are called up are cached.
Fixes #2454
2018-10-14 09:48:39 +11:00
Maxime Coste
dd0e4310a7
Slight code refactoring in RegionsHighlighter
2018-10-14 09:48:39 +11:00
Maxime Coste
5922299083
Merge remote-tracking branch 'Delapouite/complete_alias'
2018-10-14 09:46:35 +11:00
Maxime Coste
d652ec9ce1
Cleanup regex lookarounds implementation and reject incompatible regex
...
Fixes #2487
2018-10-10 22:47:59 +11:00
Delapouite
3a36490ef1
Add alias completer to unalias command
2018-10-08 22:07:13 +02:00
Maxime Coste
9024d41d64
Fix integer overflow leading to bad memory access in regex execution
...
Fixes #2481
Fixes #2480
2018-10-08 12:43:12 +11:00
Maxime Coste
ed84a2d60c
Buffer begin and end are not end-of-words
...
Buffer begin never has a word character before, and end is always
preceeded by an end-of-line.
Fixes #2420
2018-10-08 12:40:52 +11:00
Maxime Coste
eba40028b9
Update startup messsage and changelog.asciidoc
2018-10-06 10:55:26 +10:00
Maxime Coste
5bdcfab018
Merge remote-tracking branch 'laelath/shell-command-completion'
2018-10-06 10:47:23 +10:00
Maxime Coste
0d20e57e29
Small style tweak
2018-10-06 10:44:56 +10:00
Maxime Coste
98da5dd13a
Merge remote-tracking branch 'eraserhd/notify_fatal_error-undefined-behavior'
2018-10-06 10:23:10 +10:00
Maxime Coste
e8ac3395f5
Reduce memory usage of cached matches for RegionsHighlighter
...
This adds a limitation that capture matching on regions only works
if the regions start/end/recurse match is less than 65635 byte long.
With this limitation we can reduce the RegexMatch struct size to 16
bytes instead of 32.
This is still not good enough,but should slightly improve high memory
usage as reported in #2454
2018-10-06 10:16:20 +10:00
Jason Felice
c78cd84ea4
Fix undefined behavior in notify_fatal_error
2018-10-05 10:10:14 +01:00
Justin Frank
ab6bc41358
Added shell command completion support to define-command and prompt
...
This commit also introduces a regression in that I decided that the best way to
avoid overly long and confusing names was to rename the current shell-*
switches to script-*, and have the shell command completion be
shell-completion.
renamed script-{completion,candidates} to shell-script-*
Updated docs with new switch names
Added -shell-completion switch to x11-repl and kitty-repl
2018-10-03 09:46:31 -07:00
Justin Frank
f3f52fc818
show_matching_char highlighter use the matching_pairs options
2018-10-01 23:37:25 -07:00
Frank LENORMAND
2d44712766
src: Implement <a-m> and <a-M>
...
Closes #2425
2018-09-30 19:56:37 +03:00
Frank LENORMAND
6b7200e4d5
src: Move <a-m> to <a-_>
2018-09-30 19:45:20 +03:00
Frank LENORMAND
3d79107773
src: Drop selections that only contain whitespace on _
...
Fixes #2387
2018-09-27 14:47:26 +03:00
Olivier Perret
93f913705a
Misc fixes
2018-09-24 09:54:21 +02:00
Delapouite
b60613259c
Add a way to unmap all keys of a given mode at once
2018-09-23 19:40:38 +02:00
Maxime Coste
1631a7d8d9
Replace the Exclusive
face attribute with Final
...
Final is more granular, it consists of FinalFg (f), FinalBg (g)
and FinalAttr (a) which control if a face's fg, bg, or attributes
fully overwrite the previous face (instead of merging) and if
following faces apply on top of this face or not.
Fixes #2388 if the Whitespace face has the FinalFg flag.
2018-09-23 23:27:14 +10:00
Maxime Coste
5d0ea2936d
Ignore errors in write_stdout
...
Fixes #2418
2018-09-23 17:16:09 +10:00
Maxime Coste
fa993768da
Merge remote-tracking branch 'eraserhd/script-docs'
2018-09-23 17:06:25 +10:00
Maxime Coste
9c1c763a37
Reject hook names that are not alphanumeric _ or - or start with -
...
Fixes #2414
2018-09-22 22:11:21 +10:00
Maxime Coste
3f4c86b12f
Merge remote-tracking branch 'Delapouite/rename-completions'
2018-09-22 22:02:58 +10:00
Jason Felice
6c4593b18a
Document that -f
starts with whole file selected
2018-09-21 10:01:20 -04:00
Delapouite
d8747bc1e0
Add completion for rename-buffer, rename-client and rename-session
2018-09-20 19:01:47 +02:00
Jan-Jaap Korpershoek
35dca5866c
Update documentation of region highlighter to match change in 2e0e206951
2018-09-16 19:38:18 +02:00
Maxime Coste
0c3d9ccd20
Change remove-hooks to take a regular expression
...
All hooks whose group match this regex will be removed.
Fixes #2380 .
2018-09-12 21:26:21 +10:00
Maxime Coste
8536adc5ac
Merge remote-tracking branch 'eraserhd/2367-surround-with-tight-nesting'
2018-09-12 20:57:59 +10:00
Maxime Coste
d3be78cca2
Only commit undo groups when buffer was modified
...
This fixes an interaction with kak-lsp that would trigger undo group
commit when setting a buffer option value.
2018-09-12 20:02:57 +10:00
Jason Felice
83244af106
Don't skip opening brace twice when finding closing
...
Fixes #2367
Fixes #2129
2018-09-09 10:15:41 -04:00
Frank LENORMAND
377e09abd9
src: Check that Once
hooks to remove exist
...
Fixes #2370 .
2018-09-09 13:12:47 +03:00
Maxime Coste
14f9f4c468
Fix use after delete in RemoteClient FDWatcher callback
...
Fixes #2357
2018-09-07 09:09:07 +10:00
Maxime Coste
15bb23865a
Join highlighter parameters with a '_' to autogenerate their name
2018-09-07 09:09:07 +10:00
Maxime Coste
d73ec20285
Kakoune v2018.09.04
2018-09-04 08:22:28 +10:00
Maxime Coste
b8dbe6135c
Remove leading v in archive names when generating releases
2018-09-04 08:22:28 +10:00
Maxime Coste
37e2558413
Add readline word erase bindings, throw in clipboard for good measure
...
Add <c-w> and <a-d> (along with <c-W> and <a-D> that work on WORDs),
and <c-y> which pastes the transient clipboard contant (which saves
big erase, such as word erase and line end/begin erase).
Fixes #2355
2018-09-04 07:55:56 +10:00
Maxime Coste
b581a4fbed
Merge remote-tracking branch 'Delapouite/sync-exit-status'
2018-09-03 22:33:20 +10:00
Maxime Coste
4b7e77ae00
Change line editing bindings to match readline's
...
In the end, no better solution materialized so far, and custom
Kakoune line editing bindings are hard to remember. Using well
known readline bindings seems just more convenient.
Closes #800 , although it does not contain all the binding proposed
by it (I might accept a few additional ones, such as <c-w>, but not
too much, I still see that as a hack pending a nicer solution).
2018-09-03 22:15:28 +10:00
Delapouite
5e75f748a2
docs: add missing -sync and exit status in autoinfo and doc page
2018-09-03 08:25:08 +02:00
Maxime Coste
a8c792706d
Fix setting a prefix list option with an empty list
...
Fixes #2335
2018-08-30 20:27:10 +10:00
Maxime Coste
df655422d1
Merge remote-tracking branch 'Screwtapello/support-user-map-options'
2018-08-30 20:10:00 +10:00
Maxime Coste
ee39649d3a
Merge remote-tracking branch 'Screwtapello/fix-slow-word-wrap'
2018-08-30 20:09:13 +10:00
Maxime Coste
872ecd472c
Merge remote-tracking branch 'Delapouite/auto_complete'
2018-08-30 20:07:08 +10:00
Maxime Coste
a0ac3c8c4c
Merge remote-tracking branch 'occivink/source-with-args'
2018-08-30 20:04:07 +10:00
Maxime Coste
fcaa4314f7
Merge branch 'patch-1' of https://github.com/John-Colvin/kakoune
2018-08-30 20:03:51 +10:00
Shachaf Ben-Kiki
5238c2d93d
Extend source
command to support parameters.
...
Parameters are accessible in %arg{n}, as with define-command.
2018-08-30 10:00:13 +02:00
Maxime Coste
68aba9e353
Use shell specific quoting for env vars
...
Add a test case to validate roundtrips between Kakoune and the
shell.
2018-08-29 07:53:59 +10:00
John Colvin
94a3b85745
Missing space at eol in write CommandDesc
2018-08-28 11:59:43 +01:00
Tim Allen
82c01c5dd3
Speed up wrapping at word boundaries.
...
Previously, when wrapping lines at word boundaries, we would iterate forwards
for "wrap-width" characters, then iterate backwards until we found a word-break,
which was horribly slow.
Now we record the last word-boundary we saw as we iterate forwards, getting a
result in one pass.
Fixes #2339 .
2018-08-28 17:43:16 +10:00
Delapouite
c2bd4b38a0
Add toggling capabilities for <c-o> in Insert and Prompt mode
...
Ref #2121
2018-08-27 22:08:38 +02:00
Maxime Coste
9fdf1f1168
Merge remote-tracking branch 'ricochet1k/master'
2018-08-27 08:13:07 +10:00
Maxime Coste
b06ba627b2
Refactor whitespace highlighter into a struct
2018-08-27 08:05:00 +10:00