VS Code - пространство перед круглыми скобками функций

Есть ли способ отключить удаление пространства перед скобками при редактировании функции в коде VS?

Допустим, у меня есть функция

function render () {
    // some code here
}

Когда я начинаю редактировать его, VS Code удаляет пробел перед скобками и преобразует этот код в:

function render() {
    // some code here
}

Есть ли способ отключить это поведение?

Ответ 1

Я узнал, что включен параметр "editor.formatOnType": true. Это то, что заставляет редактор автоматически форматировать код при вводе. Отключение этого помогло решить проблему.

Ответ 2

  • В VS Code open File → Настройки → Настройки
  • Добавьте в конфигурацию JSON:

"javascript.format.insertSpaceBeforeFunctionParenthesis": true

function render () {
    // some code here
}

Ответ 3

У меня была противоположная проблема с анонимными функциями. Мы используем красивее расширение. Автокоррекция вставляет пробел перед круглой скобкой. А потом симпатичнее жалуется на это.

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

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

Существует похожая опция кода, которая решает мою проблему:

"javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false

По умолчанию это true. У меня ушло некоторое время, пока я не устала исправлять автокоррекцию.

Ответ 4

Я в команде VSCode. Начиная с VSCode 1.8 этот параметр форматирования не поддерживается сразу после установки, но мы отслеживаем эту функцию: https://github.com/Microsoft/vscode/issues/15386, https://github.com/Microsoft/TypeScript/issues/12234

В качестве обходного пути попробуйте следующее:

  • Установите расширение eslint: ext install eslint
  • Добавьте "eslint.autoFixOnSave": true в свое рабочее пространство или в настройки пользователя
  • В корне вашего проекта создайте .eslintrc.json с:

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

    Расширение eslint может создать для вас стартер .eslintrc.json с помощью команды create .eslintrc.json.

Это автоматически отформатирует функции, чтобы после них сохранять пробел после них.

Ответ 5

В моем случае я хотел нормального поведения отступов/форматирования кода VS, поэтому я отключил предупреждение eslint:

В файле .eslintrc.js, который я напечатал внутри правил:

 'rules': {
    ....

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

Ответ 6

В моем случае мне пришлось явно включить ESLint в моем проекте Vue.js, хотя у меня был файл .eslintrc.js, который должен был реализовывать:

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

Для этого я нажал CTRL + Shift + P и искал "ESLint: Включить ESLint"

Ответ 7

Перейдите в "Настройки" и найдите insertSpaceBeforeFunctionParenthesis в строке поиска вверху.

Теперь установите флажок, который гласит: JavaScript: Format: Insert Space Before Function Parenthesis

enter image description here