С IntelliJ smart String должно быть только два случая.
- простая строка (которую можно преобразовать в тройной двойные кавычки, многострочный литерал String)
- многострочный строковый литерал, введенный еще в Scala 2.1.7 (который можно преобразовать обратно в одну строку)
Итак, когда вы видите это:
в итоге вы должны получить """
.Если нет, об этом следует сообщить как об ошибке в проекте Scala youtrack .
Но , если были тройные двойные кавычки , то IntelliJ правильно преобразовал вашпростой String в многострочный литерал String, который, как , показанный langref , позволяет определять:
val text = "This\nIs\nA\nMultiline\nString"
в
val text = """This
Is
A
Multiline
String"""
В коде Розетты упоминается , что поведение изменилось между Scala 2.7 и 2.8:
в версии 2.7, строка с тройными двойными кавычками заканчивается третьей последовательной кавычкой, в версии 2.8 заканчиваетсяпоследняя цитата из не менее трех двойных кавычек.
Scala 2.7:
scala> val error = """can't finish with a quote: """"
<console>:1: error: unterminated string
val error = """can't finish with a quote: """"
^
Scala 2.8
scala> val success = """but it can on 2.8: """"
success: java.lang.String = but it can on 2.8: "