webentwicklung-frage-antwort-db.com.de

VS Code - Leerzeichen vor Funktionsklammern

Gibt es eine Möglichkeit, das Entfernen von Leerzeichen vor Klammern beim Bearbeiten einer Funktion in VS-Code zu deaktivieren?

Sagen wir, ich habe eine Funktion

function render () {
    // some code here
}

Wenn ich mit der Bearbeitung beginne, entfernt VS Code das Leerzeichen vor den Klammern und wandelt diesen Code in Folgendes um:

function render() {
    // some code here
}

Gibt es eine Möglichkeit, dieses Verhalten zu deaktivieren?

18
Yan Takushevich

Ich fand heraus, dass "editor.formatOnType": true-Einstellung aktiviert war. Dadurch formatiert der Editor den Code bei der Eingabe automatisch. Die Deaktivierung half, das Problem zu beheben.

2
Yan Takushevich
  1. Öffnen Sie im VS-Code Datei -> Einstellungen -> Einstellungen
  2. Fügen Sie Ihrer JSON-Konfiguration hinzu:

"javascript.format.insertSpaceBeforeFunctionParenthesis": true

function render () {
    // some code here
}

"javascript.format.insertSpaceBeforeFunctionParenthesis": false

function render() {
    // some code here
}

  1. Jetzt können Sie Ihre Auto-Formatierungsoption weiter verwenden. "editor.formatOnType": true
24
Alex Eagle

Ich hatte gegenteiliges Problem mit anonymen Funktionen. Wir verwenden eine schönere Erweiterung. Autokorrektur fügt ein Leerzeichen vor Klammern ein. Und dann beschwert sich hübscher.

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

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

Es gibt eine ähnliche Codeoption, die mein Problem löst:

"javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false

Standardmäßig ist es true. Ich brauchte einige Zeit, bis ich müde war, die Auto-Korrektur zu korrigieren.

17
Zmogas

Ich bin im VSCode-Team. Seit VSCode 1.8 wird diese Formatierungsoption nicht standardmäßig unterstützt, aber wir verfolgen die Funktion: https://github.com/Microsoft/vscode/issues/15386 , https: // github .com/Microsoft/TypeScript/Probleme/12234

Versuchen Sie als Problemumgehung Folgendes:

  • Installieren Sie die Erweiterung eslint : ext install eslint
  • Fügen Sie "eslint.autoFixOnSave": true zu Ihren Arbeitsbereichs- oder Benutzereinstellungen hinzu
  • Erstellen Sie im Stammverzeichnis Ihres Projekts einen .eslintrc.json mit:

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

    Die eslint-Erweiterung kann mit dem Befehl .eslintrc.json einen Starter create .eslintrc.json erstellen.

Dadurch werden Funktionen beim Speichern der Datei automatisch so formatiert, dass nach ihnen ein Leerzeichen angezeigt wird.

4
Matt Bierner

In meinem Fall wollte ich das normale Einrückungs-/Formatierungsverhalten von VS Code. Daher habe ich die Eslint-Warnung deaktiviert:

In der .eslintrc.js-Datei habe ich die Regeln eingegeben:

 'rules': {
    ....

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

In meinem Fall musste ich ESLint explizit in meinem Vue.js-Projekt aktivieren, obwohl ich eine .eslintrc.js-Datei hatte, die implementiert werden sollte:

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

Dafür habe ich STRG + Shift + P gedrückt und nach "ESLint: Enable ESLint" gesucht.

0
John Edmonds