Most of the time, I find myself forgetting the snippets I've set up just a week later. However, there are only a handful that are used almost daily in my workflow.
1. Directory name and file name in both camelCase and PascalCase
I've noticed that I often end up typing the name of a new component multiple times when creating components:
- Typing the name of the folder or file
- Typing the name of the actual function
- Typing the className
For example:
// MyAwesomeTitle.tsx
…
export function MyAwesomeTitle() {
return <h1 className={styles.myAwesomeTitle}>
…
</h1>
}
To give my fingers a break, I've crafted some easy-to-remember snippets:
-
Dir: current directory/folder in PascalCase -
dir: current directory/folder in camelCase -
File: current file in PascalCase -
file: current file in camelCase
These snippets are perfect when you're working within a directory and need to name your components consistently. The Dirname camelcase snippet, activated with the prefix dir, automatically converts the directory name to camelCase. Similarly, the Dirname pascalcase snippet, with the prefix Dir, converts to PascalCase. Same for file and File.
2. Shortcuts for class names
In addition to the above, I regularly use two more snippets that are incredibly handy when working with class names in React. The first one, cla makes assigning a CSS Module class name effortless.
The second snippet, cn, does the same but in addition provides a function call to concat class names.
-
cla: expands toclassName={styles.CURSOR} -
cn: expands toclassName={cn(styles.CURSOR)}
Usage
The simplicity of these snippets makes them easy to remember and use.
To start using them just copy this json to your …/snippets/global.code-snippets.
💡 You can easily open/create this file by
ctrl+shift+P→Snippets: Configure User Snippets.
{
"Dirname camelcase": {
"prefix": "dir",
"body": ["${TM_DIRECTORY/^.+[\\/\\\\]+(.*)$/${1:/camelcase}/}"]
},
"Filename camelcase": {
"prefix": "file",
"body": ["${TM_FILENAME_BASE/(.*)/${1:/camelcase}/}"]
},
"Dirname pascalcase": {
"prefix": "Dir",
"body": ["${TM_DIRECTORY/^.+[\\/\\\\]+(.*)$/${1:/pascalcase}/}"]
},
"Filename pascalcase": {
"prefix": "File",
"body": ["${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}"]
},
"className": {
"scope": "typescriptreact,javascriptreact,javascript",
"prefix": "cla",
"body": "className={styles.${1}$0}"
},
"className cn": {
"scope": "typescriptreact,javascriptreact,javascript",
"prefix": "cn",
"body": "className={cn(styles.${1}$0)}"
}
}
I really love using these snippets. I'm curious - what snippets do you find yourself really using regularly? I'd love to hear about them.
Happy coding!
Top comments (0)