2017-01-18 17 views
0

Я использую Ractive templates в своем приложении Symfony.Как заставить PhpStorm интерпретировать пользовательские разделители?

В моих шаблонах теля Тяговых в .twig файлов, я не могу использовать фигурные скобки вокруг моего теля Тяговых значений, поэтому я использую теля Тяговый-х custom delimiters

Например, <p>{{text}}</p> становится <p>[[text]]</p>.

Он отлично работает, но моя проблема заключается в том, что PhpStorm не распознает скобки как значения шаблона, который вызывает несколько досадных последствий:

Там нет синтаксиса окраски, отступы перепутались, и есть предупреждения где не должно быть.

Как я могу заставить PhpStorm интерпретировать мои двойные скобки как значения шаблона?


Edit: Пример кода:

<script type="text"> 
    $(function() { 
    var a = new Analytics(); 
    a.site = '{{ site.id }}'; {# Twig #} 
    a.run(); 
}); 
</script> 

{# Below is ractive #} 
<table class="table"> 
    <tr class="general"> 
     <th></th> 
     [[#each columns: i]] 
      [[#if stats]] 
       <th>[[trans('column.' + columns[i])]]</th> 
      [[/if]] 
     [[/each]] 
    </tr> 
    [[> totalLine]] 
    [[#each templates: t]] 
     [[> templateLine]] 
    [[/each]] 
</table> 
+0

Итак, у вас есть шаблон внутри шаблона, правильно? Шаблон «Обычный», обработанный Twig на стороне сервера .., а затем на внутреннем шаблоне клиента/браузера обрабатывается/используется другим движком ... Все в порядке. Было бы неплохо увидеть такой пример кода (файл, который я могу скопировать-вставить в свой тестовый проект и немного поиграть с ним) – LazyOne

+0

** 1) ** Я просто не думаю, что среда IDE поддерживает такой шаблон внутри шаблона, даже если оба шаблонных двигателя поддерживаются отдельно (через отдельные плагины: Twig & Handlebars/Mustache, например). * Я предполагаю * из-за https://youtrack.jetbrains.com/issue/IDEA-106449 ** 2) ** В плагине Handlebars/Mustache (например) нет страниц параметров, поэтому вы не можете настроить, какие брекеты использовать (то же самое с Twig, но только Blade/Smarty имеют такую ​​настройку). – LazyOne

+0

Я думаю, в дополнение к вышеупомянутому билету (проверьте соответствующие билеты), вас это будет интересно: 1) https://youtrack.jetbrains.com/issue/WEB-14385 2) https: //youtrack.jetbrains .com/issue/WEB-14336 – LazyOne

ответ

0

Это один пример XY problem.

Вашей реальной задача («X проблема») является синтаксисом теля Тяговым, в частности {{ }}, в настоящее время рассматривается как Twig анализатора. Это можно решить, обернув шаблон Ractive вокруг раздела verbatim, чтобы не допустить, чтобы Twig обрабатывал этот активный шаблон, например Twig.

«Проблема с Y» проистекает из вашей попытки обойти «проблему X». То есть подсветка синтаксиса IDE при использовании пользовательских разделителей.

Почему {{ }} Синтаксис-подсветка на Ractive templates работает, потому что Twig имеет синтаксис, который включает в себя {{ }}. Однако подсветка ничего не знает о Ractive вообще. Просто бывает, что оба языка используют {{ }} аналогичным образом, что синтаксический маркер думает, что это Twig ... и стили вроде Twig.

Кроме того, большинство, если не все IDE, поддерживают только одноязычную подсветку. Поскольку ваш файл обрабатывается как шаблон Twig, он получает подсветку Twig. Если поддержка многоязычного синтаксиса будет поддерживаться, определяется поставщиком IDE, и вы ничего не можете с этим поделать (если вы не сделаете свой собственный плагин, конечно).

+0

На самом деле проблема X на самом деле не проблема, это факт: я использую пользовательские разделители, и я не могу их изменить, потому что это большой командный проект, а не личный проект. Я не могу «решить» проблему Х. Тем не менее, я единственный, кто использует PhpStorm, что означает, что я единственный, кто обеспокоен моей проблемой. Что касается подсветки нескольких языков, на самом деле меня это не волнует, так как веточка и ractive составляют 99% времени в разных файлах с разными расширениями (.html.twig и .ractive.twig). И как предложил LazyOne, я разместил вопрос на трекере Jetbrains. –