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
Maxime Coste
16908bf091
Fix hooks triggering on unset-option even if parent has same value
2018-11-28 21:45:40 +11:00
Maxime Coste
c6d6060502
Add a test case for dropping full whitespace selections on trim
2018-11-27 21:05:35 +11:00
Maxime Coste
1553d91d27
Make '_' the default extra_word_chars, and remove built-in support
...
Fixes #2599
2018-11-27 18:16:21 +11:00
Maxime Coste
31d3cef093
Merge remote-tracking branch 'lenormf/rename-auto_complete'
2018-11-25 23:01:02 +11:00
Maxime Coste
b9ca3ee6dc
Fix column highlighter adding display atoms past the window width
2018-11-14 17:47:11 +11:00
Delapouite
c08ec08513
test: add end-extending-parent/braces for }B}B - Ref #2479
2018-10-27 13:49:45 -04:00
Maxime Coste
a383ce3045
Fix LineRangeSet::udpate not updating some traling ranges correctly
...
Fixes #2499
2018-10-21 11:49:30 +11: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
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
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
Olivier Perret
93f913705a
Misc fixes
2018-09-24 09:54:21 +02:00
Maxime Coste
cb8b882878
Fix broken test after change in cursor faces
2018-09-24 08:15:12 +10: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
c8fd1e1cf6
Merge remote-tracking branch 'laelath/c-indent-edits'
2018-09-13 20:42:04 +10:00
Justin Frank
de839d14c4
added test for deindentation
2018-09-12 12:25:36 -07: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
Maxime Coste
bd34d007d7
Fix tests with new shell escaping syntax
2018-08-29 12:36:40 +10: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
Maxime Coste
293610a432
Add a test case for -once hooks and code style tweaks
2018-08-16 21:09:51 +10:00
Frank LENORMAND
0b8899d1d4
src: Rename auto_complete
to autocomplete
...
Removing the underscore seems to make the option name more
in line with the others (even though some do use a separator,
e.g. `disabled_hooks`).
2018-07-19 18:57:33 +03:00
Maxime Coste
d23ac09fc1
Add support for <a-;> in prompt mode
...
Fixes #2096
Closes #2060
2018-07-15 11:17:16 +10:00
Maxime Coste
bde726d034
Change autoshowcompl to auto_complete with insert|prompt possible values
2018-07-15 11:10:32 +10:00
Maxime Coste
79ec8d0010
Rename highlighters that used an underscore to use a dash
...
For example `show_matching` is now `show-matching`.
2018-07-08 19:14:15 +10:00
Maxime Coste
f0b3925ba7
Merge remote-tracking branch 'maximbaz/improve-comment-line'
2018-07-07 09:39:46 +10:00
Maxime Coste
63d4c8c311
Change a
on end of line behaviour to be consistent
...
`a` will just jump on next line, `a` on last end of line opens a new
line beneath it.
Fixes #1164
2018-07-05 08:00:14 +10:00
Maxime Coste
2e0e206951
Make recurse regex opt-in with a -recurse switch instead of opt-out
2018-07-05 07:54:28 +10:00
Maxime Coste
63d7984b89
Fix bug in recursive region highlighting
2018-07-05 07:54:28 +10:00
Maxime Coste
f61bcef469
Fix tests and required scripts to get back to green make test
2018-07-05 07:54:28 +10:00
Maxime Coste
124a5d4905
Tolerate restoring invalid coordinates from register
...
Clamp those selection after updating them to the current timestamp
Fixes #2078
2018-07-05 07:54:28 +10:00
Maxime Coste
183f32803b
Fix selection save/restore from registers post selection list syntax change
2018-07-05 07:54:28 +10:00
Maxime Coste
9387abed81
tests: Update selections files to match the new selection list syntax
2018-07-05 07:54:28 +10:00
Maxime Coste
55f857dd2b
Fix extra-word-chars test post list option refactoring
2018-07-05 07:54:28 +10:00
Maxime Coste
b5dd9f4094
test/run: Fix script post hook behaviour change
2018-07-05 07:54:28 +10:00
Maxim Baz
ba547ea4dd
Make tests a bit more interesting
2018-07-03 22:32:04 +02:00
Maxim Baz
8a1b557b5f
Add test to ensure whitespaces are preserved after uncomment
2018-06-29 00:10:21 +02:00
Maxim Baz
5d689858df
Improve comment-line command
2018-06-28 23:47:48 +02:00
Maxime Coste
43b72770ec
Fix wrong logic for moving filedescriptors leading to closed stdin
...
With this fix, tests can now use /dev/null as stdin.
Fixes #2165
2018-06-28 22:56:50 +10:00
dahlbaek
28637cec9e
Use egrep instead of grep for ERE
...
Some implementations of grep do not support extended regular
expressions (ERE). Using egrep instead seems to be more portable.
2018-06-22 20:35:36 +02:00
Maxime Coste
667777521b
Refactor the way main selection is determined after rotating contents
...
Fixes #2133
2018-06-21 08:07:17 +10:00
Maxime Coste
6dca67c674
Fix two <s-tab> requiered to access last completion in prompt
...
A single <s-tab> should be enough.
2018-06-19 07:40:52 +10:00
Maxime Coste
9b89652b0b
Fix potential assert on itersel selection restoration
...
We cannot guarantee after an itersel that selections are going to
still be in ascending order, but we were calling a SelectionList
constructor that was assuming this was the case.
2018-05-24 08:08:51 +10:00
Maxime Coste
878d2a4bdb
Add regression test for crash on BufSetOption hook
2018-05-21 20:36:25 +10:00
Maxime Coste
8c6af54db3
c-family.kak: Fix comment line continuation behaviour
...
Fixes #2043
2018-05-19 14:15:16 +10:00
Maxime Coste
c9a8658671
Fix assert with window small enough so that no part of buffer is displayed
...
Fixes #2056
2018-05-19 14:15:16 +10:00
Maxime Coste
a64afd7f1a
test/run: Support a "ui-in" file containing json-rpc messages
...
With this "ui-in", tests can execute json-rpc commands from the UI
at startup to set a specific UI state.
2018-05-19 14:15:16 +10:00
Maxime Coste
851494a374
test/run: Rename "display" expected ui output file as "ui-out"
2018-05-19 14:15:16 +10:00
Maxime Coste
148d6c205b
Fix wrong behaviour in select surrounding
...
Fixes #2030
2018-05-07 22:17:57 +10:00
Maxime Coste
e4f90e5ed2
Fix tests after changes to json_ui output
2018-04-29 23:06:24 +10:00
Delapouite
746b9acb96
Change client default name: "unnamed0" → "client0"
2018-04-23 11:42:11 +02:00
Maxime Coste
567c82840a
ruby.kak: Refactor end autoinsertion logic to be more robust
...
Fixes the bug described by PR #1994
2018-04-14 12:47:42 +10:00
Nate Clark
27604359d4
Add test for buggy ruby method newline
...
Currently, inserting a newline after a ruby method will incorrectly
cause the following line to repeat the method header. This commit
adds a test case to illustrate the bug.
2018-04-10 18:30:12 -05:00
Maxime Coste
1f6c2b87ff
Support count in <a-s> to split on groups of n lines
...
Fixes #1966
2018-03-27 22:33:58 +11:00
Maxime Coste
3d3a37a80c
Fix 'O' not putting the cursor on the correct line
2018-03-27 07:28:25 +11:00
Maxime Coste
ec7f3738ee
Move rotate selection and rotate selection contents to ) and <a-)>
...
Backward rotation are supported with (.
Fixes #1210
2018-03-25 11:39:26 +11:00
Maxime Coste
59e9108812
indent selector: When line is empty, find indent from surrounding lines
...
Look for the first non empty line preceeding the current line, or
if not found, the first non empty line following it.
Fixes #1904
2018-03-25 10:25:56 +11:00
Maxime Coste
ac91a79b12
Fix implementation of real_path to handle non-existing directories in /
...
Fixes #1937
2018-03-18 23:23:00 +11:00
Maxime Coste
7ba4ef897b
Fix crash on expanding command line strings
2018-03-18 04:58:15 +11:00
Maxime Coste
e66073bc94
Detect infinit recursion in reference highlighting
...
Reference highlighters allow for potential mutual recursion between
highlighters. This is usually fine, but if the recursion happens on
the same buffer range, it means we will recurse infinitely.
Fixes #1920
2018-03-11 11:44:10 +11:00
Maxime Coste
4584ecac77
Move WORD text object to <a-w>
...
It improves consistency and it looked like there was support for that
change on github.
Fixes #1861
2018-03-10 00:25:19 +11:00
Maxime Coste
31a5649c65
Add a regression test for issue #1902
2018-03-05 05:48:20 +11:00
Maxime Coste
65258934d3
lua.kak: Rework 'end' auto insertion logic
...
Fixes #1525
2018-03-04 10:36:32 +11:00
Maxime Coste
2fd42fe5fc
Insert: Do not move end of line on open line (o/O)
...
Change the logic of open line commands so that if a selection lies
on the end of line character of the line from which we open a new
line, that selection does not move.
If we have two clients, A and B, with B's cursor on the eol character
of line L, and A hits `o` while on line L, B's cursor should stay
on the same (logical) line. Previous behaviour would make B's cursor
jump on the newly inserted line.
2018-03-04 10:32:21 +11:00
Maxime Coste
850f561096
Merge remote-tracking branch 'alyssais/1525-test_case'
2018-03-04 01:44:08 +11:00
Alyssa Ross
79af68843e
Add Ruby indentation test
...
See https://github.com/mawww/kakoune/issues/1525#issuecomment-324571751 .
2018-03-02 13:13:19 +00:00
Delapouite
c4eb4438d2
Remove <scope> from user-modes commands
2018-03-02 09:28:27 +01:00
Delapouite
a6a1c34288
Add -lock switch to enter-user-mode command
2018-02-27 19:55:00 +01:00
Maxime Coste
67424aae1e
Remove avoidance of end of lines
...
Various places in Kakoune code used to modify selections so that
cursors would not lie on an end of line. Remove those to increase
Kakoune's consistency and simplicity.
Now that end of lines are highlighted separately, they should not
be handled specially in most commands.
2018-02-25 00:05:05 +11:00
Maxime Coste
6a6e71dc0f
Highlight cursors differently when they lie on an end of line
...
When on an end of line, certain behaviours can be surprising, for
example delete will join the following line (which makes sense, and
is consistent, but hard to predict if we do not know the cursor is
on and end of line).
As Kakoune is moving more and more towards treating end of lines
as any other character, making it clear when the cursor lies on
them seems like a good way to reduce surprise.
2018-02-24 21:32:01 +11:00
Maxime Coste
a0de41d165
goto last change: do not try to avoid end of lines
...
Avoiding end of line is a behaviour we avoid (pun intended) more and more
in Kakoune source code, now that end of lines are regularly selected, it
makes no sense to just to next line when last modification lies on an EOL
(and it probably did not make much sense back when that code was written).
2018-02-24 21:09:09 +11:00
Maxime Coste
cda1fdafe2
test: fix run script after changes jump list behaviour
...
source the rc file *after* selecting the target text to ensure
eventual hooks will not interfere.
2018-02-24 20:59:31 +11:00
Maxime Coste
99d1fee44c
Merge remote-tracking branch 'Delapouite/trim'
2018-02-22 22:06:27 +11:00
Maxime Coste
f88195d2d9
Merge remote-tracking branch 'Delapouite/user-mode'
2018-02-18 20:20:35 +11:00
Delapouite
fccfc76e89
Add trim_selections primitive
2018-02-13 14:35:10 +01:00
Delapouite
6b447a0ecb
Add declare-user-mode / enter-user-mode commands
2018-02-12 14:19:58 +01:00
Maxime Coste
fbe68f375e
test: fix run script use of non standard \+
in sed regex
2018-02-07 19:38:13 +11:00
Maxime Coste
e2c1d44a7f
Fix parsing of percent tokens with unicode separators
2018-02-06 20:29:08 +11:00
Maxime Coste
05f57ace07
CommandManager: parse command lines as utf8 instead of ascii
...
Fixes #1829
2018-02-04 09:21:15 +11:00
Maxime Coste
9bf1f202d5
Add unit tests for copy selections commands
2018-01-24 10:45:12 +11:00
Maxime Coste
cafecda230
Window: avoid positionning window on a negative column
...
Fixes #1741
2017-12-15 08:17:35 +11:00
Maxime Coste
1a38849086
c-family.kak: indent after parenthesis at end of line
2017-12-03 17:47:44 +08:00
Maxime Coste
c8f5935c48
test/: Add more tests for object selection corner cases
2017-12-03 17:12:33 +08:00
Maxime Coste
1371148588
test: fix support for '(' in initial selected text
2017-12-03 17:12:33 +08:00
Maxime Coste
380ff553b5
Wrap: try to rework and simplify the algorithms further
...
Fixes #1731
2017-11-28 19:04:21 +08:00
Delapouite
a071e5b226
Add count support to jumps (<c-o> and <c-i>). Add jumps tests
2017-11-13 08:38:43 +01:00
Maxime Coste
fc88046c9c
Add test case for replaying insert with normal mode commands
2017-11-08 14:49:19 +08:00
Maxime Coste
0942cd5084
InputHandler: handle of last insert keys happening in nested modes
...
Move recording of keys to the input handler itself instead of the
Insert mode so that eventual nested modes (potentially introduced
by <a-;> will get their keys recorded as well).
Fixes #1680
2017-11-08 14:39:52 +08:00
Maxime Coste
04993de687
Fix pipe logic in the case where the selections were accessed in the cmdline
...
When using an env var that needed the selections in the pipe command line,
say $kak_selection, the selection update code would run, modifying the
selections to adapt to eventual changes. But the rest of the pipe logic
was assuming the selections would not change, leading to bugs.
2017-11-08 00:02:49 +08:00
Maxime Coste
2b993b7c4b
Add an indent test for html closing tag
2017-11-04 12:45:27 +08:00
Maxime Coste
d49555fc75
Move highlighters into Scopes
...
That means we can now have highlighters active at global, buffer, and
window scope. The add-highlighter and remove-highlighter syntax changed
to take the parent path (scope/group/...) as a mandatory argument,
superseeding the previous -group switch.
2017-10-28 13:43:04 +08:00
Maxime Coste
78530b82be
Add an indentation test for braces after if
2017-10-25 10:27:39 +08:00
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
Maxime Coste
ea063fd2ef
Fix use of mktemp in test script
2014-12-10 19:33:09 +00:00
Maxime Coste
fd84ad5adf
Use mktemp -d rather than --directory to fix the test script on osx
2014-12-09 21:07:27 +00:00
Maxime Coste
45d1ec36d1
Rename tests to avoid upper/lower case collisions
2014-11-26 13:56:00 +00:00
Maxime Coste
88def85d77
Do not merge overlapping selections in InputMode::Replace
...
Fixes #237
2014-11-22 21:20:29 +00:00
Maxime Coste
ab640f9fbf
Tweak the way we set initial text in testing framework
2014-11-22 21:20:29 +00:00
Maxime Coste
95d36b95db
Do not rely on kak being in path in test run script
2014-11-21 13:57:28 +00:00