Décrivez le bogue
Lorsqu'un document .svelte
est formaté lors de l'enregistrement, l'indentation ne change pas.
Reproduire
.svelte
Comportement prévisible
Je m'attends à ce que le code soit formaté lors de l'enregistrement.
Captures d'écran
Un exemple de code non formaté ci-dessous.
Système (veuillez compléter les informations suivantes):
Contexte supplémentaire
J'utilise ceci avec .editorconfig
.
Cela signifie-t-il que si vous effectuez un formatage «à la main» (avec le tri / commande), le code est formaté? Ou n'est-il pas du tout formaté?
J'ai essayé de le déboguer davantage. J'ai essayé d'inclure une configuration .prettierrc
et d'installer Prettier et j'ai pu faire fonctionner quelque chose. Depuis la désactivation de Prettier et la suppression de la configuration .prettierrc
il n'y a plus de problème et il se formate lors de l'enregistrement. Je suppose que même avant le formatage à la main, cela n'aurait pas fonctionné.
Je devrais désinstaller VScode et essayer à partir de zéro si j'ai le temps.
Je ne connais pas le fonctionnement du formatage, mais je pense aux scénarios suivants:
.prettierrc
?.editorconfig
? Actuellement, la configuration de l'éditeur fonctionne lorsque .prettierrc
est présent..prettierrc
config.editorconfig
, mais cela peut être ajouté.Sous le capot, le formatage fonctionne comme suit:
prettier-plugin-svelte
.Si vous essayez de formater mais que cela ne formate rien, pourriez-vous regarder dans Output-> Svelte et voir s'il y a quelque chose de suspect (ou simplement copier le journal ici)?
Merci d'avoir clarifié ces points. Si j'en ai l'occasion, j'essaierai de réinstaller VScode et de reproduire le problème.
J'ai la même erreur. Le code n'est pas modifié lors de l'enregistrement. \
Cela se produit uniquement dans les fichiers .svelte
, les autres fichiers seront automatiquement formatés lors de l'enregistrement. \
Ma sortie-> Svelte n'imprime que la ligne Using Svelte v3.24.0 from ....
\
Output-> Prettier reste vide sur les fichiers .svelte
, mais fonctionne comme prévu et remplit la sortie sur d'autres fichiers (par exemple: js, ts, ..)
Déclenchés via la console prettier --write "**/*.{css,html,js,json,md,scss,svelte,ts,yml}"
, les fichiers svelte seront automatiquement formatés - mais pas après l'enregistrement dans vs-code.
Formate-t-il si vous invoquez explicitement la commande "format" ou ne formate-t-il pas du tout?
Formate-t-il si vous invoquez explicitement la commande "format" ou ne formate-t-il pas du tout?
Si je force le format vs-code ( ctr + shift + i
), il formate tous les fichiers à l'exception des fichiers * .svelte.
Il y a un paramètre svelte.format.enable
, est-il défini sur true
dans vos paramètres?
Vous avez dit qu'à l'intérieur de Output-Svelte, seul Using svelte ...
est affiché, ce qui signifie qu'il n'obtient même pas le code de formatage. Si c'est le cas, il devrait également y avoir Using Prettier ...
dans la sortie.
Il y a un paramètre
svelte.format.enable
, est-il défini surtrue
dans vos paramètres?
Oui, ce paramètre est vrai
Vous avez dit qu'à l'intérieur de Output-Svelte, seul
Using svelte ...
est affiché, ce qui signifie qu'il n'obtient même pas le code de formatage. Si c'est le cas, il devrait également y avoirUsing Prettier ...
dans la sortie.
Il me semble que l'IDE et la console ne fonctionnent pas avec les mêmes options / paramètres.
Hier, j'ai ajouté l'option de prétraiter sass, qui fonctionne bien, sans aucun problème (via cli webpack-dev-server --config config/webpack.config.js --progress
), mais l'EDI renvoie une erreur (Output Svelte):
Using Svelte v3.24.0 from /home/user/path/project/node_modules/svelte/compiler
Preprocessing failed
Error: Cannot find any of modules: sass,node-sass
at Object.importAny (/home/user/path/project/node_modules/svelte-preprocess/dist/modules/importAny.js:29:15) {
__source: 'Style'
}
Peut-être que c'est lié.
Je pense que c'est une question sans rapport. Vous devez installer soit sass
(recommandé) ou node-sass
. Voir ici pour plus d'informations .
Je pense que c'est une question sans rapport. Vous devez installer soit
sass
(recommandé) ounode-sass
. Voir ici pour plus d'informations .
Merci pour le lien. Je viens d'ajouter le chemin binaire du nœud dans svelte.language-server.runtime
, ce qui résout l'erreur none-sass: zap :.
Les paramètres svelte.language-server.ls-path
et svelte.language-server.port
sont vides. Tous les autres paramètres tels que svelte.plugin.typescript.enable
sont activés.
Raison possible: https://github.com/sveltejs/prettier-plugin-svelte/issues/74#issuecomment -665831712
@ s0me0ther @limitlessloop pouvez-vous vérifier si cela pourrait être la cause de votre problème? https://github.com/sveltejs/prettier-plugin-svelte/issues/74#issuecomment -665831712
@ s0me0ther @limitlessloop pouvez-vous vérifier si cela pourrait être la cause de votre problème? sveltejs / joli-plugin-svelte # 74 (commentaire)
@dummdidumm , cela fonctionne très bien pour les fichiers svelte maintenant, merci! \
Mais, si je change le formateur par défaut de esbenp.prettier-vscode
à svelte.svelte-vscode
je ne peux formater que des fichiers svelte: /. \
Existe-t-il un moyen d'utiliser différents formateurs sur différents types de fichiers?
Avez-vous défini la valeur par défaut sur tous les types de fichiers?
Avez-vous défini la valeur par défaut sur tous les types de fichiers?
Oui je l'ai fait. Je suis assez nouveau dans VSCode .. \
Maintenant, j'utilise les paramètres suivants, qui fonctionnent comme un charme:
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[svelte]": {
"editor.defaultFormatter": "svelte.svelte-vscode"
},
Merci à tous d'avoir résolu ce problème!
Commentaire le plus utile
Oui je l'ai fait. Je suis assez nouveau dans VSCode .. \
Maintenant, j'utilise les paramètres suivants, qui fonctionnent comme un charme:
Merci à tous d'avoir résolu ce problème!