From 926b28246fb85ae14c983af7d323f63d37bab86a Mon Sep 17 00:00:00 2001 From: Maxim Kropotov Date: Thu, 16 Feb 2017 15:42:18 +0300 Subject: [PATCH] js multiline string literals consider '\n' escape sequence to be equivalent to actual newline. When formatting injection, allow formatter to consider it same whitespace. Fixes WEB-25477 --- .../intellij/psi/formatter/FormattingDocumentModelImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/psi/formatter/FormattingDocumentModelImpl.java b/platform/lang-impl/src/com/intellij/psi/formatter/FormattingDocumentModelImpl.java index fd9c386be05d..99f7a4055148 100644 --- a/platform/lang-impl/src/com/intellij/psi/formatter/FormattingDocumentModelImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/formatter/FormattingDocumentModelImpl.java @@ -141,6 +141,11 @@ public class FormattingDocumentModelImpl implements FormattingDocumentModel { if (!injectedLanguage.equals(myFile.getLanguage())) { WhiteSpaceFormattingStrategy localStrategy = WhiteSpaceFormattingStrategyFactory.getStrategy(injectedLanguage); if (localStrategy != null) { + String unescapedText = InjectedLanguageUtil.getUnescapedLeafText(injectedElement, true); + if (unescapedText != null) { + return localStrategy.check(unescapedText, 0, unescapedText.length()) >= unescapedText.length(); + } + return localStrategy.check(myDocument.getCharsSequence(), startOffset, endOffset) >= endOffset; } }