MCPcopy Create free account
hub / github.com/Koihik/LuaFormatter / resetContentInDisableFormatBlocks

Function resetContentInDisableFormatBlocks

src/lua-format.cpp:84–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

82}
83
84std::string resetContentInDisableFormatBlocks(const std::string& original, const std::string& formatted) {
85 std::vector<std::pair<size_t, size_t>> originalBlocks = findBlocksBetweenFormatSwitch(original);
86 std::vector<std::pair<size_t, size_t>> formattedBlocks = findBlocksBetweenFormatSwitch(formatted);
87 if (originalBlocks.size() != formattedBlocks.size()) {
88 std::cerr << "Unexpected! originalBlocks.size() = " << originalBlocks.size()
89 << " , formattedBlocks.size() = " << formattedBlocks.size() << std::endl;
90 }
91 size_t sz = std::min(originalBlocks.size(), formattedBlocks.size());
92 if (sz == 0) {
93 return formatted;
94 }
95 std::ostringstream os;
96 os << formatted.substr(0, formattedBlocks[0].first);
97 for (size_t i = 0; i < sz; i++) {
98 size_t startAt = originalBlocks[i].first;
99 size_t endAt = originalBlocks[i].second;
100 size_t nextFormttedBlockStartAt = formattedBlocks[i].second;
101 size_t nextFormttedBlockEndAt = formatted.size();
102 if (i != sz - 1) {
103 nextFormttedBlockEndAt = formattedBlocks[i + 1].first;
104 }
105 os << original.substr(startAt, endAt - startAt);
106 os << formatted.substr(nextFormttedBlockStartAt, nextFormttedBlockEndAt - nextFormttedBlockStartAt);
107 }
108 return os.str();
109}
110
111std::string lua_format(std::istream& is, const Config& config) {
112 std::ostringstream os;

Callers 1

lua_formatFunction · 0.85

Calls 2

strMethod · 0.80

Tested by

no test coverage detected