| Age | Commit message (Collapse) | Author |
|
On a musl system with clang 18.1.8 linking against libc++, 64ed046e breaks
the build with
src/unicode.hh:105:24: error: use of undeclared identifier 'wcwidth'
105 | const auto width = wcwidth((wchar_t)c);
though this doesn't happen on the same system with gcc 14.2.0 linking
against libstdc++.
Include <cwchar> again so wcwidth() is properly defined.
|
|
|
|
Move more code into the implementation files to reduce the amount
of code pulled by headers.
|
|
Avoid the costly shared object function call when most codepoints
will be ascii.
The regex benchmark gets a nice speedup:
Regex Before After
--------------------------------------+----------+---------
'Twain' | 25 ms | 15 ms
'(?i)Twain' | 74 ms | 57 ms
'[a-z]shing' | 323 ms | 303 ms
'Huck[a-zA-Z]+|Saw[a-zA-Z]+' | 26 ms | 17 ms
'\b\w+nn\b' | 424 ms | 393 ms
'[a-q][^u-z]{13}x' | 869 ms | 815 ms
'Tom|Sawyer|Huckleberry|Finn' | 33 ms | 24 ms
'(?i)Tom|Sawyer|Huckleberry|Finn' | 319 ms | 281 ms
'.{0,2}(Tom|Sawyer|Huckleberry|Finn)' | 1294 ms | 1293 ms
'.{2,4}(Tom|Sawyer|Huckleberry|Finn)' | 1470 ms | 1429 ms
'Tom.{10,25}river|river.{10,25}Tom' | 69 ms | 61 ms
'[a-zA-Z]+ing' | 447 ms | 408 ms
'\s[a-zA-Z]{0,12}ing\s' | 539 ms | 543 ms
'([A-Za-z]awyer|[A-Za-z]inn)\s' | 588 ms | 552 ms
'["'][^"']{0,30}[?!\.]["']' | 92 ms | 81 ms
|
|
iswalnum can be pretty expensive as its a shared library call.
|
|
Changes the behaviour of the \s and \h character classes to include
all WhiteSpace and LineTerminator characters defined in the ECMA
specification.
- <https://262.ecma-international.org/11.0/#sec-white-space>
- <https://262.ecma-international.org/11.0/#sec-line-terminators>
- <https://262.ecma-international.org/11.0/#sec-characterclassescape>
Fixes #4034
|
|
|
|
Fixes #2599
|
|
Session/Client/User modes names are now requiered to be "identifiers"
they must be in [a-zA-Z0-9_-]. Option names are the same except they
do not allow '-' as they need to be made available through the env vars
and '-' is not supported there.
Fixes #1946
|
|
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
|
|
|
|
|
|
This fix a bug when opening a file where a line has a lot of unprintable
chars (like a binary file) which was confusing Kakoune into considering
that the line length in column was negative.
|
|
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
|
|
|
|
|
|
|
|
|
|
Fixes #842
|
|
|
|
|
|
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
|
|
Unfortunately, cygwin does not support c++ locales.
|
|
|
|
|
|
|
|
require a proper unicode locale setup on the system
Fixes #94
|
|
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).
|
|
|
|
|
|
Previously we used the is... rather than isw...
These functions were not supporting non ascii characters correctly
|
|
|
|
|
|
|
|
|
|
|
|
s/utf8::Codepoint/Codepoint/
|