Js-beautify: { "brace_style": "preserve-inline" } ne fonctionne pas comme prévu avec les paramètres de fonction multiligne

Créé le 24 oct. 2018  ·  4Commentaires  ·  Source: beautify-web/js-beautify

La description

Salut, tout d'abord un grand merci à vous les gars pour une si belle bibliothèque !

J'ai un problème lorsque j'utilise des arguments de fonction multiligne qui contiennent des objets :

// This is working OK for me and it is very readable
myFunc('myString',
    myFunc2(),
    andSoOn());

Production attendue

Mais quand j'essaye :

// This is working OK for me and it is very readable
myFunc('myString',
    { myProp: true }, // I have just insterted this object
    andSoOn());

Sortie réelle

Tout est reformaté en une seule ligne...

myFunc('myString', { myProp: true }, andSoOn());

Je suis presque sûr que cela a à voir avec la règle { "brace_style": "preserve-inline" }.

Environnement

Système d'exploitation : Linux Mint
Éditeur de code : VSCode

Paramètres

Exemple:

{
    "editor": {
        "formatOnSave": true
    },
    "brace_style": "collapse,preserve-inline"
}

Merci encore ;)

javascript bug

Tous les 4 commentaires

C'est le paramètre collapse qui ramène l'accolade ouverte à la ligne précédente.

Mais on pourrait faire valoir que preserve-inline devrait l'emporter. La partie difficile est que l'embellisseur ne peut pas dire si le bloc sera en ligne jusqu'à ce qu'il atteigne la fin. C'est difficile dans la conception actuelle.

Bon, j'ai essayé avec la config :

{
    "brace_style": "none,preserve-inline"
}

Et le résultat est le même... je pense aussi que cela ne se produit que dans le contexte des paramètres de fonction, tous les autres cas sont ok, j'espère avoir un peu de temps pour le vérifier.

Salut, pour ceux qui recherchent une solution, voici une solution de contournement:

myFunc( //
    { myProp: true }, //
    { myProp: true }, //
    { myProp: true });

Lorsque je mets un commentaire vide, il ne se reformate pas en une seule ligne. Au moins sur VScode. Il ne rend pas moins lisible et est facilement amovible dans tout le projet avec une recherche et un remplacement ( //\n )

J'espère que ça pourra aider...

@sebRomeo
Aie. Je suis content que vous ayez trouvé une solution de contournement, mais c'est une solution de contournement douloureuse.
Juste pour être clair, "none,preserve-inline" devrait fonctionner, donc je change cela en bug.

Cette page vous a été utile?
0 / 5 - 0 notes