mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fail-fast for non-name modifications
This commit is contained in:
@@ -170,6 +170,22 @@ public class XmlTagNameSynchronizer extends CommandAdapter implements Applicatio
|
||||
final Document document = event.getDocument();
|
||||
final int offset = event.getOffset();
|
||||
final int oldLength = event.getOldLength();
|
||||
final CharSequence fragment = event.getNewFragment();
|
||||
final int newLength = event.getNewLength();
|
||||
|
||||
if (document.getUserData(XmlTagInsertHandler.ENFORCING_TAG) == Boolean.TRUE) {
|
||||
// xml completion inserts extra space after tag name to ensure correct parsing
|
||||
// we need to ignore it
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < newLength; i++) {
|
||||
if (!XmlUtil.isValidTagNameChar(fragment.charAt(i))) {
|
||||
clearMarkers();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (myState == State.INITIAL) {
|
||||
final PsiFile file = myDocumentManager.getPsiFile(document);
|
||||
if (file == null || myDocumentManager.getSynchronizer().isInSynchronization(document)) return;
|
||||
@@ -213,22 +229,6 @@ public class XmlTagNameSynchronizer extends CommandAdapter implements Applicatio
|
||||
}
|
||||
if (myMarkers.isEmpty()) return;
|
||||
|
||||
final CharSequence fragment = event.getNewFragment();
|
||||
final int newLength = event.getNewLength();
|
||||
|
||||
if (document.getUserData(XmlTagInsertHandler.ENFORCING_TAG) == Boolean.TRUE) {
|
||||
// xml completion inserts extra space after tag name to ensure correct parsing
|
||||
// we need to ignore it
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < newLength; i++) {
|
||||
if (!XmlUtil.isValidTagNameChar(fragment.charAt(i))) {
|
||||
clearMarkers();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
boolean fitsInMarker = fitsInMarker(offset, oldLength);
|
||||
if (!fitsInMarker) {
|
||||
clearMarkers();
|
||||
|
||||
Reference in New Issue
Block a user