| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |\
| |
| |
| |
| |
| | |
squeek502/zg:bench-windows-and-fmt into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/9
|
| | | |
|
| |\ \
| |/
|/|
| |
| |
| | |
from squeek502/zg:folddata-min into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/10
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only a few codepoints have a mapping in CaseFolding.txt but do not have the Changes_When_Casefolded property set. So, FoldData can just store a list of those particular codepoints and then re-use the encoded CaseFolding.txt data alongside it in order to implement changesWhenCaseFolded.
This reduces the size of fold.bin.z from 4,387 bytes (4.28KiB) to 1,165 bytes (1.13KiB).
This also seemingly introduced a very slight performance regression in zg_caseless.
Before:
zg CaseFold.compatCaselessMatch: result: 626, took: 258ns
zg CaseFold.canonCaselessMatch: result: 626, took: 129ns
After:
zg CaseFold.compatCaselessMatch: result: 626, took: 263ns
zg CaseFold.canonCaselessMatch: result: 626, took: 131ns
|
| | |
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| | |
explicit error sets' (#7) from squeek502/zg:normalize-utf8encode-error into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/7
|
| |/
|
|
| |
These utf8Encode calls are converting normalized codepoints back into UTF-8, so the codepoints can be assumed to be valid.
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| | |
from rockorager/zg:master into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/6
|
| | |\
| |/
|/| |
|
| | | |
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | |
| | | |
rockorager/zg:master into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/5
|
| | | | |
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the last codepoint in a byte slice is incomplete (IE has a length of
3 but there are only 2 bytes remaining), the iterator will panic.
Instead of panicking, prefer to return a replacement character. This
strategy is similar to that in the block just above which returns a
replacement character if the first byte is not valid. In this latter
block, we also consume only one byte and allow the iterator to continue.
This allows for sections of text which may have a single byte incorrect
near the end of the slice.
|
| |/
|
|
|
|
| |
Use b.path everywhere in build.zig to make library compatible with zig
0.13.0. Also in 0.13.0, zig-cache was moved to .zig-cache. Update
.gitignore accordingly.
|
| | |
|
| |\
| |
| |
| |
| |
| | |
found' (#3) from rockorager/zg:vs-16 into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/3
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Explicitly set the width of an emoji to two when the next codepoint is a
VS16 selector. Add unit test for this case.
This is essentially the same PR as
https://codeberg.org/dude_the_builder/ziglyph/pulls/11
|
| |\ \
| |/
|/|
| |
| |
| | |
rockorager/zg:gb-state into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/2
|
| |/
|
|
|
|
| |
The public function `graphemeBreak` requires a reference to a State
struct, however this type is not exported. Export the type to allow
users of zg to use this type and call graphemeBreak.
|
| | |
|
| |
|
|
| |
issues.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|