FTXUI 6.1.9
C++ functional terminal UI.
Loading...
Searching...
No Matches
string_internal.hpp
Go to the documentation of this file.
1// Copyright 2023 Arthur Sonzogni. 版權所有。
2// 本原始碼的使用受 MIT 授權條款約束,詳情請參閱
3// LICENSE 檔案。
4#ifndef FTXUI_SCREEN_STRING_INTERNAL_HPP
5#define FTXUI_SCREEN_STRING_INTERNAL_HPP
6
7#include <cstdint>
8#include <string>
9#include <vector>
10
11namespace ftxui {
12
13bool EatCodePoint(const std::string& input,
14 size_t start,
15 size_t* end,
16 uint32_t* ucs);
17bool EatCodePoint(const std::wstring& input,
18 size_t start,
19 size_t* end,
20 uint32_t* ucs);
21
22bool IsCombining(uint32_t ucs);
23bool IsFullWidth(uint32_t ucs);
24bool IsControl(uint32_t ucs);
25
26size_t GlyphPrevious(const std::string& input, size_t start);
27size_t GlyphNext(const std::string& input, size_t start);
28
29// 在 |input| 字串中,從 |start| 開始,返回位於 |glyph_offset| 的字形索引。
30// 從 |start| 開始。
31size_t GlyphIterate(const std::string& input,
32 int glyph_offset,
33 size_t start = 0);
34
35// 返回 |input| 中的字形數量。
36int GlyphCount(const std::string& input);
37
38// 屬性來源:
39// https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/WordBreakProperty.txt
40enum class WordBreakProperty : int8_t {
41 ALetter,
42 CR,
44 Extend,
46 Format,
49 LF,
51 MidNum,
53 Newline,
54 Numeric,
58 ZWJ,
59};
61std::vector<WordBreakProperty> Utf8ToWordBreakProperty(
62 const std::string& input);
63
64bool IsWordBreakingCharacter(const std::string& input, size_t glyph_index);
65} // namespace ftxui
66
67#endif /* end of include guard: FTXUI_SCREEN_STRING_INTERNAL_HPP */
auto input
Definition gallery.cpp:78
FTXUI 的 ftxui:: 命名空間
Definition animation.hpp:10
size_t GlyphNext(const std::string &input, size_t start)
Definition string.cpp:1408
bool IsControl(uint32_t ucs)
Definition string.cpp:1291
WordBreakProperty CodepointToWordBreakProperty(uint32_t codepoint)
Definition string.cpp:1305
bool IsCombining(uint32_t ucs)
Definition string.cpp:1279
bool IsWordBreakingCharacter(const std::string &input, size_t glyph_index)
bool EatCodePoint(const std::string &input, size_t start, size_t *end, uint32_t *ucs)
Definition string.cpp:1172
int GlyphCount(const std::string &input)
Definition string.cpp:1483
bool IsFullWidth(uint32_t ucs)
Definition string.cpp:1283
std::vector< WordBreakProperty > Utf8ToWordBreakProperty(const std::string &input)
Definition string.cpp:1510
size_t GlyphIterate(const std::string &input, int glyph_offset, size_t start)
Definition string.cpp:1429
size_t GlyphPrevious(const std::string &input, size_t start)
Definition string.cpp:1383