Shyrick
@Shyrick

Как настроить постоянный language injection в строках в PhpStorm?

Опишу суть проблемы: если в php строке содержится валидный html/js без разрыва этой строки для конкатенации с другими переменными $var = '<a href="#">link</a>', то PhpStorm подсвечивает синтаксис как и положено. Но если попытаться составить "html" строку из нескольких, $var = '<a href="' . $link . '">link</a>'подсветка пропадает.
В поисках решения проблемы наткнулся на блог php разработчика, в котором он описывал PhpStorm, приведу цитату со скрином
Часто в битриксе приходится видеть кашу из html/js/php (а иногда даже sql кода)? Причем активно в файле может присутствовать jquery, а php код местами написан с использованием альтернативного синтаксиса управляющих структур? Тогда вы оцените, как редактор отлично расправляется с этой кашей! Также он умеет смешивать языки, например, когда вы генерируете какой-то js или html код с помощью php, то в генерируемом фрагменте будет подсветка синтаксиса, а также помощник по составлению языковых вставок.-%D0%B2%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0

На скрине видно как PhpStorm (справа) подсвечивает сконкатенированную строку $fieldValue.
В моем же случае получается вот так 43e414e6793941d98350412b266cec9c.png
Подскажите какие настройки за это отвечают? Очень раздражает :)
  • Вопрос задан
  • 6637 просмотров
Решения вопроса 1
@mmjurov
Если у вас свежая версия шторма, то Language Injection идет "из коробки". Если же нет, то надо установить плагин IntelliLang
Сами настройки языковых вставок тут - File | Settings | Editor | Language Injections
В общем-то все это описано в официальном мануале JetBrains и как автор того самого "блога php разработчика" не думал, что могут возникнуть проблемы с активацией данного функционала.

UPD. Бред написал .. вечером уже особо голова не варит.
Конкретно в вашем примере должен помочь Alt + Enter. Он заинжектит всю строку целиком.
Кстати, для того, что изображено на правом скрине я специально ничего не настраивал, как-то оно само так из коробки заработало :)

Вот гифка
bd9cec33c7be48608853fdae7b279a81.gif

Правда в некоторых местах почему-то не работает. Банально могу перетащить данный кусок кода в верхнюю часть файла и уже не могу сделать вставку языка - недоступен выбор в панельке из Alt+Enter
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@asdz
Ох уж этот битрикс... даже PHPStorm не справляется с ним. В таких случаях наверное может помочь Alt+Enter?
Ответ написан
@obemgcabazn
Settings - Editor - Color Scheme - General - Code - Injected language fragment - Снять галочку с Background
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы