MCPcopy Create free account
hub / github.com/CppCXY/EmmyLuaCodeStyle / Parse

Method Parse

CodeFormatCore/src/Config/LuaEditorConfig.cpp:49–102  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47}
48
49void LuaEditorConfig::Parse(std::string_view text) {
50 auto reader = TextReader(text);
51 _sections.emplace_back("");
52 while (!reader.IsEof()) {
53 reader.ResetBuffer();
54 switch (reader.GetCurrentChar()) {
55 // comment
56 case ';':
57 case '#':
58 //skip empty line
59 case '\r':
60 case '\n': {
61 reader.NextLine();
62 break;
63 }
64 case '\t':
65 case ' ': {
66 reader.EatWhile(IsWhiteSpaces);
67 break;
68 }
69 case '[': {
70 reader.NextChar();
71 reader.EatWhile([](char ch) { return ch != ']' && !IsEndOfLine(ch); });
72 auto pattern = string_util::TrimSpace(reader.GetSaveText());
73 if (pattern.empty() || reader.GetCurrentChar() != ']') {
74 reader.NextLine();
75 break;
76 }
77 reader.NextLine();
78 _sections.emplace_back(pattern);
79 break;
80 }
81 default: {
82 reader.EatWhile([](char ch) { return ch != '=' && !IsEndOfLine(ch); });
83 auto key = string_util::TrimSpace(reader.GetSaveText());
84 if (key.empty() || reader.GetCurrentChar() != '=') {
85 reader.NextLine();
86 break;
87 }
88
89 reader.NextChar();
90 reader.ResetBuffer();
91 reader.EatWhile([](char ch) { return !IsEndOfLine(ch); });
92 auto value = string_util::TrimSpace(reader.GetSaveText());
93 if (value.empty()) {
94 reader.NextLine();
95 break;
96 }
97 _sections.back().ConfigMap.insert({std::string(key), std::string(value)});
98 break;
99 }
100 }
101 }
102}
103
104LuaStyle &LuaEditorConfig::Generate(std::string_view filePath) {
105

Callers 2

OpenFileMethod · 0.45

Calls 12

TextReaderClass · 0.85
IsEndOfLineFunction · 0.85
stringFunction · 0.85
IsEofMethod · 0.80
ResetBufferMethod · 0.80
GetCurrentCharMethod · 0.80
NextLineMethod · 0.80
EatWhileMethod · 0.80
NextCharMethod · 0.80
GetSaveTextMethod · 0.80
emptyMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected