Maxime Coste
89f016d871
Refactor column highlighter to make it more robust
...
Support arbitrary orders for column highlighters (it was previously
failing when column highlighters were not applied in column order).
Fix show_matching tab handling at the same time (horizontal scrolling,
tab characters and show_matching were behaving badly).
Window highlighting now runs user highlighters, then built-ins for each
phases, instead of running all phases for user highlighters, then all
phases for built-ins.
We now consider unprintable character to be 1-column width as we know
we will display them as "�".
Fixes #1615
Fixes #1023
2017-10-12 14:46:15 +08:00
Maxime Coste
0da5cabbfe
Distinguish between modes being disabled temporarily and definitely
...
That way, insert mode knows when it can restore selections/avoid eol
instead of (wrongly) doing it in the destructor that ends up running
unpredictibly (as the mode is kept alive during its on_key call, even
though it can happen that it is not the active mode anymore at the end
of that call).
Fixes #1580
2017-09-28 11:11:29 +08:00
Maxime Coste
e53cb356a7
Fix regression test #1435 after a change in the insert modeline format
2017-09-28 10:44:54 +08:00
Maxime Coste
d5c10472f6
Avoid wrapping between punctuation and word
...
Fixes #1550
2017-09-18 09:52:24 +09:00
Maxime Coste
609a8ee8c7
Change selection extension code to be simpler
...
Selection extension now just keeps the anchor in place insead of
trying to be smart depending on the direction of selections.
2017-08-18 08:49:37 +07:00
Maxime Coste
fc64369f9d
Purge history on buffer reload when NoUndo flag is on
...
We were preserving the history in that case, so on fifo buffers
(that set the NoUndo flag until the fifo is closed), we still had
the history from the "previous life" of the buffer, leading crashes
when trying to apply it.
Fixes #1518
2017-08-04 11:39:28 +07:00
Tim Allen
e640e6d859
Consecutive markdown list bullets are not a valid list prefix.
...
Previously, if you opened a new line after an underlined heading (what
the CommonMark spec calls a "Setext heading") or inserted a newline into
a line that started with `**strong emphasis**` the Markdown autoindent
hook would assume the leading symbols were list bullets and paste them
at the beginning of the new line.
However, the CommonMark specification says that list bullets must be
followed by at least one horizontal whitespace character, so Setext
heading underlines and strong emphasis are not valid list bullets and
should not be matched by the autoindent pattern.
This commit changes the regex that selects the pastable prefix of the
previous line so that it must match either:
- One or more `>` characters with optional whitespace between them
(a blockquote prefix), optionally followed by a list bullet; or
- An optional blockquote prefix and a list bullet
Since we don't strictly need either the blockquote prefix nor the list
bullet, we could concievably just make both optional... but for lines
without either, the regex would find a zero-length match, and for the
purposes of copy/paste Kakoune treats that as a one-character match.
Therefore, the regex is written to fail if neither pattern is found.
2017-08-01 20:36:40 +10:00
Tim Allen
8a6df93dc6
More tests for markdown autoindent.
...
All these tests pass with the current implementation.
2017-08-01 19:53:01 +10:00
Maxime Coste
bb9dd14a09
Check final cursor position in indent/c-family/indent-if-body test
2017-07-29 10:46:41 +07:00
Maxime Coste
8650c99f13
Fix assertion when replacing with empty strings
...
Replacing with empty strings is essentially a deletion, which means
it can end up push some selections out of the buffer (imagine 3 a
2 empty line buffer, and deleting the second one). We are fixing
the selections in SelectionList::erase, but we were not doing that
in SelectionList::insert.
Fixes #1504
2017-07-14 13:08:29 +09:00
Maxime Coste
53f5b3d709
Fix an assert in compute modified ranges when merging single char ranges
...
Due to the way Selection::min/max worked, we were creating backward
selections, with cursor < anchor, which was triggering an assert when
trying to move cursor back one char when it was already on the first
char of the buffer.
2017-07-14 12:42:43 +09:00
Maxime Coste
641acc5943
Do not allow repeating last insert when we are not in normal mode
...
<a-;>. is not accepted anymore. Note that <a-;> are not repeatable
currently anyway (That could be fixed, athough not trivial).
Fixes #1469
2017-06-27 09:57:10 +01:00
Maxime Coste
ce8078ad73
Ensure cursor stays visible with wrapped line bigger than window
...
Fixes #1459
2017-06-27 09:29:25 +01:00
Maxime Coste
475e8849a1
Fix replacing last eol with a single eol
2017-06-26 16:16:46 +01:00
Maxime Coste
f41d78083a
Use the extra_word_chars option in word based normal commands
...
the completion_extra_word_chars is now gone, superseeded by
extra_word_chars that gets used both for completion and for normal mode.
Fixes #1304
2017-06-26 15:28:41 +01:00
Tomasz Kramkowski
bd65719698
Correctly handle tabs when show_whitespaces is added
...
Tabs now align to tab stops instead of always spanning 8 spaces when
show_whitespaces is added as a highlighter.
This fixes issue #1453 .
A regression test is also provided.
2017-06-17 11:46:39 +01:00
Maxime Coste
01a1e92b79
Fix crash recently introduced when deleting at buffer start in insert mode
2017-06-15 17:35:48 +01:00
Maxime Coste
724b4198b0
Change window display to not use invalid buffer coordinates
...
Fixes #1435
2017-06-15 16:48:16 +01:00
Maxime Coste
8bee02c8bb
Use more correct [ -f <file> ]
in test runner
2017-06-15 12:44:50 +01:00
Maxime Coste
40f845d77e
Respect scroll offset even when wrapping lines
...
Fixes #1433 although in a slightly different way than requested:
We ensure that scrolloff *displayed* lines are visible below the
cursor, not scrolloff *buffer* lines.
2017-06-15 12:29:34 +01:00
Maxime Coste
e73cd78288
Fix corner case in C family indenting
2017-06-13 10:19:38 +01:00
Maxime Coste
7bcfbd055c
Fix corner case in compute_modified_ranges
2017-06-11 12:25:12 +01:00
Maxime Coste
b4647a16dd
Remove backup file from git
2017-06-09 21:30:40 +01:00
Maxime Coste
7b9d8d39b1
Simplify column highlighter and make it more robust
...
Fixes #1382
2017-06-09 15:24:07 +01:00
Maxime Coste
f310db639c
Rework partial line display logic
...
Instead of highlighting full lines and then trim them to make them
fit in the window, highlight only the visible portion, and rely on
the compute_display_setup system introduced for wrapping to setup
our buffer range correctly
2017-06-09 13:22:32 +01:00
Maxime Coste
e145d05e34
Add some unit tests for horizontal scrolling with tabulations
2017-06-09 11:49:54 +01:00
Maxime Coste
c54c8c05bf
Add horizontal/vertical scrolling display tests
2017-06-09 10:55:17 +01:00
Maxime Coste
fb81b1bc86
Rename 'unit' test directory to 'normal' as they are the normal mode tests
2017-06-09 10:48:37 +01:00
Maxime Coste
f014eb7052
Fix command parsing bug when commenting after a command
...
When a comment was present directly on the same line after a command,
we did not correctly see the command as terminated and would join
continue parsing the next line.
2017-05-25 08:30:49 +01:00
Maxime Coste
1c16a91fd6
Add some missing tests for c-family indent
2017-05-21 22:33:00 +01:00
Maxime Coste
2f9b77b748
Smarter align to opening parenthesis/brace supporting multiline
2017-05-21 22:31:05 +01:00
Maxime Coste
cab0adaa53
Support aligning to opening { as well as ( in c-family indent
2017-05-20 11:08:13 +01:00
Maxime Coste
e722868c60
Fix generation of empty erase changes
...
Fixes #1308
2017-04-20 17:31:27 +01:00
Maxime Coste
dbcddafbfd
Change utf8::to_next/to_previous so that they are more symetrical
...
The previous implementation could yield different positions when
iterating forward and backward, leading to confusion in boost regex.
This makes an existing problem a bit more visible: iterating with
to_next and with read_codepoint wont behave the same way, as
read_codepoint will put the iterator onto the byte following the
utf8 codepoint, whereas to_next will put it on the next utf8
character start byte, which might be different if the buffer content
is not valid utf8.
Fixes #1195
2017-04-20 16:18:49 +01:00
Maxime Coste
bee2180da7
Do not try to split non range atoms in column highlighter
...
That means we wont have a very nice interaction between show_whitespaces
and column highlighters, but thats the simplest fix for now, if we want
a better behaviour we need to introduce a way to know that a replaced
range is splittable (meaning it means to have the same amount of columns
as the range it replaces)
Fixes #1275
2017-04-19 21:15:36 +01:00
Maxime Coste
7482d117cc
Fix tests after addition of the set_cursor UI method
2017-04-12 10:48:52 +01:00
Maxime Coste
2cc1333f6b
Add regression test for #1105
...
Fixes #1105
2017-03-15 11:47:10 +00:00
Dan Rosén
5a403a9611
Increase modelinefmt configuration power
2017-03-11 21:43:51 +01:00
Frank LENORMAND
d15efa4e40
test: Remove empty test directories
...
Closes #922
2017-03-07 19:02:00 +03:00
Maxime Coste
cc88b0f586
Change word object selector to fail if the cursor is not on a word char
2017-03-04 18:33:50 +00:00
Maxime Coste
31edff85c3
Move object unit tests in their own subfolder
2017-03-03 23:31:30 +00:00
Maxime Coste
28940e0e28
Fix tests for indent selection
2017-03-03 23:28:30 +00:00
Maxime Coste
1728c67fef
Fix indent selection respect for original selection cursor position
...
Fixes #1233
2017-03-03 22:03:20 +00:00
Maxime Coste
ddc5e958e6
Return an optional selection in most selectors, fail rather than keep current
...
Instead of returning the current selection when a selector fails, return
an empty Optional<Selection>. That means object selections will now
remove the selections that dont match the object.
2017-03-03 20:17:11 +00:00
Frank LENORMAND
58cad9aecf
test: Fix UTF8 compliant locale detection
2017-02-23 18:46:56 +03:00
Maxime Coste
d0d38da3c5
Refactor test run script
2017-02-21 23:26:39 +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
bc0dfa9e8f
Use <a-'> for backward rotate selection and move rotate content to <a-">
2017-02-01 22:53:42 +00:00
Maxime Coste
fc61ed93e6
Import unit tests from danr/comment-insertion-refix pull request
2017-01-13 00:30:02 +00:00
Maxime Coste
4916ea1766
Fix capture group handling
...
Fixes #1129
2017-01-13 00:17:31 +00:00
Maxime Coste
b157a481e1
Add 1118 regression test case
2017-01-11 22:13:05 +00:00
Maxime Coste
be48cffa22
Fix 1074 test case with recent indent change
2017-01-11 14:00:17 +00:00
Maxime Coste
343df600cb
Merge remote-tracking branch 'alexherbo2/command-names'
2017-01-10 13:44:11 +00:00
Maxime Coste
0fad62d6b1
Add regression test case for #1111
2017-01-06 19:55:50 +00:00
Alex Leferry 2
671b50bb52
update command names
2017-01-04 13:04:27 +01:00
Maxime Coste
c3e1bab9d6
Fix comment autoinsert for c-family as well.
...
Fixes #1074
2017-01-02 12:05:49 +00:00
Maxime Coste
d5231c713e
Fix corner case in C indentation
2017-01-02 04:15:12 +00:00
Maxime Coste
17660fe5bb
Add a regression test for #1051
2017-01-01 18:30:48 +00:00
Maxime Coste
cd89531bd9
Better handling of linewise inserting when we have multiple selections per line
...
Fixes #1053
2017-01-01 18:08:43 +00:00
Maxime Coste
a0c787e966
Fix more uses of echo in the test run script
2016-12-17 10:43:02 +00:00
Maxime Coste
f69495ea71
Use printf instead of echo for displaying modified lines
...
Avoid eventual interpretation of escapes in the line.
2016-12-17 10:36:00 +00:00
Maxime Coste
f200079069
Respect TMPDIR in test run script
2016-12-17 10:26:37 +00:00
Maxime Coste
2bdd361948
Escape the backslash chars as well when joining strings
...
Fixes #1014
2016-12-17 05:48:42 +00:00
Maxime Coste
01417471b9
Change the test session name to avoid hitting the unix socket path length limit
...
On travis-ci, it seems the combination of a set TMPDIR and long sessions names
makes the test framework hit the path lenght limit.
2016-12-16 19:49:39 +00:00
Maxime Coste
9ad1c19f69
Validate user text object desc more thorougly
...
Fixes #992
Fixes #993
Fixes #994
2016-12-15 09:29:38 +00:00
Maxime Coste
d8f00198f3
Improve C indentation support around namespace/struct closing bracket
2016-12-09 13:50:41 +00:00
Maxime Coste
da6d7f4530
Always consider end of selection is not and eol for keep
...
Fixes #921
2016-11-28 21:07:24 +00:00
Maxime Coste
90de54af2f
Rework c-family /* */ comments auto insertion of prefix star
...
Fixes #918
2016-11-14 21:11:20 +00:00
Maxime Coste
965cd8e0c3
Fix align support with aligntab = true
2016-10-28 09:50:25 +01:00
Maxime Coste
68d04af1a9
Remove sourcing of formatter.kak from the 872 regression test
2016-10-17 18:29:58 +01:00
Maxime Coste
cf5bcdf1bb
Merge remote-tracking branch 'lenormf/fix-formatcmd'
2016-10-17 18:28:57 +01:00
Maxime Coste
1431dcff46
Fix bug in c-family indentation logic after visibility labels
...
Fixes #872
2016-10-16 19:27:53 +01:00
Frank LENORMAND
617a5b72e2
Remove a script loaded in a test that's not required anymore
2016-10-15 13:36:19 +03:00
Maxime Coste
19f65f4c6e
Add the missing repeat-select test cases
2016-10-14 00:09:52 +01:00
Maxime Coste
5af29b0254
Fix python comment copy logic in python.kak
...
And introduce the first unit test that sources bundled support
scripts.
Fixes #860
2016-10-13 20:13:05 +01:00
Maxime Coste
9078039326
Fix select_to_previous_word with spaces at buffer start
...
Fixes #844
2016-10-05 23:42:36 +01:00
Maxime Coste
28cfd0bb61
Fix get_column function and add some unit tests for fullwidth text
2016-10-01 13:45:00 +01:00
Maxime Coste
35559b65dd
Support codepoints of variable width
...
Add a ColumnCount type and use it in place of CharCount whenever
more appropriate, take column size of codepoints into account for
vertical movements and docstring wrapping.
Fixes #811
2016-10-01 13:45:00 +01:00
Maxime Coste
696db111e2
Selecting 'around' word when on spaces after word now selects next word
2016-09-26 23:33:28 +01:00
Maxime Coste
fafde8655b
Fix select_to_reverse to correctly handle the first character of the buffer
...
Fixes #809
2016-09-19 09:20:55 +01:00
Maxime Coste
4fc20b8d7d
Rework client quitting and handling of remote errors
...
Client quitting no longer immediately unwinds, client is just pushed
for deletion until we get back to the main loop, similarly to what
happens for buffer and window deletion.
2016-09-04 17:56:07 +01:00
Maxime Coste
4d13e6fb88
Do not crash whenever S matches the whole selection and hence does not select anything
...
Fixes #787
2016-09-04 11:17:34 +01:00
Maxime Coste
623fcd88ea
Do not avoid end of lines after selecting modified ranges in undo
...
Fixes #751
2016-07-27 23:53:16 +01:00
Maxime Coste
35f1ad100e
Merge remote-tracking branch 'lenormf/select-arbitrary-punctuation'
2016-07-27 00:14:49 +01:00
Maxime Coste
13ed87410f
Rework compute_modified_ranges
...
Fixes #743
2016-07-26 23:31:23 +01:00
Frank LENORMAND
ad288be1a0
Add unit tests for an arbitrary slash-based selection
2016-07-26 10:42:33 +03:00
Maxime Coste
52d3b60aaa
Clamp selection generated in selection_list_from_string
...
Fixes #733
2016-07-13 19:25:32 +01:00
Maxime Coste
e288d84408
Add a regression test for #704
...
Fixes #704
2016-07-11 19:46:50 +01:00
Maxime Coste
532ae5a1a6
Do not go backward to when selecting to end of line from the end of line
...
Fixes #699
2016-06-22 19:56:40 +01:00
Maxime Coste
fef37e6a92
Do not preserve registers by default when exec/eval in a non draft context
...
Fixes #700
2016-06-20 19:40:49 +01:00
Maxime Coste
dd41a46c4c
Correctly set c++ locale on startup
...
Fixes #595
2016-05-10 22:06:02 +01:00
Maxime Coste
63ac752916
Improve test script
2016-05-10 13:51:00 +01:00
Maxime Coste
1160c51dc4
Improve test runscript to avoid false positives when an output is not generated
2016-05-10 13:43:19 +01:00
Maxime Coste
39762f0cf0
preserve diff leading whitespaces when displayin them in the test runner
2016-05-10 09:38:47 +01:00
Maxime Coste
abac6a9436
Use boost::wregex implementation and manually utf8 decode into it
...
That way we get proper unicode support in regular expressions as long
as the current locale treats wchar_t as unicode codepoints.
Fixes #638
Fixes #595
Fixes #162
2016-05-10 09:38:21 +01:00
Maxime Coste
25a31534ec
Fix splitting selecting the first buffer char when there is a match at buffer begin
2016-04-30 10:37:31 +01:00
Maxime Coste
d3bcf8c21e
Fix handling of expected to fail tests
2016-04-27 09:48:35 +01:00
Maxime Coste
8cae7097f4
Fix test runner use of sed -r
2016-04-27 09:47:49 +01:00
Maxime Coste
b0060ed79e
Fix modified range computation when erasing multiple times past current buffer end
...
Fixes #654
2016-04-13 21:21:00 +01:00
Maxime Coste
b1b6267137
Fix regions display test
2016-04-11 13:58:42 +01:00
Maxime Coste
736ba7dabf
Add a spaces to tabs test
2016-03-30 19:41:21 +01:00
Maxime Coste
5332378419
Fix spaces_to_tabs implementation accessing past end
...
Fixes #643
2016-03-30 19:27:36 +01:00
Maxime Coste
38f146d849
Fix another bug in Buffer::replace implementation
2016-03-17 12:38:09 +00:00
Maxime Coste
f8f530e6ac
Add a replace-line unit test
2016-03-17 12:07:38 +00:00
Maxime Coste
757bbe9e56
Add a reload test
2016-03-17 11:38:07 +00:00
Maxime Coste
544ec7e385
Update test run script, was not writing test name in some cases
2016-03-17 11:37:35 +00:00
Maxime Coste
de1433d30a
Avoid the spurious newline insertion when replacing at end of buffer
...
Add a Buffer::replace method to handle the replacements properly
Fixes #633
2016-03-16 13:48:11 +00:00
Maxime Coste
79782fb903
Do not use echo -n in test runner, -n is not standard
2016-03-08 23:55:15 +00:00
Maxime Coste
ead6865350
Add an initial highlighting test
2016-03-08 13:42:27 +00:00
Maxime Coste
114f9c876d
Detect if the debug buffer exists before displaying it in test runner
2016-03-08 00:25:14 +00:00
Maxime Coste
4d4f18a78a
Select ui at launch through the -ui <ui_name> switch
2016-03-07 21:44:50 +00:00
Maxime Coste
f16bb36f41
Add a regression test for #612
2016-03-03 13:57:46 +00:00
Maxime Coste
24d4ee870f
Fix test runner to consider Kakoune returning non 0 as a failure
2016-03-03 13:57:46 +00:00
O. Perret
b2a54b8416
Add reverse search unit tests
2015-12-27 16:24:37 +01:00
Frank LENORMAND
eba673e7f5
Add two unit tests for invalid syntaxes in the command
2015-12-15 11:13:26 +03:00
Frank LENORMAND
bc3d04f111
Fix populating the stderr file, strip the coordinates of the error from it
2015-12-15 11:13:04 +03:00
Frank LENORMAND
6129f1b049
Adapt the changes to a smarter way of testing kak for failures
2015-12-14 15:35:23 +03:00
Frank LENORMAND
d63238ed9d
Allow unit tests to test for errors.
2015-12-12 12:06:16 +03:00
Enrico Lumetti
62f73b6a7c
Display unit tests in alphabetical order
2015-12-07 16:40:18 +01:00
Maxime Coste
20bd4173e2
Support auto disabling of unit tests with an optional enabled script
...
Restore the unicode test case using that.
2015-11-16 21:17:23 +00:00
Maxime Coste
c3a4fc9405
Revert "Add an unicode to upper case test", needs an utf8 locale
...
This reverts commit 6aa892ef49
.
2015-11-16 13:56:12 +00:00
Maxime Coste
6aa892ef49
Add an unicode to upper case test
2015-11-15 13:32:48 +00:00
Maxime Coste
832e9155fa
Code cleanup in the test running script
2015-10-17 11:33:09 +01:00
Maxime Coste
e0049bb587
Fix backward search searching from on char before the corret one.
...
Fixes #406
2015-09-14 14:28:45 +01:00
Maxime Coste
ec88e394b0
Fix tests after macros/marks syntax change
2015-08-20 19:15:44 +01:00
Maxime Coste
4d39657b9a
Add unit tests for <a-x> and <a-X>
2015-08-11 13:28:50 +01:00
Maxime Coste
c61c89fac9
Add a save selections test case
2015-07-11 11:39:41 +01:00
Maxime Coste
28ebe776c0
Refactor select_arguments and slightly change behaviour for non-inner
...
non inner argument contains the argument, preceeding whitespaces,
and eventual ending comma, except for first arguments (that
contains the whitespaces after the comma), and last argument (that
contains the comma before it).
2015-07-01 23:47:22 +01:00
Viktor Palmkvist
e21ea23c24
Added tests for argument text object
2015-07-01 17:42:10 +02:00
Maxime Coste
8795a56731
Merge overlapping selections before erasing
...
Overlapping selections on erase confuse the ForwardChangeTracker
and will confuse the user,
Fixes #298
2015-06-28 10:16:39 +01:00
Maxime Coste
373ad05f29
Fix test with new selection desc format
2015-06-27 16:14:15 +01:00
Maxime Coste
1261d45646
Properly test rotate
2015-06-23 20:58:44 +01:00
Maxime Coste
70dfb4ba6b
Fix test handling of ' and rotate-content test
2015-06-21 19:36:53 +01:00
Maxime Coste
cf8695cb84
Fix unit tests after gl/gh behaviour change
2015-06-08 22:32:15 +01:00
Maxime Coste
8afa71d965
Fix test script return value check to be more POSIX compliant
2015-05-26 19:30:02 +01:00
Maxime Coste
dfd6182bbb
Test suite shows something when kakoune exit code is not 0
2015-05-20 20:09:00 +01:00
Maxime Coste
63bbb6e3df
Fix test with change in the selection desc format
2015-04-14 15:53:12 +01: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
0ae628fde7
Add a $ command unit test
2015-03-13 13:50:08 +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
56dd5f9540
Fix selecting of insert text in SelectionList::insert
2015-02-09 21:09:17 +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
5b117ae00f
Another try to fix pipe-to test on OSX
2015-01-12 20:41:55 +00:00
Maxime Coste
78eb2a46d4
Try an alternative pipe-to method to fix OSX test
2015-01-12 20:31:45 +00:00
Maxime Coste
dbd7bd41bb
Try to improve test run script with osx
2014-12-15 13:42:48 +00:00
Maxime Coste
c538778b7e
Remove trailing eol
2014-12-15 13:24:21 +00:00
Maxime Coste
1cdba68bcf
Try to fix OSX pipe-to test
2014-12-13 18:30:56 +00:00
Maxime Coste
f22c95439f
Return the number of failed tests so that failure gets propagated
2014-12-13 13:11:38 +00:00
Maxime Coste
a834f1aa75
Fix pipe-insert test
2014-12-12 13:59:10 +00:00
Maxime Coste
c148966ebb
Tweak test run script
2014-12-11 13:43:10 +00:00