2017-01-18 2 views
0

私はSymfonyアプリケーションでRactiveテンプレートを使用しています。PhpStormはカスタム区切り文字を解釈する方法を教えてください。

私RACTIVEテンプレートは、私は私のRACTIVE値の周りの中括弧を使用することはできません、.twigファイルであるので、私は、例えばRACTIVEのcustom delimiters

を使用すると、<p>{{text}}</p><p>[[text]]</p>になります。

それは完璧に動作しますが、私の問題はPhpStormは、いくつかの迷惑な結果を引き起こす、テンプレート値としてブラケットを認識しないということである。

何の構文着色がありませんが、インデントが台無し、と警告があるさどこにあってはならない。

PhpStormで二重括弧をテンプレート値として解釈させるにはどうすればよいですか?


編集:コードの例:

<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によって処理された "Normal"テンプレート。そしてクライアント/ブラウザ内部テンプレートでは、別のエンジンによって処理され/使用されます。私のテストプロジェクトでコピーして貼り付けることができるファイル(少し試してみてください) – LazyOne

+0

** 1)**私はIDEがこのような "テンプレート内部のテンプレート"をサポートしているとは思っていません。両方のテンプレートエンジンが別々にサポートされていても処理できます(別のプラグイン:Twig&Handlebars/Mustacheなど)。 * https://youtrack.jetbrains.com/issue/IDEA-106449 ** 2)** Handlebars/Mustache Plugin(例えば)にはオプションページがありませんので、使用するブレースは設定できません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問題」)は、Ractive構文、具体的には{{ }}がパーサーによってTwigとして処理されています。これは、verbatimセクションの周りにRactiveテンプレートをラップすることで解決でき、TwigがTwigのようなRactiveテンプレートを処理しないようにします。

「Y問題」は、「X問題」を回避しようとする試みに由来します。つまり、カスタム区切り文字を使用する場合のIDE構文の強調表示です。

なぜ、{{ }}のRactiveテンプレートの強調表示が機能するように見えるのは、Twigに{{ }}という構文があるためです。しかし、強調表示はRactiveについて何も知らない。両方の言語が文法のハイライターがそれをTwigと考えているのと同様の方法で{{ }}を使用するだけで、Twigのようなスタイルが使用されます。

また、すべてではないにしてもほとんどのIDEは、単一言語ハイライトのみをサポートしています。あなたのファイルはTwigテンプレートとして扱われているので、Twigの強調表示が得られます。多言語の構文強調表示をサポートするかどうかは、IDEのベンダーによって決まります。もちろん、独自のプラグインを作成しない限り、何もできません。

+0

実際には、Xの問題は実際問題ではありません。それは事実です:カスタムデリミタを使用しています。これは大きなチームプロジェクトで個人的なプロジェクトではないため変更できません。私はXの問題を "解決"できません。 しかし、私はPhpStormを使用している唯一の人です。私の問題について懸念しているのは私だけです。 多言語のハイライトについては、実際には気にしません。小枝と猛烈な違いは、異なるファイル(.html.twigと.ractive.twig)の異なるファイルで99%です。 LazyOneが提案したように、私はJetbrainsのissue trackerにこの問題を掲載しました。 –

関連する問題