2017-04-26 4 views
0

fa-iconsのライブテンプレートを作成します。次たとえば ライブテンプレートとあらかじめ定義された変数の追加と複雑なロジックのリスト

<i class="ace-icon fa fa-arrow-right icon-on-right align-top bigger-125"></i> 
<i class="ace-icon fa fa-arrow-left icon-on-left bigger-140"></i> 
<i class="ace-icon fa fa-times icon-on-right"></i> 
<i class="fa fa-bars"></i> 

ルールが生成する

は次です:

  1. 最小のテンプレートが<i class="fa fa-$ICON_NAME$"></i>
  2. $ICON_NAME$であれば、それはセットアップにicon-on-[right|left]
  3. を追加された場合の能力はクラスace-iconを追加しておく必要がありである生成しましたfa-arrow-[right|left]と設定されたace-iconと設定された方向部分はicon-on-[right|left]
  4. セットアップ bigger-$SIZE$で​​は他に、このクラスは
  5. $ICON_NAME$のオプションと​​が事前に定義されなければならないをスキップ追加する場合
  6. は例のalign-top
  7. のようなオプションの書き込みaditionalクラスへの能力を持っています。

想定ライブテンプレート

<i class="$ACE_CLASS$ fa fa-$ICON_NAME$ icon-on-$ACE_DIRECTION$ $OPTIONAL_CLASS$ bigger-$SIZE$"></i> 

私の質問:

  1. 方法$ICON_NAME$$ACE_DIRECTION$と​​のセットアップ事前に定義されたオプションリストへ?
  2. サイズが空の場合、bigger-$SIZE$をレンダリングしない方法はありますか?
  3. $ICON_NAME$$ACE_DIRECTION$が含まれているかどうかを確認して切り替えますか?
  4. icon-on-$ACE_DIRECTION$bigger-$SIZE$をレンダリングする方法は、$ACE_CLASS$がtrueの場合のみですか?

答えて

2

方法$ICON_NAME$$ACE_DIRECTION$と​​のセットアップ事前に定義されたオプションリストへ?

enum(sCompletionString1,sCompletionString2,...) - サイズが空の場合bigger-$SIZE$をレンダリングしないようにする方法https://www.jetbrains.com/help/phpstorm/2017.1/live-template-variables.html#predefined_functions


ライブテンプレートには、conditionsまたはloopsが含まれていません。

私は空のものも含め、すべてのbigger-XXXオプションで別のenumを持つように提案してもよい(基本的には - ではなくbigger-$SIZE$$BIGGER-SIZE$を持っています)。

2017.2は、GroovyScript support持つべきである - 多分あなたは、その後code your own Live Template functionか何か(一部のドキュメントへのリンク用see this link)することができますが...$ICON_NAME$$ACE_DIRECTION$が含まれているかどうかを確認し、それを切り替える方法


上記と同じ:不可 - ライブテンプレートには条件がありません。 $ACE_CLASS$がtrueの場合にのみicon-on-$ACE_DIRECTION$bigger-$SIZE$をレンダリングする方法


上記と同じ:不可 - ライブテンプレートには条件がありません。

複数のシナリオをカバーするライブテンプレートを作成することもできます(例:fai、別のテンプレートはfai2など)。

+0

ライブテンプレートを他から呼び出すことはできますか?たとえば、 '' –

+0

これは - https://youtrack.jetbrains.com/issue/IDEABKL-6414を意味します。ありえない。最初のライブテンプレートを最初に終了する必要があります。ライブテンプレートの最も一般的に使用される展開キーである[Tab]キーは、現在のテンプレート内のある変数/プレースホルダから別の変数/プレースホルダにナビゲートするためのキーです。別のカスタム拡張キー( 'Space'、' Tab'や 'Enter'ではなく)を割り当ててみてください。おそらくそれはうまくいくでしょう。 – LazyOne

+1

@ PavloZhukovまた、「別のライブテンプレート内でライブテンプレートを参照し、同時に両方を展開する」という質問がありましたか?その答えは同じです - 可能ではありません(https://youtrack.jetbrains.com/issue/WI-24014はhttps://youtrack.jetbrains.com/issue/IDEABKL-6414と重複して記されています)。 – LazyOne

関連する問題