【问题标题】:PhpStorm live template variable wrap/surroundPhpStorm 实时模板变量环绕/环绕
【发布时间】:2016-08-05 09:34:33
【问题描述】:

我有一个 Sublime Text sn-p 我想转换为 PhpStorm 的实时模板。目前,我无法包装已定义的变量。

例如

${2:${1:HOOK}}_mail

崇高文本中的第一个tab 将输出以下内容。

MY_HOOK_mail

第二个 tab 将允许我覆盖 MY_HOOK

MY_OVERWRITE_mail

使用实时模板可以做到这一点吗?

作为参考我尝试转换的崇高文本 sn-p:https://github.com/iampuma/d7ssnippets/blob/master/hook_mail.sublime-snippet

  • 参考它在 Sublime Text 中的实际工作方式(第 8 行):

解决方案: - 感谢@LazyOne。

实时模板:

/**
 * Implements hook_mail().
 */
function $MODULE_NAME$_mail($key, &$message, $params) {
  switch($key) {
    case '$MODULE_NAME1$_mail':
      $message['subject'] = $SUBJECT$;
      $message['body'][] = '$BODY$';
  }
}

变量:

【问题讨论】:

  • 我没有使用过 Sublime,所以不知道在这种情况下它应该如何工作(也许你可以录制一些动画/屏幕猫?)。但是使用 Live Templates,您可以使用 2 个变量:每个部分 1 个,例如 $MY$_$HOOK$_mail,您可以为每个部分提供默认值并独立覆盖它。我完全不确定您是否可以拥有多级/嵌套变量。
  • 我已经用 Sublime Text 中的外观更新了我的问题。见第 8 行。
  • 嵌套变量否——您必须使用多个变量,您可以在其中分配默认值或另一个变量的值(然后根据需要在键入时覆盖)——例如$NAME1$ (used as function name) and $NAME2$` 用于case
  • 如果您有问题 - 发布您的实时模板(模板作为文本 + 您的变量(屏幕截图))。
  • @LazyOne 谢谢!我确实可以只使用先前定义的变量的默认值。没想到!

标签: drupal phpstorm code-snippets live-templates


【解决方案1】:

解决方案: - 感谢@LazyOne。

诀窍就是使用前一个变量作为默认值。例如:

实时模板:

/**
 * Implements hook_mail().
 */
function $MODULE_NAME$_mail($key, &$message, $params) {
  switch($key) {
    case '$MODULE_NAME1$_mail':
      $message['subject'] = $SUBJECT$;
      $message['body'][] = '$BODY$';
  }
}

变量:

【讨论】:

    猜你喜欢
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 2013-01-08
    • 2010-09-13
    相关资源
    最近更新 更多