标签: vscode-snippets

VSCode 代码片段转换:同时小写和大写

我有这个:

${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase}/g}
Run Code Online (Sandbox Code Playgroud)

如何使用downcasecapitalize在同一个(2)组上?

${1/([A-Z]*)(?:_)([A-Z]+)*/${1:/downcase}${2:/downcase/capitalize}/g}
Run Code Online (Sandbox Code Playgroud)

我想转换ZXC_ASDzxcAsd.

regex code-snippets visual-studio-code vscode-snippets

5
推荐指数
1
解决办法
1588
查看次数

如何禁用 VSCode 中代码片段的 Enter 按钮

有时,当我按下 Enter 按钮时,VSCode 会主动完成我不想要的代码。

例如:

当我输入

import numpy as np
Run Code Online (Sandbox Code Playgroud)

然后按回车键,VSCode 会将其更改npnumpy

或者当我输入

else
Run Code Online (Sandbox Code Playgroud)

然后按回车键,VSCode 会将其更改为

else
{
    /*...*/
}
Run Code Online (Sandbox Code Playgroud)

虽然我有时真的不需要这种格式。

那么如何禁用代码片段的“Enter”并仅使用 Tab 呢?

code-snippets visual-studio-code vscode-snippets

4
推荐指数
1
解决办法
1505
查看次数

如何使用户片段在字符串中工作:vscode

我为 javascript 制作了自己的用户片段代码

"inner backquote concat variable" : {
    "prefix": "$",
    "body": "\\${$1}",
    "description": "concat variable with backquote sting"
}
Run Code Online (Sandbox Code Playgroud)

当我像这样按“$”时,我希望该片段在反引号字符串或单引号字符串中工作

片段作品.gif

但在字符串内部时它不起作用。

heloquote.gif

如何使代码片段在字符串中工作?

visual-studio-code vscode-snippets

4
推荐指数
1
解决办法
911
查看次数

具有多个转换的 VS Code 片段

我正在尝试制作一个片段,它将获取剪贴板内容(文档中标题的markdown文本)并将其转换为该部分的链接。例如,如果我的剪贴板包含:Some Heading - 20191107那么我希望输出以下内容:

