Visual Studio Code User-Snippets Variables
With $name or ${name:default}, you can insert the value of a variable.
When a variable isntset, its defaultor the empty stringisinserted.
When a variable isunknown(that is, its name isnt defined)
the name of the variable isinsertedand it istransformedinto a placeholder.
The following variables can be used:
TM_SELECTED_TEXT The currently selected text or the empty string
TM_CURRENT_LINE The contents of the current line
TM_CURRENT_WORD The contents of the word under cursor or the empty string
TM_LINE_INDEX The zero-index based line number
TM_LINE_NUMBER The one-index based line number
TM_FILENAME The filename of the current document
TM_FILENAME_BASE The filename of the current document without its extensions
TM_DIRECTORY The directory of the current document
TM_FILEPATH The full file path of the current document
RELATIVE_FILEPATH The relative (to the opened workspace or folder) file path of the current document
CLIPBOARD The contents of your clipboard
WORKSPACE_NAME The name of the opened workspace or folder
WORKSPACE_FOLDER The path of the opened workspace or folder
CURSOR_INDEX The zero-index based cursor number
CURSOR_NUMBER The one-index based cursor number
For inserting the current date and time:
CURRENT_YEAR The current year
CURRENT_YEAR_SHORT The current year's last two digits
CURRENT_MONTH The month astwo digits (example '02')
CURRENT_MONTH_NAME The full name of the month (example 'July')
CURRENT_MONTH_NAME_SHORT The short name of the month (example 'Jul')
CURRENT_DATE The day of the month astwo digits (example '08')
CURRENT_DAY_NAME The name of day (example 'Monday')
CURRENT_DAY_NAME_SHORT The short name of the day (example 'Mon')
CURRENT_HOUR The current hour in24-hour clock format
CURRENT_MINUTE The current minute astwo digits
CURRENT_SECOND The current second astwo digits
CURRENT_SECONDS_UNIX The number of seconds since the Unix epoch
For inserting random values:
RANDOM 6 random Base-10 digits
RANDOM_HEX 6 random Base-16 digits
UUID A Version 4 UUID
For inserting line orblock comments, honoring the current language:
BLOCK_COMMENT_START Example output:in PHP /* or in HTML <!--
BLOCK_COMMENT_END Example output: in PHP */orin HTML -->
LINE_COMMENT Example output:in PHP //
Hit > shift + command + p and type snippets
Select Preferences: Open User Snippets
Choose the language type for which you want to add the custom snippet
vscode has comments to explain on how to adda snippet,asdescribedon:> vsdoc
Lets say, we want to open custom snippets for the language GO. Then we can do:
Hit > command +p
Type: go.json + enter And you land on the custom snippet page
Snippets are defined in a JSON format and stored in a per user (languageId).json file. For example, Markdown snippets go in a markdown.json file.
Update new tools:
Snippet generator site: https://snippet-generator.app/
/*To create or edit your own snippets, select User Snippets
under File > Preferences > User Snippets (Code > Preferences on macOS),
and then select the language for which the snippets should appear*/// Snippets are written in JSON Example:{"Your Snippet Name":{"prefix":"ysn","body":["//Here you type all the code that should appear","//Separating each line","//Remember to add tabs with "]}}
Visual Studio Code, customize / make your own code snippets
For tutorial: https://code.visualstudio.com/docs/editor/userdefinedsnippets#_create-your-own-snippets
Premade snippets for Python: https://github.com/microsoft/vscode-python/blob/2020.12.424452561/snippets/python.json
// in file 'Code/User/snippets/javascript.json' for only JS files{"For Loop":{"prefix":["for","for-const"],"body":["for (const ${2:element} of ${1:array}) {"," $0","}"],"description":"A for loop."}}// in file 'Code/User/snippets/fileName.code-snippets' for Global Snippets{"For Loop":{"scope":"javascript,typescript,php,html","prefix":["for","for-const"],"body":["for (const ${2:element} of ${1:array}) {"," $0","}"],"description":"A for loop."}}
{"Include General Namespace":{"prefix":"Namesp","body":["using System;","using System.Collections.Generic;","using System.Linq;","using System.Text;"],"description":"For Including General Namespace"}}