'React, Emmet, Visual Studio Code, and CSS-Modules
Is there a way to configure emmet in visual studio code to use React's CSS modules?
When I type... div.container
and hit tab, it becomes <div className="container"></div>
The problem here is that it's not using CSS Modules. I'd like it to become this:
<div className={styles.container}></div>
Is there a way to get this functionality in VS code?
Solution 1:[1]
Yes you can do it, but I think you must create your own SNIPPET. From VSCODE documentation:
ON MAC: Code -> Preferences -> User Snippets and call it whatever you want
When you open that snippet file look on this:
{
"For_Loop": {
"prefix": "for",
"scope": "javascript,typescript",
"body": [
"for (const ${2:element} of ${1:array}) {",
"\t$0",
"}"
],
"description": "For Loop"
}
}
You can do many placeholders or any other variables, here is the link: https://code.visualstudio.com/docs/editor/userdefinedsnippets
I think you may use this variable
TM_CURRENT_LINE - The contents of the current line
I hope it helps
Solution 2:[2]
I don't think emmet supports CSS modules yet. Even then, you'd still have to have a styles
object that the editor won't be able to infer. This is very doable but I think the best approach would be using a custom babel plugin.
Solution 3:[3]
You can use Emmet div.{styles.container}
=> tab
and get <div className={styles.container}></div>
vs code settings
"editor.autoClosingBrackets": "always",
"emmet.includeLanguages": {
"javascript": "javascriptreact",
"typescript": "typescriptreact"
},
Solution 4:[4]
??"emmet.includeLanguages": {
"javascript": "javascriptreact"
}
will enable emmet inside jsx but not CSS modules.
Solution 5:[5]
?By using emmet plugin / following the below steps in your VS Code can resolve the issue.
?1) Hold ctrl+shift+p
in your VS Code
?2) Type settings.json and choose Open Setting (JSON)
?3) Once you have open the settings.json file add the below lines to the file.
??"emmet.includeLanguages": {
"javascript": "javascriptreact"
}
?? Hope it helps!
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Freestyle09 |
Solution 2 | Jose Munoz |
Solution 3 | Twiling Life |
Solution 4 | Kristian Kristiansen |
Solution 5 | Kishore Kumar Govindaradjou |