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. All rights reserved.
2// このソースコードの使用は、LICENSEファイルにあるMITライセンスによって管理されています。
3// LICENCEファイルに記載されているMITライセンスに基づいて利用可能です。
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| 文字列内の |glyph_offset| にあるグリフのインデックスを、|start| から開始して返します。
30size_t GlyphIterate(const std::string& input,
31 int glyph_offset,
32 size_t start = 0);
33
34// |input| 内のグリフの数を返します。
35int GlyphCount(const std::string& input);
36
37// プロパティの出典:
38// https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/WordBreakProperty.txt
39enum class WordBreakProperty : int8_t {
40 ALetter,
41 CR,
43 Extend,
45 Format,
48 LF,
50 MidNum,
52 Newline,
53 Numeric,
57 ZWJ,
58};
60std::vector<WordBreakProperty> Utf8ToWordBreakProperty(
61 const std::string& input);
62
63bool IsWordBreakingCharacter(const std::string& input, size_t glyph_index);
64} // namespace ftxui
65
66#endif /* インクルードガードの終了: FTXUI_SCREEN_STRING_INTERNAL.HPP */
FTXUI ftxui:: 名前空間
Definition animation.hpp:9
size_t GlyphNext(const std::string &input, size_t start)
Definition string.cpp:1414
bool IsControl(uint32_t ucs)
Definition string.cpp:1287
WordBreakProperty CodepointToWordBreakProperty(uint32_t codepoint)
Definition string.cpp:1301
bool IsCombining(uint32_t ucs)
Definition string.cpp:1275
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:1170
int GlyphCount(const std::string &input)
size_t GlyphIterate(const std::string &input, int glyph_offset, size_t start=0)
bool IsFullWidth(uint32_t ucs)
Definition string.cpp:1279
std::vector< WordBreakProperty > Utf8ToWordBreakProperty(const std::string &input)
size_t GlyphPrevious(const std::string &input, size_t start)
Definition string.cpp:1392