Emmet: Emmet pour CSS-en-JS

Créé le 25 août 2017  ·  26Commentaires  ·  Source: emmetio/emmet

Existe-t-il un moyen ou un plugin (vscode/atom) d'utiliser emmet avec css-in-js, comme glamor , glamorous ou des styles bruts ?

{
  display: 'flex',
  fontSize: '16px',
  marginTop: '10px',
}

S'il n'existe pas, ce problème pourrait être une demande de fonctionnalité.

Enhancement

Commentaire le plus utile

Je prévois de réécrire l'extension VSCode dans un avenir proche pour prendre en charge toutes les fonctionnalités d'Emmet

Отправлено с iPhone

2 mai 2020 г., à 15:25, Thomas [email protected] написал(à):

En tant que
Une chance d'essayer cela dans VS Code ?


Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub ou désabonnez-vous.

Tous les 26 commentaires

@renatorib Avez-vous déjà trouvé une solution pour utiliser emmet pour CSS-inJS ?

non

Si vous utilisez Atom, consultez https://atom.io/packages/atom-emmet-css-in-js

pour vscode il y a deux packages :

Le second a plus d'installations mais je n'ai pas pu le faire fonctionner :/

Travailler dessus dans le cadre d'Emmet v2 : https://github.com/emmetio/emmet/tree/v2
Pouvez-vous fournir des spécifications sur le comportement souhaité (je n'utilise pas personnellement CSS-in-JS) ?

@sergeche le comportement serait très similaire :

par exemple dans un fichier .jsx , appuyer sur bgc<TAB> se développerait en ` backgroundColor: '#' - avec le curseur après le # .

Remarquer:

  1. les propriétés sont camelCased
  2. la valeur dans ce cas est une chaîne
  3. la valeur peut également être un nombre, c'est-à-dire pour opacity , nous omettons donc les guillemets, c'est-à-dire qu'appuyer sur op<TAB> se développerait en opacity:

Qu'en penses-tu?

@goldylucks oui, l'implémentation actuelle fonctionne comme ceci : https://github.com/emmetio/emmet/blob/master/test/stylesheet.ts#L167
Je pensais qu'il y avait des bizarreries comme plusieurs valeurs doivent être des tableaux ( margin: 10px 20pxmargin: [10, 20] ) ou quelque chose comme ça.

S'il s'agit principalement d'une sortie de type JSON de propriétés CSS, elle est déjà implémentée dans le nouvel Emmet

@sergeche les abréviations CSS dégradées lg() devraient-elles fonctionner dans css-in-js? Je n'arrive pas à le faire fonctionner.

@tayler-ramsay devrait fonctionner. Utilisez-vous la dernière version RC d'Emmet (v2.0.0rc-5) ?

@sergeche merci pour la réponse rapide. Je travaille dans le code VS, y a-t-il un moyen de m'assurer de la version qu'il utilise ?

Je pense que ce n'est que la v2. Je pourrais juste installer est comme une dépendance qui est bonne. Je me demandais juste si je pouvais le mettre à niveau dans le code VS. Désolé d'avoir édité ma réponse ;/

Oh, alors ce n'est pas encore disponible. La nouvelle version d'Emmet n'est disponible que dans le nouveau plugin Sublime Text

Acclamations!
Meilleures salutations,

Taylor Ramsay ({

"C'est une ligne si fine entre stupide et intelligent."

Le mercredi 30 octobre 2019 à 10 h 15, Sergey Chikuyonok [email protected]
a écrit:

Oh, alors ce n'est pas encore disponible. La nouvelle version d'Emmet n'est disponible qu'en
nouveau plug-in Sublime Text


Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/emmetio/emmet/issues/512?email_source=notifications&email_token=ABIQ3EJ6D2Z4ZLBO4UEWQ4DQRGJH5A5CNFSM4DYL4R72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECUK2HI7#issuecom,5
ou désabonnez-vous
https://github.com/notifications/unsubscribe-auth/ABIQ3EIQ3SNIWMCE4WE3ZADQRGJH5ANCNFSM4DYL4R7Q
.

La prise en charge des littéraux de modèles CSS serait également excellente.

Par exemple

const style = css`
  background-color: red;
  /* Auto-expand css props */
`;

Edit: peu importe, j'avais juste besoin d'installer l' extension vscode-styled-components .

Merci!

C'est bien! S'il vous plaît, @sergeche , faites-moi savoir si je peux vous aider avec cette fonctionnalité.

J'ai rendu Emmet 2.0 accessible au public hier (juste la partie principale elle-même), elle est disponible dans les éditeurs Sublime Text, CodeMirror et Nova. Vous pouvez me donner des extraits de code avec des cas d'utilisation réels afin que je puisse régler l'éditeur pour une meilleure détection du contexte.

Par exemple, dans JS(X), les abréviations doivent être précédées de < afin de ne pas distraire les utilisateurs avec de fausses correspondances. Par exemple, vous devriez écrire quelque chose comme <div.my-class . Je peux créer un préfixe personnalisé afin que vous puissiez clairement indiquer que l'abréviation que vous tapez doit être développée en tant qu'objet CSS littéral. Quelque chose comme |m10+p5

C'est génial! Quant aux extraits de code, cela dépend du CSS-in-JS que vous utilisez (et même de la façon dont vous l'avez configuré). L'exemple original de ce numéro est un bon exemple (j'ai modifié le margin ):

{
  display: 'flex',
  fontSize: '16px',
  margin: '10px 5px',
}

Vous pouvez également faire quelque chose comme ça et obtenir les mêmes résultats (au moins dans JSS):

{
  display: 'flex',
  fontSize: 16,
  margin: [[5, 10]],
}

Puisqu'il existe de nombreuses variantes de CSS-in-JS, je pense que la valeur par défaut la plus sûre serait d'utiliser des valeurs entre guillemets comme dans le premier exemple.

Une chance d'essayer cela dans VS Code ?

Je prévois de réécrire l'extension VSCode dans un avenir proche pour prendre en charge toutes les fonctionnalités d'Emmet

Отправлено с iPhone

2 mai 2020 г., à 15:25, Thomas [email protected] написал(à):

En tant que
Une chance d'essayer cela dans VS Code ?


Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub ou désabonnez-vous.

Salut 👋
D'après la conversation ci-dessus, il semble qu'Emmet prenne en charge la syntaxe d'objet CSS dans les fichiers .js , mais cela n'est pas encore pris en charge dans VS Code.

Est-ce exact ? ☝️

J'ai cherché sur Google mais je n'ai pas trouvé de réponse claire.
@sergeche Merci beaucoup pour votre travail sur cette fonctionnalité !

Oui, la nouvelle version d'Emmet (déjà dans VSCode) prend déjà en charge la sortie en tant que propriétés JSON. Il nécessite un support supplémentaire du plugin lui-même

Hé c'est génial ! Je n'ai pas encore compris comment le faire fonctionner.

Il nécessite un support supplémentaire du plugin lui-même

☝️ Pouvez-vous développer un peu cela ou m'orienter dans la bonne direction ? Existe-t-il des docs quelque part sur la façon de le faire fonctionner?
Merci encore!

Définir emmet.includeLanguages sur "javascript": "css" me donne un CSS standard (pas une syntaxe d'objet).
Le régler sur "javascript": "javascriptreact" essaie de transformer le CSS en JSX.

Existe-t-il un autre paramètre que je devrais utiliser pour obtenir la syntaxe d'objet CSS ? Je ne trouve nulle part la liste des options possibles. Ici vous pouvez voir mon settings.json et le problème que j'ai :

https://user-images.githubusercontent.com/19367659/113518218-ebbfbb00-9552-11eb-8963-eadef0b15f06.mp4

Pour être clair, j'espère taper ceci dans mon fichier .js :
d:f+jc:c+ai:c+mt10

Et obtenez cette sortie :

display: 'flex',
justifyContent: 'center',
alignItems: 'center',
marginTop: 10,

Cette option doit être définie sur true : https://github.com/emmetio/emmet/blob/51757fc77ee2477c2e2cc6abeff44e64c8a85eec/src/config.ts#L257

Je ne sais pas comment définir les options Emmet dans le plugin VSCode (je ne suis pas le responsable)

Je pense que tu as raison @sergeche , as-tu trouvé le moyen d'ajouter la config à VSCode ?

@josegutierro n'a pas encore essayé. Je suppose que ce n'est pas seulement une option dans le plugin VSCode, il doit être correctement pris en charge par le plugin pour fonctionner.

Merci @sergeche pour le moment j'utilise cette extension nativeEmmet . N'est-ce pas vraiment Emmet mais il y a beaucoup d'extraits avec complétion de tabulation. Voici la liste complète

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

Questions connexes

sergeche picture sergeche  ·  25Commentaires

planetoftheweb picture planetoftheweb  ·  3Commentaires

nicothin picture nicothin  ·  18Commentaires

corysimmons picture corysimmons  ·  5Commentaires

midgethoen picture midgethoen  ·  8Commentaires