Tim Allen
50e422659b
Add support for the shift modifier.
...
Because keyboard layouts vary, the shift-modifier `<s-…>` is only supported
for special keys (like `<up>` and `<home>`) and for ASCII lowercase where
we assume the shift-modifier just produces the matching uppercase character.
Even that's not universally true, since in Turkish `i` and `I` are not an
uppercase/lowercase pair, but Kakoune's default keyboard mappings already
assume en-US mappings for mnemonic purposes.
Mappings of the form `<s-x>` are normalized to `<X>` when `x` is an ASCII
character. `<backtab>` is removed, since we can now say `<s-tab>`.
2018-04-11 15:15:45 +10:00
Delapouite
cb02186c77
Make error messages more consistent
2018-04-06 16:56:53 +02:00
Maxime Coste
6ada6e6d77
Move all non-core string code to string_utils.{hh,cc}
2017-10-10 10:52:32 +08:00
Maxime Coste
ab6a999431
Rename containers.hh to ranges.hh (and Container to Range)
2017-08-29 15:23:03 +07:00
Maxime Coste
5bf401948a
Cleanup some code with C++14 features
2017-07-19 08:47:14 +02:00
Maxime Coste
80dd9ec4cb
Name key '+' as plus and '-' as minus
2017-04-11 10:47:15 +01:00
Maxime Coste
413d8b7ddd
Change multi modifier key syntax to be <c-a-space> instead of <ca-space>
...
Better fix for #1311
2017-04-11 10:44:14 +01:00
Maxime Coste
a4b82131e5
Add support for parsing multiple modifiers in keys
...
<ca-key> means control+alt key, <ac-key> works as well.
Fixes #1311
2017-04-10 21:19:56 +01:00
Maxime Coste
dcd8f6ef01
Apply clang-tidy modernize to the codebase
2017-01-08 22:39:01 +00:00
Maxime Coste
85a534fb8a
Support inserting esc characters through <c-v>
...
As requested in #960
2016-12-14 00:34:53 +00:00
Maxime Coste
e8dcdb6072
Support Ctrl + mouse dragging to add a new selection
...
Fixes #838
2016-10-13 22:59:02 +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
439f168928
Use named keys for Return and Tab instead of <c-m> and <c-i>
...
Fixes #722
2016-07-05 20:08:13 +01:00
Maxime Coste
e262dc1257
Support Resize modifiers in key_to_str
...
As seen in #715 , that was not supported correctly
2016-06-30 23:49:21 +01:00
Maxime Coste
abd5afe012
Support mosue event in key_to_str
2016-03-23 13:39:52 +00:00
Maxime Coste
94cbd5a837
More string usage cleanup
2016-02-05 09:13:07 +00:00
Maxime Coste
892c3647e4
Fix to_lower/to_upper handling to correctly support non unicode chars
...
require a proper unicode locale setup on the system
Fixes #94
2015-11-11 00:21:20 +00:00
Maxime Coste
27571a7716
Refactor utf8::iterator to be on the safe side
...
utf8::iterator now knows the iterator valid range, and pass
it to utf8 functions.
2015-09-23 19:39:21 +01:00
Maxime Coste
f2580a366d
Cleanup key to codepoint conversion
...
Fixes #378
Fixes #365
2015-08-18 00:19:14 +01:00
Maxime Coste
dd25dcc361
Move unit test functions in next to the code they are testing
2015-05-22 13:58:56 +01:00
Maxime Coste
56b5300b9d
Handle mouse events in key_to_str
2015-03-28 18:18:52 +00:00
Maxime Coste
727580a238
Make utf8_iterator a proper stl useable iterator
2015-03-27 13:19:30 +00:00
Maxime Coste
3c1a325b6f
Refactor String, use a common StringOps interface, hide std::string
2015-03-10 19:50:22 +00:00
Maxime Coste
d4a929b42e
Use a struct KeyAndName rather than a std::pair
2014-12-29 17:18:42 +00:00
Maxime Coste
064fb81b8d
Move containers utils to containers.hh and add filtered/transformed utils
2014-12-23 13:40:26 +00:00
Maxime Coste
87d312b6d4
More string cleanups
2014-12-08 13:59:29 +00:00
Maxime Coste
40d649f836
refactor parse_keys
2014-11-09 13:02:01 +00:00
Maxime Coste
766df0490c
small code simplification
2014-11-09 11:42:06 +00:00
Maxime Coste
ed68d1ff28
utf8: use end of sequence iterators for more security
2014-07-05 12:10:06 +01:00
Maxime Coste
5b27b956ad
Rename utf8::utf8_iterator to utf8::iterator
2014-06-24 19:10:57 +01:00
Maxime Coste
1533a28394
Properly handle unicode in key parsing
...
Fixes #139
2014-06-05 19:42:27 +01:00
Maxime Coste
811f1c2d76
Rename Key::Erase to Key::Delete and add 'del' keyname
...
Fixes #145
Fixes #146
2014-05-25 17:41:28 +01:00
Maxime Coste
055eacd032
use StringView for parse_keys
2014-04-20 11:27:59 +01:00
Jimmy Thrasher
d2e9486f2d
Fix some more constexpr issues for clang
2014-04-03 13:56:03 -04:00
Maxime Coste
2cdf578834
Store key names in a constexpr array
2014-03-20 19:52:11 +00:00
Maxime Coste
4b518ee6b9
Add support for function keys F1-F12
2013-11-09 11:12:55 +00:00
Maxime Coste
a4138201b0
Key: always pass by value
2013-07-26 01:50:36 +02:00
Maxime Coste
270e950cf1
sort includes directives
2013-04-09 20:05:40 +02:00
Maxime Coste
5adee4a6a7
rename assert to kak_assert to avoid collisions
2013-04-09 20:04:11 +02:00
Maxime Coste
0550da2211
add <lt> and <gt> key name
2013-04-02 18:41:45 +02:00
Maxime Coste
a453ddaf37
Add support for Home/End key in prompts
2013-02-19 13:50:27 +01:00
Maxime Coste
b43fdc7eb6
Add macro recording/replay support
2013-02-18 18:58:07 +01:00
Maxime Coste
de0f765498
Keys: add key_to_str function
2013-01-30 19:03:11 +01:00
Maxime Coste
0ce6bd9bf5
use ByteCount instead of CharCount when we are really counting bytes
...
(that is most of the time when we are not concerned with displaying)
2012-10-11 00:41:48 +02:00
Maxime Coste
7a8366da2b
add a unicode.hh header for Codepoint related functions, s/utf8::Codepoint/Codepoint/
2012-10-09 19:15:05 +02:00
Maxime Coste
c7272e427d
get rid of Character
2012-10-08 19:33:53 +02:00
Maxime Coste
45bffd8b8a
fix parse_keys for <esc>
2012-09-17 13:46:34 +02:00
Maxime Coste
d5f5f0989d
fix control key parsing
2012-09-03 19:21:11 +02:00
Maxime Coste
e4fd839dda
use a strongly typed int CharCount for character counts
2012-08-23 23:56:35 +02:00
Maxime Coste
45b9ac6087
fix parse_keys for <a-key>
2012-08-21 20:03:18 +02:00