[Some Heading - 20191107](filename.md#some-heading---20191107)
Run Code Online (Sandbox Code Playgroud)

这里是我的代码段VS Code用于markdown至今:

    "link to this section": {
        "prefix": "isection",
        "body": [
            "[${1:${CLIPBOARD}}](${TM_FILENAME}#${CLIPBOARD/ /-/g})"
        ],
        "description": "Insert link to section whose heading text is in the clipboard"
    }
Run Code Online (Sandbox Code Playgroud)

这是第一个转换,但我无法弄清楚如何嵌套多个转换:

  • 用连字符替换所有空格。
  • 全部改为小写。
  • 删除任何匹配的字符 [^a-z0-9-]

测试用例

为了澄清@Mark 的测试用例,在 中的markdown文档中VS Code,我创建了一个部分标题,例如:

# 20191107 - @#$%^& This is a section - 20191107
Run Code Online (Sandbox Code Playgroud)

然后我复制文本20191107 - @#$%^& This is a section - 20191107并运行您为我修复的代码段。它输出的是:

[20191107 - …
Run Code Online (Sandbox Code Playgroud)

visual-studio-code vscode-snippets

4
推荐指数
1
解决办法
1004
查看次数

是否可以有一个考虑我输入长度的片段?

我想为评论定义一个片段,例如

//************
//*  foo A1  *
//************
Run Code Online (Sandbox Code Playgroud)

我输入的地方foo A1,它会创建一行带有 (6+ len(${1}) 星号等的行 - 这是否可行,如果可以,如何实现?

visual-studio-code vscode-snippets

4
推荐指数
1
解决办法
661
查看次数

为 C++ 标头防护实现 VSCode 片段

我尝试在 VSCode 中创建一个片段以快速包含 C++ 标头防护。例如文件路径是C:\workspace\src\chrome\browser\ui\webui\settings\about_handler.h

该代码片段预计将生成如下:

#ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_ABOUT_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_SETTINGS_ABOUT_HANDLER_H_

#endif // CHROME_BROWSER_UI_WEBUI_SETTINGS_ABOUT_HANDLER_H_
Run Code Online (Sandbox Code Playgroud)

VScode 片段语法指南中,我尝试使用TM_FILEPATH变量,但找不到将文件路径转换为上面的宏的解决方案。我尝试了以下一些方法:

  • 通过转换,${TM_FILEPATH/([^a-zA-Z0-9])|([a-zA-Z0-9])/${1:+_}${2:/upcase}/g}_我可以将文件路径生成为C__WORKSPACE_SRC_CHROME_BROWSER_UI_WEBUI_SETTINGS_ABOUT_HANDLER_H_. 此正则表达式会将所有非数字和非字母字符转换为大写_,并将所有字母字符更改为大写。
  • 通过转换${TM_FILEPATH/.*src[\\\\\\/](.*)/${1:/upcase}/}我可以生成CHROME\BROWSER\UI\WEBUI\SETTINGS\ABOUT_HANDLER.H. 这个正则表达式从头到尾删除了路径src,因为我当前的工作区位于src文件夹中,所以我希望我的标头宏与该路径相关。

问题是我无法结合这两个变换来获得我想要的宏。有什么想法可以让它发挥作用吗?

regex visual-studio-code vscode-snippets

4
推荐指数
1
解决办法
5790
查看次数

VSCode — 将自定义片段提交到存储库

如何通过存储库与同事共享我的自定义片段?例如,共享javascript.json文件。

我知道它应该进入内部.vscode,但具体在哪里以及具体的配置是什么?

visual-studio-code vscode-snippets

4
推荐指数
1
解决办法
776
查看次数

如何在 VS Code 片段中插入表格?

我在 VS Code 中有一个代码片段,看起来像这样

"JS arrow function": {
    "scope": "javascript, typescript",
    "prefix": "af",
    "body": [
        "const ${1:name} = (${2:props}) => {",
        "   $3",
        "}"
    ],
    "description": "Create arrow function"
}
Run Code Online (Sandbox Code Playgroud)

我想要在制表位tabulation之前有$3,但 VS Code 显示错误:

字符串中的无效字符。控制字符必须进行转义。

同时放在4 spaces前面$3工作得很好,但我需要tabulation我的 eslint 配置。

有办法放在tabulation那里吗?

javascript code-snippets eslint visual-studio-code vscode-snippets

3
推荐指数
1
解决办法
3075
查看次数

如何在 VS Code 中禁用 JS 文件的点 emmet 智能感知

我想在包含 JSX 代码的 Javascript 文件中使用 emmet,但我不希望 IntelliSense 在我使用点 ( .) 运算符时建议使用 emmet。

例如,我不希望.rap出现 emmet 建议:

图像

我尝试了这些设置:

"emmet.showSuggestionsAsSnippets": true,
"editor.snippetSuggestions": "bottom",
Run Code Online (Sandbox Code Playgroud)

但是,我遇到另一个问题:

这个问题

替换"editor.snippetSuggestions"from"bottom""inline"也没有帮助。

emmet visual-studio-code vscode-snippets

3
推荐指数
1
解决办法
2007
查看次数

VSCode 的用户片段不适用于 Markdown 和 Latex 文件

我已经在 VSCode 中获取了适用于 C 和 C++ 的用户代码片段,但由于某种原因,VSCode 没有提供.md.tex文件的代码片段建议。

这是一个最小的例子tex.json(不起作用):

{
    "dummy": {
        "prefix": "dummy",
        "body": [
            "some random text for demonstration"
        ],
        "description": "A dummy snippet"
    }
}
Run Code Online (Sandbox Code Playgroud)

.mdVSCode 在和文件中提供建议.tex,但不提供用户片段。如何解决此问题或采用其他方式将用户片段用于 Markdown 和 Latex?

更新:.md由于@Mark 的评论,片段现在可以在文件中工作。我需要输入前缀并按Ctrl + Space。然而,该解决方案不适用于 Latex。

markdown latex visual-studio-code vscode-snippets

3
推荐指数
1
解决办法
1573
查看次数