标签: vscode-snippets

vscode 片段 - 转换和替换文件名

我的文件名是

some-fancy-ui.component.html

我想使用 vscode 片段将其转换为

SOME_FANCY_UI

所以基本上

  1. 对每个字符应用大写
  2. 全部替换 - 用 _
  3. 删除 .component.html

目前我有

'${TM_FILENAME/(. )(-)(. )/${1:/upcase}${2:/_}${3:/upcase}/g}'

这给了我这个

'设置-打印机-服务器-LIST.COMPONENT.HTML'

文档没有解释如何将替换与其对正则表达式组的转换结合使用。

regex visual-studio-code vscode-snippets

2
推荐指数
1
解决办法
639
查看次数

在 VSCode 片段中,如何将另一个用户定义变量的值大写?

我在 VSCode 中尝试制作片段并了解一些新的正则表达式替换语法。

我想要做的是根据文件名填充模板的部分内容。我可以去掉不需要的扩展名,但我不能在下一个变量中大写相同的值。

我有这两行:

"@Controller('/${1:${TM_FILENAME_BASE/(.*)\\.controller/$1/}}')", "export class ${1/(.*)/${1:/capitalize}/}Controller {",

第一个剥离文件名并将值捕获为模板的 $1。在第二行中,我尝试使用 $1 中的值并通过大写过滤器运行它。

我试过的任何东西都不起作用,尽管用头敲击键盘感觉很好。

有没有人破解这个坚果?

visual-studio-code vscode-snippets

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

vscode 用户定义代码段中的 if/else 条件

查看用户定义片段vscode 文档,似乎使用正则表达式转换,您可以执行 if/else 条件。

但是,我似乎找不到任何这样的例子,而且我正在努力理解仅基于 BNF 的正确语法。

有人可以解释一下这个语法吗?

例如,

假设我有一个这样的片段:

"body": [
    "let color = '${1|white,black|}';",
    "let hex = '${???}';"
]
Run Code Online (Sandbox Code Playgroud)

如果color==white,我想要十六进制输出#fff,否则如果黑色#000

visual-studio-code vscode-snippets

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

VS Code - 键绑定 - *type* 命令的光标位置

我使用的是 VS Code 版本:1.40.0。

为了加快我的开发速度,我需要设置自己的键绑定以在代码中输入特定文本(“ {|print_x} ”)。我设法做到了这一点,但如果我粘贴文本后类型光标立即跳到“ { ”之后,那就更好了。

所以:{ 这里输入光标 |print_x}

keybindings.json中的代码:

 { 
    "key": "shift+alt+y", 
    "command": "type",
    "args": { "text": "{|print_x}", },
    "when": "editorTextFocus" 
}
Run Code Online (Sandbox Code Playgroud)

我认为使用这样的数组可能会起作用,但不幸的是文本参数需要是字符串。

   "args": { "text": [ "{" , "|print_x}" ], }
Run Code Online (Sandbox Code Playgroud)

有办法做到吗?如果是这样,我将非常感激。

keymapping key-bindings cursor-position visual-studio-code vscode-snippets

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

VsCode Snippet PlaceHolder 默认值 File_Name_Base + 大写

为了在未来赢得一些时间,我正在尝试为 VsCode 创建一些片段。

有上下文。我有一个tmp.hpp我想要的文件

#ifndef TMP_HPP_
    #define TMP_HPP

#endif
Run Code Online (Sandbox Code Playgroud)

我的问题是,我希望能够TMP按我想要的方式进行修改。为此,我希望它成为默认值最后,如果我决定修改TMPWHATEVER我想强制WHATEVER为大写。

更准确地说,我希望 my${1}具有默认值:${TM_FILE_BASE}并且我也希望${1}和/或 my${TM_FILE_BASE}${/upper}

这是我目前得到的:

"Creates a ifndef": {
    "prefix": "ifndef",
    "body": [
      "#ifndef ${${1:TM_FILENAME_BASE/(.*)/${1:/upcase}/}}_HPP_",
      "  #define ${${1:TM_FILENAME_BASE/(.*)/${1:/upcase}/}_HPP_",
      "",
      "#endif"
    ],
    "description": "Creates a basic ifndef"
}
Run Code Online (Sandbox Code Playgroud)

谢谢

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

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

VS 代码片段 - 只保留第一个点之前的文件名

我只想保留第一个点之前的单词:

user.entity.ts
Run Code Online (Sandbox Code Playgroud)

当前代码:

${TM_FILENAME_BASE/([^.]+)/${1:/upcase}/}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这只是转换了第一部分,而不是把它分开:

USER.entity
Run Code Online (Sandbox Code Playgroud)

visual-studio-code vscode-snippets

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

ES7 React/Redux/GraphQL/React-Native 片段不起作用

由于某种原因,我无法使用 ES7 React/Redux/GraphQL/React-Native 片段,即使我已经安装了所需的扩展。 已安装

code-snippets reactjs vscode-snippets

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

如何在console.log中换行

我发现自己经常想用console.log(...). 例如,如果我有以下代码:

let myVar = "Hello";
myVar.slice(1,3);|            // '|' means where the cursor is after typing in the last line
Run Code Online (Sandbox Code Playgroud)

从那里我想将该行包装在 a 中,console.log这样它就变成:

let myVar = "Hello";
console.log(myVar.slice(1,3));
Run Code Online (Sandbox Code Playgroud)

我可以在 VS Code 中创建一个快捷方式来执行此操作吗?我有一个扩展应该可以做到这一点,但 80% 的情况下它会出错(例如将 放在 the)后面;,所以我只想执行一个总是正确的快捷命令,而不必安装扩展程序。我该怎么做?

javascript visual-studio-code vscode-snippets

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