<aside> ๐ก Snippets๋?
Ctrl
+Space
)์ ๋ค๋ฅธ ์ ์๋ค๊ณผ ํจ๊ป ๋ํ๋จ
</aside>VS Code์๋ JavaScript, TypeScript, Markdown ๋ฐ PHP์ ๊ฐ์ ์ฌ๋ฌ ์ธ์ด์ ๋ํ snippet์ด ๋ด์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ฉํ๊ณ ์์์
Command Palette(Ctrl
+Shift
+P
) ์ด๊ธฐ
Snippets: Configure User Snippets ๊ฒ์ & ์ ํ
ํน์ ํ ์ธ์ด์์ ์ฌ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ธ์ด๋ฅผ ์ฐพ์์ ์ ํ, ๋ชจ๋ ์ธ์ด์ ๋ํด ์ฌ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ New Global Snippets file(๋๋ ์ด๋ฏธ ์กด์ฌํ๋ global file) ์ ํ
Snippet file์ JSON์ผ๋ก ์์ฑ๋จ (C-style ์ฃผ์, ๋๋ถ๋ถ์ TextMate ๋ฌธ๋ฒ, ์ฝ์ context์ ๋ง๋ ๊ณต๋ฐฑ ํฌ๋งทํ ์ง์)
ํ์
"snippet name": {
"prefix": ["trigger-word1", "trigger-word2"],
"body": ["content"],
"description": "optional description"
}
snippet name
description
์ด ์ ๊ณต๋์ง ์์ ๋ IntelliSense๋ฅผ ํตํด ํ์๋จprefix
"tw"
๋ "trigger-word"
๋งค์นญ๋จbody
description
(optional)
JavaScript์ for
loop ์์
// in file 'Code/User/snippets/javascript.json'
{
"For Loop": {
"prefix": ["for", "for-const"],
"body": ["for (const ${2:element} of ${1:array}) {", "\\t$0", "}"],
"description": "A for loop."
}
}
body
์์ 3๊ฐ์ placeholder๋ฅผ ์ฌ์ฉํ๊ณ ์์
${1:array}
, ${2:element}
, $0
:
๋ค์ ์ค๋ ๋ฌธ์์ด์ default textTab
์ผ๋ก ๋ค์ placeholder๋ก ๋น ๋ฅด๊ฒ jump ๊ฐ๋ฅ<aside> ๐ก
snippet ์ ์๋ฅผ ๋ง๋ค์ด์ฃผ๋ ์ ์ฉํ ๋๊ตฌ
</aside>
snippet์
body
์์๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณต
$i
๋ก editor ์ปค์์ ์์น ์ง์ ๊ฐ๋ฅi
1
๋ถํฐ ์์ํด์ ์ค๋ฆ์ฐจ์0
์ ํญ์ ๋ง์ง๋ง์ ์ค๋ optional special case โ ์ง์ ๋ ์์น์์ ์ปค์์ ํจ๊ป snippet mode ์ข
๋ฃ${1:foo}
์ฒ๋ผ ๊ฐ์ด ์๋ tapstop${1:another ${2:placeholder}
์ ๊ฐ์ด ์ค์ฒฉ ๊ฐ๋ฅ