mirror of
https://github.com/neovim/neovim.git
synced 2024-12-31 17:13:26 -07:00
vim-patch:7.4.1620
Problem: Emoji characters are not considered as a kind of word character.
Solution: Give emoji characters a word class number. (Yashuhiro Matsumoto)
4077b33a83
This commit is contained in:
parent
49735d6fae
commit
45598d2e5e
@ -12,7 +12,7 @@
|
|||||||
-- 2 then interval applies only to first, third, fifth, … character in range.
|
-- 2 then interval applies only to first, third, fifth, … character in range.
|
||||||
-- Fourth value is number that should be added to the codepoint to yield
|
-- Fourth value is number that should be added to the codepoint to yield
|
||||||
-- folded/lower/upper codepoint.
|
-- folded/lower/upper codepoint.
|
||||||
-- 4. emoji table: sorted list of non-overlapping closed intervals of Emoji
|
-- 4. emoji_tab table: sorted list of non-overlapping closed intervals of Emoji
|
||||||
-- characters
|
-- characters
|
||||||
if arg[1] == '--help' then
|
if arg[1] == '--help' then
|
||||||
print('Usage:')
|
print('Usage:')
|
||||||
@ -221,7 +221,7 @@ local build_width_table = function(ut_fp, dataprops, widthprops, widths,
|
|||||||
end
|
end
|
||||||
|
|
||||||
local build_emoji_table = function(ut_fp, emojiprops)
|
local build_emoji_table = function(ut_fp, emojiprops)
|
||||||
ut_fp:write('static const struct interval emoji[] = {\n')
|
ut_fp:write('static const struct interval emoji_tab[] = {\n')
|
||||||
for _, p in ipairs(emojiprops) do
|
for _, p in ipairs(emojiprops) do
|
||||||
if p[2]:match('Emoji%s+#') then
|
if p[2]:match('Emoji%s+#') then
|
||||||
local start, end_ = p[1]:find('%.%.')
|
local start, end_ = p[1]:find('%.%.')
|
||||||
|
@ -949,7 +949,7 @@ int utf_char2cells(int c)
|
|||||||
if (intable(doublewidth, ARRAY_SIZE(doublewidth), c))
|
if (intable(doublewidth, ARRAY_SIZE(doublewidth), c))
|
||||||
return 2;
|
return 2;
|
||||||
#endif
|
#endif
|
||||||
if (p_emoji && intable(emoji, ARRAY_SIZE(emoji), c)) {
|
if (p_emoji && intable(emoji_tab, ARRAY_SIZE(emoji_tab), c)) {
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1715,6 +1715,11 @@ int utf_class(int c)
|
|||||||
return (int)classes[mid].class;
|
return (int)classes[mid].class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// emoji
|
||||||
|
if (intable(emoji_tab, ARRAY_SIZE(emoji_tab), c)) {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
/* most other characters are "word" characters */
|
/* most other characters are "word" characters */
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
@ -823,7 +823,7 @@ static int included_patches[] = {
|
|||||||
// 1623 NA
|
// 1623 NA
|
||||||
// 1622 NA
|
// 1622 NA
|
||||||
// 1621 NA
|
// 1621 NA
|
||||||
// 1620,
|
1620,
|
||||||
// 1619,
|
// 1619,
|
||||||
// 1618 NA
|
// 1618 NA
|
||||||
// 1617 NA
|
// 1617 NA
|
||||||
|
Loading…
Reference in New Issue
Block a user