在Sublime Text中,您可以在编写常规文档时在片段文件中定义带有空格的多行代码片段,但是当涉及Visual Studio Code中类似的多行片段时,据我所知它具有要成为JSON条目,您必须将每行分解为列表中的双引号字符串元素,或在一个字符串中使用显式ASCII换行符(\ n)。
我想知道是否有更好的方法来定义代码片段,特别是当它很长时。
答案 0 :(得分:6)
您可以将代码段的正文定义为字符串数组,每个字符串都从一个新行开始。
像这样:
"Create for loop":{
"prefix": "mkfor",
"body":[
"for(int i = 0; i < 3; i++)",
"{",
" //code goes here",
"}"
],
"description": "Creates a for loop"
}
或者如果您安装了Easy Snippet Maker
扩展程序,则可以通过突出显示文本来创建代码段。
答案 1 :(得分:5)
我找不到创建多行片段的好方法。它可能是我希望看到最大改进的功能之一。正如另一个答案所示,有一些扩展可以帮助创建代码段(例如this和this)。然而,它们并没有逃避字面上的美元符号,并且缩进并不是很好。
在浏览此答案时,我偶然发现Pen by Denis Malinochkin(从this issue链接)。然而,它也没有正确地逃脱美元符号,所以我分叉它并添加这一行来处理文字美元符号。 这是:https://codepen.io/cbejensen/pen/WXLxaE
希望有所帮助!
P.S。 - 这是我添加的行:
line = line.replace(new RegExp(/\$/, 'g'), '\\$');
答案 2 :(得分:4)
Snippet-creator是您需要的扩展名。
您现在可以出发了。 在步骤4中输入的编辑器中,输入摘要快捷方式,然后选择最先出现的预测(如果没有预测,请按ctrl + space)。
希望这会有所帮助:)
注意:转到“文件”->“首选项”->“用户片段”。然后选择用于创建代码段的语言。您将在其中找到代码段。
答案 3 :(得分:1)
使用以下系统编写多个代码段,这是一个json文件。 提供前缀,正文和描述。 参考:https://code.visualstudio.com/docs/editor/userdefinedsnippets
{
"For_Loop": {
"prefix": "for",
"body": [
"for (const ${2:element} of ${1:array}) {",
"\t$0",
"}"
],
"description": "For Loop"
},
"react_class": {
"prefix": "react_class",
"body": [
"import React from 'react';",
"class ${1:ComponentName} extends React.Component {",
"\t$0constructor(props) {",
"\t$0\t$0super(props)",
"",
"render() {",
"return (<div> ${2:Component} </div>)",
"}",
"export default ${3:ComponentName}"
],
"description": "For React Component class"
}
}
答案 4 :(得分:0)
我已经编写了一个脚本,您可以创建自己的复杂片段。只需使用您喜欢的文件。所以你不要&#39;需要在字符串或字符串数组中编写源代码。 https://github.com/banxi1988/vscode-snippets-ext-template