Make substitutions work and other minor fixes.
This commit is contained in:
@@ -10,6 +10,10 @@ struct Parser {
|
||||
|
||||
ParseState *root;
|
||||
Language lang;
|
||||
bool in_edit = false;
|
||||
bool dirty = false;
|
||||
uint64_t dirty_start = 0;
|
||||
uint64_t dirty_end = 0;
|
||||
|
||||
Parser(vase::Shard *, uint64_t, Language);
|
||||
~Parser();
|
||||
@@ -21,6 +25,12 @@ struct Parser {
|
||||
void insert(vase::Shard *, uint64_t, uint64_t);
|
||||
void modify(vase::Shard *, uint64_t, uint64_t);
|
||||
|
||||
void begin_edit();
|
||||
void erase(uint64_t start, uint64_t count);
|
||||
void insert(uint64_t start, uint64_t count);
|
||||
void end_edit(vase::Shard *vase);
|
||||
void mark_dirty(uint64_t start, uint64_t end);
|
||||
|
||||
uint64_t next_closing(uint64_t line);
|
||||
uint64_t prev_opening(uint64_t line);
|
||||
|
||||
|
||||
@@ -20,8 +20,8 @@ struct Range {
|
||||
};
|
||||
|
||||
struct RegexGroup {
|
||||
uint64_t start{0};
|
||||
uint64_t end{0};
|
||||
uint64_t start{UINT64_MAX};
|
||||
uint64_t end{UINT64_MAX};
|
||||
};
|
||||
|
||||
struct RegexMatch {
|
||||
@@ -57,7 +57,10 @@ uint64_t find_prev(Shard *root, std::string_view pattern, uint64_t start);
|
||||
Shard *substitute(
|
||||
AppendStorage *ap, Shard *root,
|
||||
std::string_view pattern, uint64_t start, uint64_t end,
|
||||
std::string_view replace, std::string_view options
|
||||
std::string_view replace, std::string_view options,
|
||||
const std::function<void(
|
||||
uint64_t line, uint64_t old_lines, uint64_t new_lines
|
||||
)> &on_edit = nullptr
|
||||
);
|
||||
|
||||
// internal
|
||||
|
||||
Reference in New Issue
Block a user