mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
[xml] WEB-74583 Ensure that the formatter won't freeze if an injected block is malformed.
(cherry picked from commit 3632833c30ede97c8ca3fe297d9162ca401dabb3) IJ-CR-175315 GitOrigin-RevId: 4c93ec7f69e5ff36ff59935ab777770cc7b27039
This commit is contained in:
committed by
intellij-monorepo-bot
parent
221b3c95ab
commit
7bc31e15a7
@@ -158,6 +158,14 @@ public abstract class InjectedLanguageBlockBuilder {
|
||||
final FormattingModelBuilder builder = LanguageFormatting.INSTANCE.forContext(childLanguage, childPsi);
|
||||
LOG.assertTrue(builder != null);
|
||||
final FormattingModel childModel = builder.createModel(FormattingContext.create(childPsi, getSettings()));
|
||||
if (!childPsi.getTextRange().contains(childModel.getRootBlock().getTextRange())) {
|
||||
LOG.error("Invalid formatter model created for injected language fragment. Node rage: " + childPsi.getTextRange() +
|
||||
"; created model range: " + childModel.getRootBlock().getTextRange() +
|
||||
"; builder: " + builder.getClass().getName() +
|
||||
"; injected language: " + childLanguage.getID() +
|
||||
"; file: " + childPsi.getContainingFile().getName());
|
||||
return;
|
||||
}
|
||||
Block original = childModel.getRootBlock();
|
||||
|
||||
if (original.isLeaf() && !injectedNode.getText().trim().isEmpty() || !original.getSubBlocks().isEmpty()) {
|
||||
|
||||
Reference in New Issue
Block a user