【发布时间】: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
解决方案: - 感谢@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