【问题标题】:UltiSnips - Create argument list with placeholdersUltiSnips - 使用占位符创建参数列表
【发布时间】:2015-03-12 03:34:03
【问题描述】:

我正在尝试在 UltiSnip 中创建一种方法来获取变量名称列表并将它们转换为行分隔的字符串列表(例如 你会在 AngularJS 中看到)。所以你输入每个 arg,跳转到下一个占位符,然后在函数上方填写你想要的内容。

从这里开始:

function(FirstArg, SecondArg, ThirdArg)

点击 CTRL-J(下一个占位符)

最终结果:

[
  'FirstArg',
  'SecondArg',
  'ThridArg',
  function(FirstArg, SecondArg, ThirdArg) {
    // ... cursor here after hitting CTRL-J
    // this would be $0
  }
]

任何提示都会很棒!

【问题讨论】:

  • 只是一个想法:将 () 之间的整个字符串作为 $1,然后使用 python 插值将其拆分为逗号并生成上面的行。原则上应该可行,但我不知道如果你深入细节会变得多么混乱。

标签: vim code-snippets ultisnips


【解决方案1】:

比我想象的要简单。这是函数

global !p
def varDeps(args):
    result = ""
    argList = args.split(",")

    for arg in argList:
        dep = "    " + "'" + arg.strip() + "',\n"
        result = result + dep

    return result.rstrip()
 endglobal

然后使用类似的东西(这是第三个占位符)

    `!p snip.rv = varDeps(t[3])`
        function($scope, ${3:deps}) {
            //....
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 2013-10-03
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 2015-01-15
    相关资源
    最近更新 更多