mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-04 17:20:55 +07:00
[java-typing] Skip closing brace after non-first embedded expression (IDEA-336810)
GitOrigin-RevId: a3a06e08fba502cf58ef08774cf4a7e3401a7a97
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d5ccfc998a
commit
f179a8a2e9
@@ -119,7 +119,8 @@ public abstract class AbstractBasicJavaTypedHandler extends TypedHandlerDelegate
|
||||
HighlighterIterator iterator = editor.getHighlighter().createIterator(offset-1);
|
||||
CharSequence sequence = editor.getDocument().getCharsSequence();
|
||||
if (!iterator.atEnd() &&
|
||||
(iterator.getTokenType() == JavaTokenType.STRING_TEMPLATE_BEGIN || iterator.getTokenType() == JavaTokenType.TEXT_BLOCK_TEMPLATE_BEGIN) &&
|
||||
(iterator.getTokenType() == JavaTokenType.STRING_TEMPLATE_BEGIN || iterator.getTokenType() == JavaTokenType.TEXT_BLOCK_TEMPLATE_BEGIN ||
|
||||
iterator.getTokenType() == JavaTokenType.STRING_TEMPLATE_MID || iterator.getTokenType() == JavaTokenType.TEXT_BLOCK_TEMPLATE_MID) &&
|
||||
iterator.getEnd() == offset && sequence.subSequence(iterator.getStart(), iterator.getEnd()).toString().equals("\\{")) {
|
||||
if (sequence.length() > offset && sequence.charAt(offset) == '}') {
|
||||
editor.getCaretModel().moveToOffset(offset + 1);
|
||||
|
||||
@@ -156,6 +156,11 @@ public abstract class AbstractBasicJavaTypingTest extends BasePlatformTestCase {
|
||||
doTest('}');
|
||||
}
|
||||
|
||||
public void testEndSecondStringTemplateTextBlock() {
|
||||
setLanguageLevel(LanguageLevel.JDK_21_PREVIEW);
|
||||
doTest('}');
|
||||
}
|
||||
|
||||
protected void setLanguageLevel(@NotNull LanguageLevel level) {
|
||||
LanguageLevelProjectExtension extension = LanguageLevelProjectExtension.getInstance(getProject());
|
||||
LanguageLevel prev = extension.getLanguageLevel();
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
class X {
|
||||
String str = STR."""
|
||||
\{} \{}<caret>"""
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
class X {
|
||||
String str = STR."""
|
||||
\{} \{<caret>}"""
|
||||
}
|
||||
Reference in New Issue
Block a user