VS Code - 函数括号前的空格

时间:2016-12-14 19:33:17

标签: visual-studio-code

在VS代码中编辑函数时,有没有办法在括号前删除空格?

假设我有一个功能

function render () {
    // some code here
}

当我开始编辑它时,VS Code删除括号前的空格并将此代码转换为:

function render() {
    // some code here
}

有没有办法禁用此行为?

9 个答案:

答案 0 :(得分:24)

  1. 在VS Code中打开文件 - >偏好 - >设置
  2. 添加到您的JSON配置:
  3. "javascript.format.insertSpaceBeforeFunctionParenthesis": true

    function render () {
        // some code here
    }

    "javascript.format.insertSpaceBeforeFunctionParenthesis": false

    function render() {
        // some code here
    }

    1. 现在,您可以继续使用自动格式选项"editor.formatOnType": true

答案 1 :(得分:17)

我对匿名函数有相反的问题。我们使用更漂亮的扩展。自动更正在括号前插入空格。然后更漂亮的抱怨它。

var anonfunc = function() {
    // Expected syntax. 
}

var autocorrected = function () {
    // Auto-correct inserts a space
}

有类似的代码选项,它解决了我的问题:

"javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false

默认情况下为true。花了我一些时间,直到我累了纠正自动纠正。

答案 2 :(得分:6)

我也遇到了类似的问题,VSCode在构造函数之后删除了空格,并且ESLint抱怨因为没有空格。

  • 转到文件->首选项->设置
  • 搜索constructor
  • JavaScript › Format: Insert Space After Constructor旁边添加支票

enter image description here

答案 3 :(得分:5)

我是VSCode团队的成员。从VSCode 1.8开始,此格式化选项不支持开箱即用,但我们正在跟踪该功能:https://github.com/Microsoft/vscode/issues/15386https://github.com/Microsoft/TypeScript/issues/12234

作为解决方法,请尝试以下操作:

  • 安装eslint extensionext install eslint
  • "eslint.autoFixOnSave": true添加到您的工作区或用户设置
  • 在项目的根目录中,使用以下内容创建.eslintrc.json

    {
        ...
        "rules": {
            ...
            "space-before-function-paren": "error"
        }
    }
    

    eslint扩展程序可以使用.eslintrc.json命令为您创建启动器create .eslintrc.json

当您保存文件时,这将自动格式化函数以使其后面有空格。

答案 4 :(得分:2)

我发现我启用了"editor.formatOnType": true设置。这是使编辑器在您键入时自动格式化代码的原因。禁用它有助于解决问题。

答案 5 :(得分:0)

在我的情况下,我想要VS Code的正常缩进/格式化行为,所以我禁用了eslint警告:

在.eslintrc.js文件中,我输入规则:

 'rules': {
    ....

    //disable rule of space before function parentheses 
    "space-before-function-paren": 0
  }

答案 6 :(得分:0)

就我而言,即使我已经执行了一个.eslintrc.js文件,我也必须在Vue.js项目上显式启用ESLint:

extends: ['plugin:vue/exxential', '@vue/standard']

为此,我按了CTRL + Shift + P并搜索了“ ESLint:启用ESLint”

答案 7 :(得分:0)

转到“偏好设置”,然后在顶部的搜索栏中搜索insertSpaceBeforeFunctionParenthesis

现在,选中显示以下内容的复选框:JavaScript: Format: Insert Space Before Function Parenthesis

enter image description here

答案 8 :(得分:0)

此外,您还可以在Mac的Command + ,或键盘上的CTRL + ,上敲击Yan的答案,然后在settings.json

中添加以下几行
"javascript.format.insertSpaceBeforeFunctionParenthesis": false,
"javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false

第二个条目也禁用了匿名函数的空间,格式为例如

var anon = function() {
   // do something..
}