【问题标题】:Live templates in PhpStormPhpStorm 中的实时模板
【发布时间】:2016-04-13 19:49:10
【问题描述】:

我使用live templates for laravel。当我想插入sn-p,例如Route::get,我按ctrl + j,输入route,弹出弹窗:

如何在不使用箭头键的情况下导航到Route::get?当我输入冒号 (route:) 时,它接受第一个 sn-p:

编辑

我的完成配置

【问题讨论】:

  • 在 PhpStorm 2016.1.1 中对我来说工作得很好(我在 Windows 7 上,以防万一这有什么不同)。虽然用我自己的模板进行了测试——将它们命名为Route::abcRoute::getRoute::note——按下Ctrl+J,然后输入route::g 预选Route::get 就好了。您的行为可能与您的设置有关 - 请显示您的 Settings/Preferences | Editor | General | Code Completion 的屏幕截图
  • 我认为如果您将“区分大小写的完成”选项从“首字母”更改为“无”,它会做得更好.. 但不喜欢它会。我相信(我的额外实验似乎证明了这一点)问题在于 1)你有像 Helper::link_to_route 这样的东西(你在列表中的前 2 个匹配项)和 2)你输入 route:(小 r --匹配您的前 2 个条目,但不匹配以“Route::”开头的条目。
  • 尝试输入Route: - 应该可以完成这项工作(在添加额外的自定义模板Helper::route 以更好地模拟您的情况后,现在可以为我做)。如果您不想输入Route:,请考虑编辑模板(更改它们的缩写)并在此处使用route::(缩写)。使用所有小写字母作为缩写绝对是更好的主意(所有默认的实时模板似乎都使用它们而没有大写字母)
  • 你是对的!我输入了Route:,它可以工作!谢谢!

标签: phpstorm code-snippets


【解决方案1】:

通常,如果您熟悉实时模板缩写,则无需按 Ctrl + J (Code | Insert Live Template...) - 您只需键入缩写并按展开键(通常是制表符)。例如,我将t[TAB] 扩展为$this->,将rt[TAB] 扩展为return $this;

我在这里要说明的一点是,以这种方式输入 Live Templates 会更容易,因为不用担心小写/大写字母和全部小写。

如果您检查所有默认的实时模板(不包括环绕模板),您会注意到它们都使用小写字母的缩写并且没有大写。


回到你的情况:使用你的实时模板,当你输入route 时,它比实际的Route::xxx 更匹配前两个(Helper::link_to_routeHelper::route)。因此输入route:(添加非字母字符)将触发列表中的第一个(最匹配的)模板。

您的选择:

  1. 使用正确的大小写——输入Route:(注意大写R)——它将比route存在的其他两个更好地匹配Route::xxx

  2. 编辑这些实时模板的实际缩写 - 仅使用小写字母(例如,它将变为 route::get)。这样你就不用担心字母大小写了。

  3. 将这些实时模板的缩写编辑为更短,仅使用小写字母且独一无二。例如:将Route::get 重命名为rget。如果您最常使用此类模板,那么您可以从中受益良多。

【讨论】:

    猜你喜欢
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 2016-04-18
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多