Ответ 1
Я узнал, что включен параметр "editor.formatOnType": true
. Это то, что заставляет редактор автоматически форматировать код при вводе. Отключение этого помогло решить проблему.
Есть ли способ отключить удаление пространства перед скобками при редактировании функции в коде VS?
Допустим, у меня есть функция
function render () {
// some code here
}
Когда я начинаю редактировать его, VS Code удаляет пробел перед скобками и преобразует этот код в:
function render() {
// some code here
}
Есть ли способ отключить это поведение?
Я узнал, что включен параметр "editor.formatOnType": true
. Это то, что заставляет редактор автоматически форматировать код при вводе. Отключение этого помогло решить проблему.
"javascript.format.insertSpaceBeforeFunctionParenthesis": true
function render () {
// some code here
}
У меня была противоположная проблема с анонимными функциями. Мы используем красивее расширение. Автокоррекция вставляет пробел перед круглой скобкой. А потом симпатичнее жалуется на это.
var anonfunc = function() {
// Expected syntax.
}
var autocorrected = function () {
// Auto-correct inserts a space
}
Существует похожая опция кода, которая решает мою проблему:
"javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false
По умолчанию это true
. У меня ушло некоторое время, пока я не устала исправлять автокоррекцию.
Я в команде VSCode. Начиная с VSCode 1.8 этот параметр форматирования не поддерживается сразу после установки, но мы отслеживаем эту функцию: https://github.com/Microsoft/vscode/issues/15386, https://github.com/Microsoft/TypeScript/issues/12234
В качестве обходного пути попробуйте следующее:
ext install eslint
"eslint.autoFixOnSave": true
в свое рабочее пространство или в настройки пользователяВ корне вашего проекта создайте .eslintrc.json
с:
{
...
"rules": {
...
"space-before-function-paren": "error"
}
}
Расширение eslint может создать для вас стартер .eslintrc.json
с помощью команды create .eslintrc.json
.
Это автоматически отформатирует функции, чтобы после них сохранять пробел после них.
В моем случае я хотел нормального поведения отступов/форматирования кода VS, поэтому я отключил предупреждение eslint:
В файле .eslintrc.js, который я напечатал внутри правил:
'rules': {
....
//disable rule of space before function parentheses
"space-before-function-paren": 0
}
В моем случае мне пришлось явно включить ESLint в моем проекте Vue.js, хотя у меня был файл .eslintrc.js, который должен был реализовывать:
extends: ['plugin:vue/exxential', '@vue/standard']
Для этого я нажал CTRL + Shift + P и искал "ESLint: Включить ESLint"
Перейдите в "Настройки" и найдите insertSpaceBeforeFunctionParenthesis
в строке поиска вверху.
Теперь установите флажок, который гласит: JavaScript: Format: Insert Space Before Function Parenthesis