Dans Sublime Text 3, comment faire pour vous permettre d'Emmet pour JSX fichiers?
J'avais déjà été à l'aide de Allan Hortle de JSX paquet jusqu'à ce que j'ai rencontré un problème avec la façon dont il gère la coloration syntaxique. J'ai alors remarqué qu'il y a un paquet officiel, sublime-réagir.
Avec Allan Hortle du paquet, il a inclus un extrait de code dans le Preferences > Key Bindings – User
pour permettre Emmet fonctionnalité qui ressemble à ceci:
{
"keys": ["tab"],
"command": "expand_abbreviation_by_tab",
"context": [
{
"operand": "source.js.jsx",
"operator": "equal",
"match_all": true,
"key": "selector"
}
]
}
Cet extrait de code qui ne fonctionne pas avec la sublime-réagir paquet. Il semble être quelque chose à modifier avec les touches, mais une première lecture de l'Sublime de la documentation n'a donné aucun éclairage sur le sujet. De l'aide?
- Note de côté: Quel était le problème en mettant en évidence? Si vous faites une émission sur Github j'aimerais essayer de la réparer.
Vous devez vous connecter pour publier un commentaire.
Si vous tapez
shift+super+p
dans un fichier, il vous permettra de voir la sélection en cours du cadre en bas à gauche.Le premier mot est toujours la base du type de fichier. (
source.js
,text.html
) Dans le cas de la JSX j'ai choisi de changer cesource.js.jsx
. C'est parce que, avant, il est compilé JSX n'est vraiment pas le javascript, mais il a l'air assez similaire. Il y a beaucoup de réponses et le sublime de sucre que vous voulez dans JSX mais pas de JS. sublime-réagir d'autre part utilise un bon vieuxsource.js
.Donc cet extrait de code que vous avez est droit, il vous suffit de remplacer
source.js.jsx
avecsource.js
"fu"
+TAB
entraînera<fu></fu>
, pasfunction function_name () {}
comme vous le feriez normalement. Alternativement, vous pouvez utiliserCtrl
+E
plutôt queTAB
. C'est la valeur par défaut keybind pour Emmet Étendre Abréviation de commande et il peut être utilisé dans n'importe quel contexte.En avril 2015 Emmet a ajouté le support pour jsx, mais il ne fonctionne pas par défaut. Eh bien, à ma surprise, il était vraiment en train de travailler avec le
control + E
raccourci, mais je voulais utiliser leTAB
clés à développer. À la suite de la les instructions officielles a fait le tour pour moi.En gros, j'ai dû coller la commande suivante dans mon fichier de configuration des touches (
Preferences
>Key Bindings — User
):C'est le code, sans tous les commentaires, et avec le droit
SCOPE_SELECTOR
en place.^E
maintenant fonctionne hors de la boîte, pas de paramètres d'ajustement nécessaire. Incroyable.ctrl+e
mais comment faites-vous la saisie semi-automatique fermeture automatique des balises? J'aimerais taper quelque chose et puis rapidement, l'envelopper dans une auto-balise de fermeture comme<Component />
?De la JSX-SublimeText Paquet readme:
Juste étendre sur cette réponse.
Vous ne voulez pas toutes les lettres que vous écrivez pour être extensible en html. Vous pouvez définir un autre objet supplémentaire dans votre contexte, de restreindre lors de la saisie semi-automatique est appliquée. Ce code a été trouvé dans ce gist cependant j'ai modifié la Regex pour être un peu mieux.
Vous aurez également besoin d'installer les paquets RegReplace et de la Chaîne de Commandement, comme recommandé dans les gist à même d'obtenir des
span.class
à se transformer en<span className="class"></span>
Si vous souhaitez ajouter plus d'éléments pour écouter simplement les ajouter à la liste c'est à dire
(a\\b|div|span|p\\b|button|strong)
Le
\\b
fait référence à une limite de mot et s'arrête à la suite de l'expansion deabc
en<abc></abc>
simplement utiliser
ctrl+e
(cmd+e
sur mac ) au lieu de l'onglet pour obtenir emmet travail à l'intérieur de votre jsx.par exemple, si je développez (à l'aide de
ctrl+e
)puis-je obtenir