93 votes

Autocomplétion JSX ou HTML dans Visual Studio Code

Existe-t-il un moyen d'utiliser les composants ou la complétion HTML dans Visual Studio Code ? Parce que taper chaque lettre manuellement n'est pas une bonne idée lorsque nous avons des classes comme Bootstrap, etc. Par exemple, la complétion comme dans Emmet : ul>li*2>a

var React = require('react');

var Header = React.createClass({
    render: function () {
        return (

            <nav className="navbar navbar-defaullt">
                <div className="container-fluid">
                    <a href="http://stackoverflow.com/" className="navbar-brand">
                        <img width="50" height="50" src="images/logo.png" alt="logo" />
                    </a>
                    <ul className="nav navbar-nav">
                        <li><a href="http://stackoverflow.com/">Home</a></li>
                        <li><a href="http://stackoverflow.com/#about">About</a></li>
                    </ul>
                </div>
            </nav>

                );
                }
                });
module.exports  = Header;

198voto

julianFresco Points 100

2019 : Une réponse directe à React.

La façon la plus directe d'obtenir la complétion automatique JSX/HTML dans vos projets React est d'ajouter ceci à vos paramètres d'utilisateur ou d'espace de travail ( <project-path>/.vscode/settings.json ):

      "emmet.includeLanguages": {
        "javascript": "javascriptreact"
      },
      "emmet.triggerExpansionOnTab": true

Il se peut que vous deviez redémarrer VS Code pour que le changement prenne effet.

P.S. Si vous ne faites pas ce mappage pour un projet React.js, la réponse de KehkashanFazal devrait probablement vous convenir.

1 votes

"javascript" : ["javascript", "javascriptreact"] - pour le définir pour les fichiers .js et .jsx.

3 votes

CELA FONCTIONNE ! Cependant ! Si les suggestions sont activées, le fait d'appuyer sur la tabulation prendra la première suggestion de la liste... la solution pour cela est de définir un délai sur les suggestions en utilisant Editor: Quick Suggestions Delay . Réglez-le sur une valeur comme 600 et vous pourrez taper l'élément -> appuyez sur la touche tabulation -> voilà.

0 votes

Merci pour la réponse ! Ça a marché comme sur des roulettes !

112voto

Andrii.Vandakurov Points 424

Visual studio code détecte les extensions .jsx et ajoute le support emmet par défaut ( j'utilise VS code 1.8.1)

Mais si vous préférez utiliser l'extension .js pour tous vos fichiers react, vous pouvez associer le mode JavaScript React aux fichiers .js dans le coin inférieur droit de la fenêtre VS Code.

Comment procéder étape par étape (gif)

enter image description here

Mise à jour 2021

Pour ceux qui veulent juste copier-coller le code :

"emmet.syntaxProfiles": {
  "javascript": "jsx"
}

Si la solution ci-dessus ne fonctionne pas, essayez ceci :

"emmet.triggerExpansionOnTab": true,
"emmet.includeLanguages": {
  "javascript": "javascriptreact"
}

Testé avec VS Code v1.56.2.

0 votes

Pourriez-vous expliquer la dernière partie un peu plus en détail ? J'ai besoin d'utiliser js comme extension de tous mes fichiers react.

1 votes

Ce qui n'est pas évident d'après le gif, c'est qu'il presse ESC pour quitter manuellement la fenêtre intellisense avant d'appuyer sur TAB pour obtenir l'autocomplétion.

4 votes

Si vous préférez le texte brut, ajoutez "emmet.syntaxProfiles": { "javascript": "jsx" } à vos paramètres d'utilisateur

55voto

Kehkashan Fazal Points 266

Si quelqu'un est toujours aux prises avec ce problème :

J'ai découvert que le simple fait de mettre

"emmet.syntaxProfiles": {
     "javascript": "jsx" 
 },

ne permet pas la complétion HTML. Mais, en utilisant :

"emmet.includeLanguages": {
    "javascript": "html"
}

fait.

Según docs d'emmet :

"emmet.includeLanguages": {}

Activez les abréviations emmet dans les langues qui ne sont pas supportées par défaut. Ajoutez ici une correspondance entre la langue et la langue supportée par emmet.
Eg : {"vue-html": "html", "javascript": "javascriptreact"}

34voto

Il suffit de sélectionner l'option appropriée Mode langue en bas à droite de l'écran : réglez-le sur JavaScript React.

3 votes

Bien sûr, je suis sûr que vous voudrez faire cela sur chaque fichier d'un grand projet, à chaque fois que vous rouvrirez le code VS...

0 votes

Oui, c'est drôle =) Après la mise à jour, il supporte jsx + emmet par défaut.

1 votes

Quel support par défaut ?

9voto

Cole Points 245

Aucune de ces solutions n'a fonctionné... mais l'extension Auto Close Tag, oui ! https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag

0 votes

Même chose ici. Meilleure réponse.

0 votes

Oui, je ne veux pas utiliser d'extension pour chaque petite fonctionnalité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X