【问题标题】:Remove trailing comma in vscode snippet transform删除 vscode 片段转换中的尾随逗号
【发布时间】:2021-05-24 20:33:17
【问题描述】:

我想要什么

我正在尝试改变这个:

foo awehorihawolvbahvierwba3485y089726y216
bar :aw]\e[;r\a32[5a94t8g-09po

进入这个:

foo,
bar

问题

我目前的解决方案是删除“垃圾”并用逗号替换它:

$1

${1/(\\w+).*/$1,/gm}

然而,这会留下一个尾随逗号,我发现每次都删除尾随逗号很烦人。

foo,
bar,

我尝试过的

把原来的想法嵌入到这个变换中

${<insert transform here>/,$//}

... like this ...

${${1/(\\w+).*/$1,/gm}/,$//}

【问题讨论】:

    标签: visual-studio-code vscode-snippets


    【解决方案1】:

    您似乎正在触发您的 sn-p,然后将您的文本粘贴到其中,因为您只使用 $1 作为输入。如果不是这种情况,请告诉我们,修改它以进行选择等可能很容易。

    这将起作用:

        "add a comma only if": {
            "prefix": ["py"],           // whatever prefix you want
            "body": [
                "${1/(\\w+).*(?=$(\r?\n)?)/$1${2:+,}/gm}"
                // "${1/(\\w+).*$(\r?\n)?/$1${2:+,\n}/gm}"  // this also works
            ]
        },
    
    

    它适用于任意数量的输入行,除了最后一个之外,每个行的末尾都放一个逗号。

    (?=$(\r?\n)?) 正向前瞻换行,如果是在组 2 中捕获
    ${2:+,} 如果是组 2,添加逗号

    【讨论】:

    • 谢谢!这是完美的 :) 我希望我可以为此提供 1000 次投票,以节省我很多时间哈哈
    • 有一天你将能够做到;>} 我在上面添加了一些简化。如果将换行符放入条件转换中,则实际上并不需要积极的前瞻。真正的复杂性大致相同。
    猜你喜欢
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多