17#include "llvm/ADT/StringRef.h"
44 : SourceMgr(Editor.getSourceManager()), LangOpts(Editor.getLangOpts()),
45 PPRec(Editor.getPPCondDirectiveRecord()),
49 bool afterToken,
bool beforePreviousInsertions) {
54 if ((!afterToken && !canInsert(loc, Offs)) ||
55 ( afterToken && !canInsertAfterToken(loc, Offs, loc))) {
60 addInsert(loc, Offs, text, beforePreviousInsertions);
66 bool afterToken,
bool beforePreviousInsertions) {
69 if (!canRemoveRange(range, RangeOffs, RangeLen)) {
75 if ((!afterToken && !canInsert(loc, Offs)) ||
76 ( afterToken && !canInsertAfterToken(loc, Offs, loc))) {
87 addInsertFromRange(loc, Offs, RangeOffs, RangeLen, beforePreviousInsertions);
94 if (!canRemoveRange(range, Offs, Len)) {
99 addRemove(range.getBegin(), Offs, Len);
105 bool commitableBefore =
insert(range.getBegin(), before,
false,
107 bool commitableAfter;
108 if (range.isTokenRange())
111 commitableAfter =
insert(range.getEnd(), after);
113 return commitableBefore && commitableAfter;
122 if (!canInsert(range.getBegin(), Offs) || !canRemoveRange(range, Offs, Len)) {
123 IsCommitable =
false;
127 addRemove(range.getBegin(), Offs, Len);
128 addInsert(range.getBegin(), Offs, text,
false);
136 if (!canRemoveRange(range, OuterBegin, OuterLen)) {
137 IsCommitable =
false;
143 if (!canRemoveRange(replacementRange, InnerBegin, InnerLen)) {
144 IsCommitable =
false;
151 InnerBegin < OuterBegin ||
152 InnerBegin > OuterEnd ||
153 InnerEnd > OuterEnd) {
154 IsCommitable =
false;
158 addRemove(range.getBegin(),
160 addRemove(replacementRange.