Skip to content

Instantly share code, notes, and snippets.

@JeongInyoung
Created February 13, 2019 07:48
Show Gist options
  • Save JeongInyoung/bd458867b7b758c10f703c7657a7dc31 to your computer and use it in GitHub Desktop.
Save JeongInyoung/bd458867b7b758c10f703c7657a7dc31 to your computer and use it in GitHub Desktop.
Visual Studio Code Settings Sync Gist
{"lastUpload":"2019-02-13T07:48:59.275Z","extensionVersion":"v3.2.4"}
[
{
"metadata": {
"id": "d3836729-9cc1-42c1-b2af-d50071f57d29",
"publisherId": "formulahendry.auto-close-tag",
"publisherDisplayName": "formulahendry"
},
"name": "auto-close-tag",
"publisher": "formulahendry",
"version": "0.5.6"
},
{
"metadata": {
"id": "6e440e71-8ed9-4f25-bb78-4b13096b8a03",
"publisherId": "formulahendry.auto-rename-tag",
"publisherDisplayName": "formulahendry"
},
"name": "auto-rename-tag",
"publisher": "formulahendry",
"version": "0.0.15"
},
{
"metadata": {
"id": "5178733e-4b02-4829-95c5-1ce970847c23",
"publisherId": "teabyii.ayu",
"publisherDisplayName": "teabyii"
},
"name": "ayu",
"publisher": "teabyii",
"version": "0.18.0"
},
{
"metadata": {
"id": "f583eafd-aa0d-4ccb-8f44-d1e610389660",
"publisherId": "CoenraadS.bracket-pair-colorizer",
"publisherDisplayName": "CoenraadS"
},
"name": "bracket-pair-colorizer",
"publisher": "CoenraadS",
"version": "1.0.61"
},
{
"metadata": {
"id": "e337c67b-55c2-4fef-8949-eb260e7fb7fd",
"publisherId": "Shan.code-settings-sync",
"publisherDisplayName": "Shan"
},
"name": "code-settings-sync",
"publisher": "Shan",
"version": "3.2.4"
},
{
"metadata": {
"id": "532533c9-a894-4a58-9eee-bbfbe7c06f71",
"publisherId": "mikestead.dotenv",
"publisherDisplayName": "mikestead"
},
"name": "dotenv",
"publisher": "mikestead",
"version": "1.0.1"
},
{
"metadata": {
"id": "4de763bd-505d-4978-9575-2b7696ecf94e",
"publisherId": "eamodio.gitlens",
"publisherDisplayName": "eamodio"
},
"name": "gitlens",
"publisher": "eamodio",
"version": "9.5.0"
},
{
"metadata": {
"id": "a2cec723-5349-460d-9de9-0fd1f8d3456f",
"publisherId": "xabikos.JavaScriptSnippets",
"publisherDisplayName": "xabikos"
},
"name": "JavaScriptSnippets",
"publisher": "xabikos",
"version": "1.7.2"
},
{
"metadata": {
"id": "b63c44fd-0457-4696-99e9-dbfdf70d77de",
"publisherId": "ritwickdey.LiveServer",
"publisherDisplayName": "ritwickdey"
},
"name": "LiveServer",
"publisher": "ritwickdey",
"version": "5.5.1"
},
{
"metadata": {
"id": "f154cf38-02ea-4253-b9c8-0e89def0b10f",
"publisherId": "wibblemonkey.markdown-auto-toc",
"publisherDisplayName": "wibblemonkey"
},
"name": "markdown-auto-toc",
"publisher": "wibblemonkey",
"version": "0.3.0"
},
{
"metadata": {
"id": "5cbdf58a-694a-4aba-af08-61d00842eb03",
"publisherId": "bierner.markdown-preview-github-styles",
"publisherDisplayName": "bierner"
},
"name": "markdown-preview-github-styles",
"publisher": "bierner",
"version": "0.1.4"
},
{
"metadata": {
"id": "7f147721-ec06-4043-9e37-c9ffbecbccd1",
"publisherId": "whizkydee.material-palenight-theme",
"publisherDisplayName": "whizkydee"
},
"name": "material-palenight-theme",
"publisher": "whizkydee",
"version": "1.9.4"
},
{
"metadata": {
"id": "26a529c9-2654-4b95-a63f-02f6a52429e6",
"publisherId": "zhuangtongfa.Material-theme",
"publisherDisplayName": "zhuangtongfa"
},
"name": "Material-theme",
"publisher": "zhuangtongfa",
"version": "2.18.2"
},
{
"metadata": {
"id": "6f35c257-7fd5-4bc2-9cd1-01976589c17a",
"publisherId": "arcticicestudio.nord-visual-studio-code",
"publisherDisplayName": "arcticicestudio"
},
"name": "nord-visual-studio-code",
"publisher": "arcticicestudio",
"version": "0.6.0"
},
{
"metadata": {
"id": "dff6b801-247e-40e9-82e8-8c9b1d19d1b8",
"publisherId": "christian-kohler.npm-intellisense",
"publisherDisplayName": "christian-kohler"
},
"name": "npm-intellisense",
"publisher": "christian-kohler",
"version": "1.3.0"
},
{
"metadata": {
"id": "fef63133-dae3-40fb-b81d-6da7617b4b1e",
"publisherId": "techer.open-in-browser",
"publisherDisplayName": "techer"
},
"name": "open-in-browser",
"publisher": "techer",
"version": "2.0.0"
},
{
"metadata": {
"id": "a41c1549-4053-44d4-bf30-60fc809b4a86",
"publisherId": "christian-kohler.path-intellisense",
"publisherDisplayName": "christian-kohler"
},
"name": "path-intellisense",
"publisher": "christian-kohler",
"version": "1.4.2"
},
{
"metadata": {
"id": "96fa4707-6983-4489-b7c5-d5ffdfdcce90",
"publisherId": "esbenp.prettier-vscode",
"publisherDisplayName": "esbenp"
},
"name": "prettier-vscode",
"publisher": "esbenp",
"version": "1.8.1"
},
{
"metadata": {
"id": "e52bce95-a629-455f-8626-e7301b9e372a",
"publisherId": "robinbentley.sass-indented",
"publisherDisplayName": "robinbentley"
},
"name": "sass-indented",
"publisher": "robinbentley",
"version": "1.5.1"
},
{
"metadata": {
"id": "529697b9-b343-4b1c-ba2f-f5ef692132d4",
"publisherId": "ms-vscode.sublime-keybindings",
"publisherDisplayName": "ms-vscode"
},
"name": "sublime-keybindings",
"publisher": "ms-vscode",
"version": "4.0.0"
},
{
"metadata": {
"id": "17dca0d1-31da-4bef-8b7e-e3ca8c7dc8ef",
"publisherId": "cg-cnu.super-new-file",
"publisherDisplayName": "cg-cnu"
},
"name": "super-new-file",
"publisher": "cg-cnu",
"version": "0.0.4"
},
{
"metadata": {
"id": "4ae6dc82-7981-4f10-bd81-2d72aec37f39",
"publisherId": "jock.svg",
"publisherDisplayName": "jock"
},
"name": "svg",
"publisher": "jock",
"version": "0.1.4"
},
{
"metadata": {
"id": "b4e38a00-351e-4981-b9b4-2174c7865c2f",
"publisherId": "sidthesloth.svg-snippets",
"publisherDisplayName": "sidthesloth"
},
"name": "svg-snippets",
"publisher": "sidthesloth",
"version": "1.0.1"
},
{
"metadata": {
"id": "68cb6e9e-ca32-48eb-b1a6-11ab6f532ab1",
"publisherId": "sculove.translator",
"publisherDisplayName": "sculove"
},
"name": "translator",
"publisher": "sculove",
"version": "1.1.0"
},
{
"metadata": {
"id": "2f5dd8cb-d251-4d70-abfe-ddebcb077483",
"publisherId": "octref.vetur",
"publisherDisplayName": "octref"
},
"name": "vetur",
"publisher": "octref",
"version": "0.15.0"
},
{
"metadata": {
"id": "901d9ffe-2718-416c-9edc-2607e7528d1a",
"publisherId": "mrmlnc.vscode-attrs-sorter",
"publisherDisplayName": "mrmlnc"
},
"name": "vscode-attrs-sorter",
"publisher": "mrmlnc",
"version": "2.1.0"
},
{
"metadata": {
"id": "583b2b34-2c1e-4634-8c0b-0b82e283ea3a",
"publisherId": "dbaeumer.vscode-eslint",
"publisherDisplayName": "dbaeumer"
},
"name": "vscode-eslint",
"publisher": "dbaeumer",
"version": "1.8.0"
},
{
"metadata": {
"id": "c727ab43-8d12-4f26-9648-f1d91035c9b6",
"publisherId": "NuclleaR.vscode-extension-auto-import",
"publisherDisplayName": "NuclleaR"
},
"name": "vscode-extension-auto-import",
"publisher": "NuclleaR",
"version": "1.4.3"
},
{
"metadata": {
"id": "eedfd044-d5ac-4389-973d-3ac1fdb98ad5",
"publisherId": "kisstkondoros.vscode-gutter-preview",
"publisherDisplayName": "kisstkondoros"
},
"name": "vscode-gutter-preview",
"publisher": "kisstkondoros",
"version": "0.16.5"
},
{
"metadata": {
"id": "9ccc1dd7-7ec4-4a46-bd4f-7d7b8b9d322a",
"publisherId": "robertohuertasm.vscode-icons",
"publisherDisplayName": "robertohuertasm"
},
"name": "vscode-icons",
"publisher": "robertohuertasm",
"version": "8.1.0"
},
{
"metadata": {
"id": "c46b0018-f317-4b6c-a785-d2039b27338f",
"publisherId": "wix.vscode-import-cost",
"publisherDisplayName": "wix"
},
"name": "vscode-import-cost",
"publisher": "wix",
"version": "2.12.0"
},
{
"metadata": {
"id": "7c15d326-cfdd-4932-9409-634b512daebe",
"publisherId": "MS-CEINTL.vscode-language-pack-ko",
"publisherDisplayName": "MS-CEINTL"
},
"name": "vscode-language-pack-ko",
"publisher": "MS-CEINTL",
"version": "1.31.4"
},
{
"metadata": {
"id": "77b70e30-3534-4098-9d6d-382a96babca4",
"publisherId": "dkundel.vscode-new-file",
"publisherDisplayName": "dkundel"
},
"name": "vscode-new-file",
"publisher": "dkundel",
"version": "4.0.2"
},
{
"metadata": {
"id": "ae9e3eb0-3357-4cc0-90ee-598d2d384757",
"publisherId": "eg2.vscode-npm-script",
"publisherDisplayName": "eg2"
},
"name": "vscode-npm-script",
"publisher": "eg2",
"version": "0.3.5"
},
{
"metadata": {
"id": "6f5d4f30-67aa-4151-80c0-1bbe8ca5f9db",
"publisherId": "cssho.vscode-svgviewer",
"publisherDisplayName": "cssho"
},
"name": "vscode-svgviewer",
"publisher": "cssho",
"version": "1.4.7"
},
{
"metadata": {
"id": "97a08c5f-6667-4242-a5c5-045dfb6bd4b9",
"publisherId": "wayou.vscode-todo-highlight",
"publisherDisplayName": "wayou"
},
"name": "vscode-todo-highlight",
"publisher": "wayou",
"version": "1.0.4"
},
{
"metadata": {
"id": "876e8f93-74d0-4f4f-91b7-34a09f19f444",
"publisherId": "VisualStudioExptTeam.vscodeintellicode",
"publisherDisplayName": "VisualStudioExptTeam"
},
"name": "vscodeintellicode",
"publisher": "VisualStudioExptTeam",
"version": "1.1.3"
},
{
"metadata": {
"id": "3299d342-46cf-4aee-9016-5bd02a7ccb90",
"publisherId": "ishiyama.vue-autoimport",
"publisherDisplayName": "ishiyama"
},
"name": "vue-autoimport",
"publisher": "ishiyama",
"version": "1.0.1"
},
{
"metadata": {
"id": "6f99be10-9aad-4b1c-8691-bcae8ae7b104",
"publisherId": "dariofuzinato.vue-peek",
"publisherDisplayName": "dariofuzinato"
},
"name": "vue-peek",
"publisher": "dariofuzinato",
"version": "1.0.2"
},
{
"metadata": {
"id": "d71fddb0-5a5a-4e17-9b96-9d30aca2afe3",
"publisherId": "shekhardtu.vuejspack",
"publisherDisplayName": "shekhardtu"
},
"name": "vuejspack",
"publisher": "shekhardtu",
"version": "1.3.2"
}
]
[
{
"key": "alt+1",
"command": "workbench.view.explorer"
},
{
"key": "alt+2",
"command": "workbench.view.search"
},
{
"key": "alt+3",
"command": "workbench.view.scm"
},
{
"key": "alt+4",
"command": "workbench.view.debug"
},
{
"key": "alt+5",
"command": "workbench.view.extensions"
},
{
"key": "alt+a",
"command": "editor.action.toggleWordWrap"
}
]
{
// Defines VS Code's display language.
// See https://go.microsoft.com/fwlink/?LinkId=761051 for a list of supported languages.
"locale": "ko" // Changes will not take effect until VS Code has been restarted.
}
{
///////////////////////
// 에디터 설정
///////////////////////
"editor.fontSize": 18,
"editor.fontFamily": "Consolas, 'Courier New', monospace",
"editor.tabSize": 2,
"editor.renderWhitespace": "all",
"editor.renderControlCharacters": true,
"editor.cursorStyle": "line-thin",
"editor.multiCursorModifier": "ctrlCmd",
"editor.wordWrap": "on",
"editor.lineHeight": 20,
"editor.letterSpacing": -0.05,
"editor.lineNumbers": "on",
"editor.smoothScrolling": true,
"editor.roundedSelection": true,
"editor.minimap.enabled": false,
"editor.autoIndent": false,
"editor.renderIndentGuides": true,
"editor.snippetSuggestions": "top",
"editor.cursorBlinking": "phase",
"editor.mouseWheelZoom": false,
"editor.stablePeek": true,
"editor.matchBrackets": false,
"editor.cursorSmoothCaretAnimation": true,
"editor.formatOnSave": true,
"editor.formatOnType": true,
"editor.formatOnPaste": false,
"editor.detectIndentation": true,
"editor.insertSpaces": true,
"explorer.confirmDragAndDrop": false,
"explorer.sortOrder": "type",
///////////////////////
// 워크벤치 설정
///////////////////////
"workbench.startupEditor": "none",
"workbench.iconTheme": "ayu",
"workbench.sideBar.location": "left",
"workbench.statusBar.visible": true,
"workbench.activityBar.visible": true,
"workbench.fontAliasing": "antialiased",
"workbench.commandPalette.preserveInput": true,
"workbench.colorTheme": "Ayu Mirage Bordered",
///////////////////////
// 창(Window) 설정
///////////////////////
"window.newWindowDimensions": "maximized",
///////////////////////
// 파일(File) 설정
///////////////////////
"files.exclude": {
"build": true,
"config": true,
"**/node_modules": true,
".gitignore": true,
".eslintignore": true,
".eslintrc.js": false,
".babelrc": true,
".editorconfig": true,
".postcssrc.js": true,
".jshintrc": true,
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/.DS_Store": true,
"**/.vscode": true,
"**/CVS": true,
},
"files.associations": {
"*.vue": "vue"
},
"files.encoding": "utf8",
"files.trimTrailingWhitespace": true,
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
"**/node_modules/**": true,
"**/__/**": true
},
"files.defaultLanguage": "html",
"files.insertFinalNewline": false,
///////////////////////
// 검색(Search) 설정
///////////////////////
"search.exclude": {
"**/node_modules": true,
"**/bower_components": true,
"**/__": true
},
///////////////////////
// 터미널 설정
///////////////////////
"terminal.external.osxExec": "iTerm.app",
"terminal.integrated.lineHeight": 1.2,
"terminal.integrated.cursorBlinking": true,
"terminal.integrated.cursorStyle": "line",
"terminal.integrated.fontFamily": "",
"terminal.integrated.fontSize": 16,
///////////////////////
// 원격분석 설정
///////////////////////
"telemetry.enableCrashReporter": false,
"telemetry.enableTelemetry": false,
///////////////////////
// 기본 구성 재정의
///////////////////////
"[html]": {
"editor.wordWrap": "on",
"editor.tabSize": 2
},
"[svg]": {
"editor.insertSpaces": true,
"editor.wordWrap": "on",
"editor.tabSize": 2
},
"[css]": {
"editor.wordWrap": "on",
"editor.tabSize": 2
},
"[javascript]": {
"editor.wordWrap": "on",
"editor.tabSize": 2
},
"[typescript]": {
"editor.wordWrap": "on",
"editor.tabSize": 2
},
"[vue]": {
"editor.wordWrap": "on",
"editor.tabSize": 2
},
"[markdown]": {
"editor.wordWrap": "on",
"editor.quickSuggestions": true
},
"html.format.wrapAttributes": "force-expand-multiline",
///////////////////////
// JavaScript 설정
///////////////////////
"javascript.implicitProjectConfig.experimentalDecorators": true,
"javascript.implicitProjectConfig.checkJs": true,
"javascript.format.insertSpaceAfterConstructor": true,
"javascript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": true,
"javascript.format.placeOpenBraceOnNewLineForFunctions": true,
"javascript.validate.enable": false,
///////////////////////
// TypeScript 설정
///////////////////////
// 자동 입력 인식에 대해 NPM이 설치되어 있는지 확인합니다.
"typescript.check.npmIsInstalled": false,
"typescript.locale": "ko",
///////////////////////
// Vetur 설정
///////////////////////
"vetur.completion.useScaffoldSnippets": true,
"vetur.format.defaultFormatterOptions": {
"prettyhtml": {
"printWidth": 80,
"singleQuote": false
}
},
///////////////////////
// Path Intellisense 설정
///////////////////////
"path-intellisense.extensionOnImport": true,
"path-intellisense.autoSlashAfterDirectory": true,
///////////////////////
// Emmet 설정
///////////////////////
"emmet.showExpandedAbbreviation": "always",
"emmet.showAbbreviationSuggestions": true,
"emmet.triggerExpansionOnTab": true,
"emmet.includeLanguages": {
"vue-html": "html",
"vue": "css"
},
"emmet.variables": {
"lang": "ko-KR",
"charset": "UTF-8"
},
"emmet.extensionsPath": "",
"emmet.syntaxProfiles": {},
"emmet.preferences": {},
"emmet.showSuggestionsAsSnippets": true,
///////////////////////
// ESLint 설정
///////////////////////
"eslint.enable": true,
"eslint.autoFixOnSave": true,
"eslint.alwaysShowStatus": true,
"eslint._legacyModuleResolve": true,
"eslint.packageManager": "npm",
"eslint.run": "onSave",
"eslint.validate": [
{
"language": "javascript",
"autoFix": true
},
{
"language": "vue",
"autoFix": true
},
"javascriptreact"
],
///////////////////////
// LiveServer 설정
///////////////////////
"liveServer.settings.donotVerifyTags": true,
"liveServer.settings.port": 8000,
"liveServer.settings.donotShowInfoMsg": true,
///////////////////////
// AdvancedNewFile 설정
///////////////////////
"newFile.defaultFileExtension": ".js",
"newFile.showPathRelativeTo": "project",
"newFile.fileTemplates": {
"practice": "/practice"
},
"newFile.expandBraces": true,
///////////////////////
// Browser 설정
///////////////////////
"open-in-browser.default": "chrome",
"diffEditor.ignoreTrimWhitespace": true,
///////////////////////
// Auto Import 설정
///////////////////////
"autoimport.showNotifications": true,
"autoimport.autoComplete": false,
///////////////////////
// Markdown Preview 설정
///////////////////////
"markdown.preview.fontSize": 16,
"markdown.preview.lineHeight": 1.5,
///////////////////////
// Settings Sync 설정
///////////////////////
"sync.gist": "",
"sync.autoUpload": false,
///////////////////////
// Prettier 설정
///////////////////////
"prettier.eslintIntegration": true,
"prettier.proseWrap": "always",
"prettier.requireConfig": true,
"prettier.singleQuote": true,
"prettier.tslintIntegration": true,
"javascript.format.enable": false,
"prettier.trailingComma": "es5",
/////////////////////////////////////////
// Sorting HTML and Jade attributes 설정
/////////////////////////////////////////
"attrsSorter.order": [
"is",
"v-for",
"v-if",
"v-else-if",
"v-else",
"v-show",
"v-cloak",
"v-once",
"v-pre",
"id",
"ref",
"key",
"slot",
"v-model",
"v-model.+",
"v-bind",
"v-bind.+",
":.+",
"v-text",
"v-text.+",
"v-html",
"v-html.+",
"class",
"v-on.+",
"@.+",
"name",
"data-.+",
"ng-.+",
"src",
"for",
"type",
"href",
"values",
"title",
"alt",
"role",
"aria-.+",
"$unknown$"
],
////////////////////////////////
// Bracket Pair Colorizer 설정
////////////////////////////////
"bracketPairColorizer.showBracketsInGutter": true,
"bracketPairColorizer.showHorizontalScopeLine": false,
///////////////////////
// TODO Highlight 설정
///////////////////////
"todohighlight.isEnable": true
}
{
/*
// Place your snippets for Batch here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
"Print to console": {
"prefix": "log",
"body": [
"console.log('$1');",
"$2"
],
"description": "Log output to console"
}
*/
}
{
"charset/": {
"prefix": "charset/",
"body": "\n@charset \"${1:utf-8}\";\n$0\n",
"description": "",
},
"acc-hidden/": {
"prefix": "acc-hidden/",
"body": ".${1:readable}-hidden {\n\toverflow: hidden;\n\tposition: absolute;\n\tclip: rect(0 0 0 0);\n\tclip: rect(0,0,0,0);\n\twidth: 1px;\n\theight: 1px;\n\tmargin: -1px;\n\tpadding: 0;\n\tborder: 0;\n}\n.${1:readable}-hidden.focusable {\n\toverflow: visible;\n\tposition: static;\n\tclip: auto;\n\twidth: auto;\n\theight: auto;\n\tmargin: 0;\n}\n$0",
"description": "",
},
"dis-block": {
"prefix": "dis-block",
"body": "display: block;",
"description": "CSS - display: block;",
},
"dis-inline-block": {
"prefix": "dis-inline-block",
"body": "display: inline-block;\nvertical-align: ${1:top};${2:\nzoom: 1;\n*display: inline; /* IE 7 이하 브라우저 핵 */}",
"description": "CSS - display: inline-block;",
},
"dis-inline": {
"prefix": "dis-inline",
"body": "display: inline;",
"description": "CSS - display: inline;",
},
"aft/": {
"prefix": "aft/",
"body": "$1:after {\n\tcontent: '$2';\n\t$0\n}",
"description": "CSS - :after",
},
"bef/": {
"prefix": "bef/",
"body": "$1:before {\n\tcontent: '$2';\n\t$0\n}",
"description": "CSS - :before",
},
"hov/": {
"prefix": "hov/",
"body": "$1:hover,\n$1:focus {\n\t$2\n}\n$0",
"description": "CSS - :hover, :focus",
},
"@key/": {
"prefix": "@key/",
"body": "@keyframes $1 {\n\t0% { $2 }\n\t100% { $3 }\n}\n$0\n",
"description": "CSS - @keyframes {}",
},
"ani-delay": {
"prefix": "ani-delay",
"body": "animation-delay: ${1:0s};",
"description": "",
},
"ani-direction": {
"prefix": "ani-direction",
"body": "animation-direction: ${1:normal|reverse|alternate|alternate-reverse};",
"description": "",
},
"ani-duration": {
"prefix": "ani-duration",
"body": "animation-duration: ${1:0.3s};",
"description": "",
},
"ani-fill-mode": {
"prefix": "ani-fill-mode",
"body": "animation-fill-mode: ${1:none|forwards|backwards|both};",
"description": "",
},
"ani-iteration-count": {
"prefix": "ani-iteration-count",
"body": "animation-iteration-count: ${1:3|infinite};",
"description": "",
},
"ani-name": {
"prefix": "ani-name",
"body": "animation-name: ${1:fadeIn};",
"description": "",
},
"ani-pla": {
"prefix": "ani-pla",
"body": "animation-play-state: ${1:running|paused};",
"description": "CSS - animation-play-state: ;",
},
"ani-timing-function": {
"prefix": "ani-timing-function",
"body": "animation-timing-function: ${1:ease};",
"description": "",
},
"ani-guide": {
"prefix": "ani-guide",
"body": "animation: ${1:name} ${2:duration} ${3:ease|linear|ease-in|ease-out|ease-in-out|cubic-bezier(<number>,<number>,<number>,<number>)} ${4:delay} ${5:infinite|<number>} ${6:normal|alternate};",
"description": "CSS - animation: ;",
},
"backface-visibility": {
"prefix": "backface-visibility",
"body": "backface-visibility: ${1:visible|hidden};",
"description": "",
},
"background-clip": {
"prefix": "background-clip",
"body": "background-clip: ${1:padding-box};",
"description": "",
},
"box-shadow": {
"prefix": "box-shadow",
"body": "box-shadow: ${1:horizontal-offset} ${2:vertical-offset} ${3:blur-radius} ${4:spread-distance} ${5:hsla(0,0%,0%,.25)};",
"description": "CSS - box-shadow: ;",
},
"box-sizing": {
"prefix": "box-sizing",
"body": "box-sizing: ${1:border-box};",
"description": "CSS - box-sizing: border-box;",
},
"calc": {
"prefix": "calc",
"body": "calc($1)",
"description": "calc: CSS 계산 함수",
},
"column-count": {
"prefix": "column-count",
"body": "column-count: ${1:3};",
"description": "",
},
"column-gap": {
"prefix": "column-gap",
"body": "column-gap: ${1:20px};",
"description": "",
},
"column-rule-color": {
"prefix": "column-rule-color",
"body": "column-rule-color: ${1:#000};",
"description": "",
},
"column-rule-style": {
"prefix": "column-rule-style",
"body": "column-rule-style: ${1:solid};",
"description": "",
},
"column-rule-width": {
"prefix": "column-rule-width",
"body": "column-rule-width: ${1:1px};",
"description": "",
},
"column-rule": {
"prefix": "column-rule",
"body": "column-rule: ${1:1px solid #000};",
"description": "",
},
"column-width": {
"prefix": "column-width",
"body": "column-width: ${1:300px};",
"description": "",
},
"columns": {
"prefix": "columns",
"body": "column-count: ${1:3};\ncolumn-gap: ${2:20px};\n",
"description": "",
},
"hyp": {
"prefix": "hyp",
"body": "-webkit-hyphens: auto;\n -moz-hyphens: auto;\n -ms-hyphens: auto;\n hyphens: auto;\n\n",
"description": "CSS - hyphens: auto;",
},
"perspective-origin": {
"prefix": "perspective-origin",
"body": "perspective-origin: ${1:50%} ${2:50%};",
"description": "",
},
"perspective": {
"prefix": "perspective",
"body": "perspective: ${1:400};",
"description": "",
},
"input-placeholder/": {
"prefix": "input-placeholder/",
"body": "::-webkit-input-placeholder {\n\t${1:color: #fff;}\n}\n:-moz-placeholder { /* Firefox 18- */\n\t${1:color: #fff;}\n}\n::-moz-placeholder { /* Firefox 19+ */\n\t${1:color: #fff;}\n}\n:-ms-input-placeholder {\n\t${1:color: #fff;}\n}\n::input-placeholder {\n\t${1:color: #fff;}\n}\n$0",
"description": "",
},
"selection/": {
"prefix": "selection/",
"body": "::-moz-selection {\n background: $1;\n text-shadow: none;\n}\n::selection {\n background: $1;\n text-shadow: none;\n}",
"description": "",
},
"text-shadow": {
"prefix": "text-shadow",
"body": "text-shadow: $1;",
"description": "",
},
"transform-3d": {
"prefix": "transform-3d",
"body": "transform-style: ${1:preserve-3d};\ntransform-origin: ${2:50%}${3: 50%};\ntransform: perspective(${4:400px}) $0",
"description": "CSS - Transform 3D",
},
"transform-rotate": {
"prefix": "transform-rotate",
"body": "transform: rotate(${1:0deg});",
"description": "",
},
"transform-scale": {
"prefix": "transform-scale",
"body": "transform: scale(${1:1});",
"description": "",
},
"transform-skew": {
"prefix": "transform-skew",
"body": "transform: skew(${1:0deg}, ${2:0deg});",
"description": "",
},
"transform-style": {
"prefix": "transform-style",
"body": "transform-style: ${1:flat|preserve-3d};",
"description": "",
},
"transform-translate": {
"prefix": "transform-translate",
"body": "transform: translate($1, $2);",
"description": "",
},
"transform": {
"prefix": "transform",
"body": "transform: ${1:rotate|scale|translate|skew};",
"description": "CSS - Transform 2D",
},
"trans-delay": {
"prefix": "trans-delay",
"body": "transition-delay: ${1:0s};",
"description": "",
},
"trans-duration": {
"prefix": "trans-duration",
"body": "transition-duration: ${1:03s};",
"description": "",
},
"trans-prop": {
"prefix": "trans-prop",
"body": "transition-property: ${1:all};",
"description": "",
},
"trans-timing-function": {
"prefix": "trans-timing-function",
"body": "transition-timing-function: ${1:ease};",
"description": "",
},
"transition": {
"prefix": "transition",
"body": "transition: ${1:all} ${2:.3s} ${3:ease} $4;",
"description": "",
},
"word-break": {
"prefix": "word-break",
"body": "word-break: ${1:normal|break-all|keep-all};",
"description": "",
},
"word-wrap": {
"prefix": "word-wrap",
"body": "overflow-wrap: ${1:break-word|normal};\nword-wrap: ${1:break-word|normal};",
"description": "",
},
"cf-micro/": {
"prefix": "cf-micro/",
"body": ".cf:after,\n.cf:before { content: ''; display: table; }\n.cf:after { clear: both; }\n.lt-ie8 .cf { zoom: 1; }",
"description": "모던 클리어픽스",
},
"cf/": {
"prefix": "cf/",
"body": "\n.clearfix::after {\n\tcontent: '';\n\tdisplay: block;\n\tclear: both; }\n.lt-ie8 .clearfix { zoom: 1; }",
"description": "클리어픽스",
},
"cmt+/": {
"prefix": "cmt+/",
"body": "\n/*! ${2:style.css} © ${3:yamoo9.net}, ${4:2014} */\n$0",
"description": "저작권 싱글 주석",
},
"cmt/": {
"prefix": "cmt/",
"body": "\n/**\n * --------------------------------$2\n * $1\n * --------------------------------$2\n */\n$0",
"description": "CSS - 섹션 주석",
},
"cmt-/": {
"prefix": "cmt-/",
"body": "\n/**\n * $1\n * --------------------------------$2\n */\n$0",
"description": "CSS - 서브 섹션 주석",
},
"mq-retina/": {
"prefix": "mq-retina/",
"body": "/*\n * 고해상도 디스플레이(@2x)\n */\n@media\n(-webkit-min-device-pixel-ratio: 2),\n( min--moz-device-pixel-ratio: 2),\n( -o-min-device-pixel-ratio: 2/1),\n( min-device-pixel-ratio: 2),\n( min-resolution: 192dpi),\n( min-resolution: 2dppx) {\n\t$3\n}\n$0",
"description": "",
},
"mq/": {
"prefix": "mq/",
"body": "@media ${1:only screen} and (${2:min-device-width}: ${3:480px}) ${4: }{\n\t$0\n}",
"description": "미디어쿼리",
},
"font-smoothing": {
"prefix": "font-smoothing",
"body": "${3:/* -----------------------------------------------\n * 모바일 폰트 부드럽게(font-smoothing)\n * none | subpixel-antialiased | antialiased\n * http://maxvoltar.com/sandbox/fontsmoothing/\n * http://www.icondeposit.com/blog:how-to-properly-smooth-font-using-css3\n -------------------------------------------------\n * font smooting for windows\n * http://forum.cockos.com/showthread.php?t=126465\n * -------------------------------------------- */\n}-webkit-font-smoothing: ${1:antialiased};\ntext-shadow: ${2:1px 1px 1px rgba(0,0,0,0.004)};\n$0",
"description": "폰트 부드럽게하는 CSS 속성",
},
"tap-highlight-color": {
"prefix": "tap-highlight-color",
"body": "${2:/* 탭 하이라이트 컬러\n 참고: http://davidwalsh.name/mobile-highlight-color */\n}-webkit-tap-highlight-color: ${1:hsla(0,0%,0%,.5)};\ntap-highlight-color: ${1:hsla(0,0%,0%,.5)};\n$0",
"description": "탭 하이라이트 컬러",
}
}
{
"Open Graph 프로토콜": {
"prefix": "meta-og",
"body": [
"<meta property=\"og:type\" content=\"website\">",
"<meta property=\"og:image\" content=\"${1:/images/og_img.png}\">",
"<meta property=\"og:site_name\" content=\"${2:site.com}\">",
"<meta property=\"og:url\" content=\"${3:https://site.com\"}>",
"<meta property=\"og:title\" content=\"${4:site title}\">",
"<meta property=\"og:description\" content=\"${5:사이트 설명}\">",
"<meta property=\"og:locale\" content=\"ko_KR\">",
"<meta property=\"og:locale:alternate\" content=\"en_US\">"
],
"description": "Open Graph 프로토콜"
},
"bulma": {
"prefix": "bulma",
"body": [
"<link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/bulma/0.4.2/css/bulma.min.css\">",
"<link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css\">"
],
"description": "Bulma CSS 프레임워크"
},
"svg-v-ns": {
"prefix": "svg-v-ns",
"body": [
"<svg",
" id=\"$1\"",
" width=\"$2\" height=\"$3\"",
" viewbox=\"$4\" preserveAspectRatio=\"$5\"",
" version=\"1.1\"",
" xmlns=\"http://www.w3.org/2000/svg\"",
" xmlns:xlink=\"http://www.w3.org/1999/xlink\">",
" $0",
"</svg>"
],
"description": "SVG 요소"
},
"svg": {
"prefix": "svg",
"body": [
"<svg",
" id=\"$1\"",
" width=\"$2\" height=\"$3\"",
" viewbox=\"$4\" preserveAspectRatio=\"$5\">",
" $0",
"</svg>"
],
"description": "SVG 요소"
},
"ellipse": {
"prefix": "ellipse",
"body": "<ellipse cx=\"$1\" cy=\"$2\" rx=\"$3\" ry=\"$4\" />",
"description": "SVG > Ellipse 요소"
},
"circle": {
"prefix": "circle",
"body": "<circle cx=\"$1\" cy=\"$2\" r=\"$3\" />",
"description": "SVG > Circle 요소"
},
"rect": {
"prefix": "rect",
"body": "<rect x=\"$1\" y=\"$2\" width=\"$3\" height=\"$4\" />",
"description": "SVG > Rect 요소"
},
"line": {
"prefix": "line",
"body": "<line x1=\"$1\" y1=\"$2\" x2=\"$3\" y2=\"$4\" stroke=\"$5\" stroke-width=\"$6\" />",
"description": "SVG > Line 요소"
},
"polyline": {
"prefix": "polyline",
"body": "<polyline points=\"${1:x1,y1 x2,y2 x3,y3 ...}\" fill=\"${2:none}\" stroke=\"$3\" stroke-width=\"$4\" />",
"description": "SVG > Polyline 요소"
},
"polygon": {
"prefix": "polygon",
"body": "<polygon points=\"${1:x1,y1 x2,y2 x3,y3 ...}\" fill=\"${2:none}\" stroke=\"$3\" stroke-width=\"$4\" />",
"description": "SVG > Polygon 요소"
},
"path": {
"prefix": "path",
"body": "<path d=\"$1\" fill=\"$2\" stroke=\"$3\" stroke-width=\"$4\" />",
"description": "SVG > Path 요소"
},
"image": {
"prefix": "image",
"body": "<image xlink:href=\"$1\" x=\"$2\" y=\"$3\" width=\"$4\" height=\"$5\" />",
"description": "SVG > Image 요소"
},
"text": {
"prefix": "text",
"body": "<text x=\"$1\" y=\"$2\" fill=\"$3\" font-size=\"$4\">${5:content}</text>",
"description": "SVG > Text 요소"
},
"use": {
"prefix": "use",
"body": "<use xlink:href=\"${1:#item-for-reuse}\" x=\"$2\" y=\"$3\" fill=\"$4\" />",
"description": "SVG > Use 요소"
},
"symbol": {
"prefix": "symbol",
"body": [
"<symbol id=\"${1:symbol-for-reuse}\" viewbox=\"$2\">",
" $0",
"</symbol>"
],
"description": "SVG > 재사용 목적의 심볼(Symbol) 요소"
},
"linearGradient": {
"prefix": "linearGradient",
"body": [
"<linearGradient id=\"$1\"",
" x1=\"$2\" y1=\"$3\"",
" x2=\"$4\" y2=\"$5\"",
" spreadMethod=\"$6\">",
" $0",
"</linearGradient>",
],
"description": "SVG > Linear Gradient 요소"
},
"radialGradient": {
"prefix": "radialGradient",
"body": [
"<radialGradient id=\"$1\"",
" cx=\"$2\" cy=\"$3\" r=\"$4\"",
" fx=\"$5\" fy=\"$6\"",
" spreadMethod=\"$7\">",
" $0",
"</radialGradient>",
],
"description": "SVG > Radial Gradient 요소"
},
"stop": {
"prefix": "stop",
"body": "<stop offset=\"${1:0%}\" stop-color=\"$2\" stop-opacity=\"${3:1}\" />",
"description": "SVG > Stop 요소"
},
"animate": {
"prefix": "animate",
"body": [
"<animate ",
" attributeType=\"${1:XML | CSS}\"",
" attributeName=\"${2: x | y ...}\"",
" from=\"$3\" to=\"$4\"",
" begin=\"${5:0s}\"",
" dur=\"${6:0.4s}\"",
" repeatCount=\"${7:indefinite | count}\" />"
],
"description": "SVG > Animate 요소"
},
"animateTransform": {
"prefix": "animateTransform",
"body": [
"<animateTransform ",
" attributeType=\"XML\"",
" attributeName=\"${2:rotate | translate | scale | skew}\"",
" from=\"$3\" to=\"$4\"",
" begin=\"${5:0s}\"",
" dur=\"${6:0.4s}\"",
" repeatCount=\"${7:indefinite | count}\" />"
],
"description": "SVG > AnimateTransform 요소"
},
"animateMotion": {
"prefix": "animateMotion",
"body": [
"<animateMotion ",
" path=\"$1\"",
" begin=\"${5:0s}\"",
" dur=\"${6:0.4s}\"",
" repeatCount=\"${7:indefinite | count}\" />"
],
"description": "SVG > AnimateMotion 요소"
},
"mpath": {
"prefix": "mpath",
"body": "<animateMotion xlink:href=\"${1:#motion-path}\" />",
"description": "SVG > mpath 요소"
},
"defs": {
"prefix": "defs",
"body": "<defs>$0</defs>",
"description": "SVG > 재사용 목적의 정의(Define)된 컨테이너 요소"
},
"group": {
"prefix": "g",
"body": "<g id=\"$1\">$0</g>",
"description": "SVG > Group 요소"
},
"svg-gooey": {
"prefix": "filter-gooey",
"body": [
"<filter id=\"gooey\">",
" <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"10\" result=\"blur\" />",
" <feColorMatrix in=\"blur\" mode=\"matrix\" values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 18 -7\" result=\"gooey\" />",
" <feBlend in=\"SourceGraphic\" in2=\"gooey\" />",
"</filter>",
],
"description": "SVG Gooey 필터"
},
"svg-gooey-composite": {
"prefix": "filter-gooey-composite",
"body": [
"<filter id=\"gooey-composite\">",
" <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"10\" result=\"blur\" />",
" <feColorMatrix in=\"blur\" mode=\"matrix\" values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 18 -7\" result=\"gooey\" />",
" <feComposite in=\"SourceGraphic\" in2=\"gooey\" operator=\"atop\" />",
"</filter>",
],
"description": "SVG Gooey Composite 필터"
},
// Angular HTML
"a-unicode-2way-databinding": {
"prefix": "a-unicode-2way",
"body": "(input)=\"${1:템플릿 문(Statement)}\" [value]=\"${2:바인딩 멤버}\"",
"description": "Angular 유니코드 문자 양방향 바인딩"
}
}
{
"fn-array-extends": {
"prefix": "fn-array-extends",
"body": "\nif (!('indexOf' in Array.prototype)) {\n Array.prototype.indexOf= function(find, i /*opt*/) {\n if (i===undefined) i= 0;\n if (i<0) i+= this.length;\n if (i<0) i= 0;\n for (var n= this.length; i<n; i++)\n if (i in this && this[i]===find)\n return i;\n return -1;\n };\n}\nif (!('lastIndexOf' in Array.prototype)) {\n Array.prototype.lastIndexOf= function(find, i /*opt*/) {\n if (i===undefined) i= this.length-1;\n if (i<0) i+= this.length;\n if (i>this.length-1) i= this.length-1;\n for (i++; i-->0;) /* i++ because from-argument is sadly inclusive */\n if (i in this && this[i]===find)\n return i;\n return -1;\n };\n}\nif (!('forEach' in Array.prototype)) {\n Array.prototype.forEach= function(action, that /*opt*/) {\n for (var i= 0, n= this.length; i<n; i++)\n if (i in this)\n action.call(that, this[i], i, this);\n };\n}\nif (!('map' in Array.prototype)) {\n Array.prototype.map= function(mapper, that /*opt*/) {\n var other= new Array(this.length);\n for (var i= 0, n= this.length; i<n; i++)\n if (i in this)\n other[i]= mapper.call(that, this[i], i, this);\n return other;\n };\n}\nif (!('filter' in Array.prototype)) {\n Array.prototype.filter= function(filter, that /*opt*/) {\n var other= [], v;\n for (var i=0, n= this.length; i<n; i++)\n if (i in this && filter.call(that, v= this[i], i, this))\n other.push(v);\n return other;\n };\n}\nif (!('every' in Array.prototype)) {\n Array.prototype.every= function(tester, that /*opt*/) {\n for (var i= 0, n= this.length; i<n; i++)\n if (i in this && !tester.call(that, this[i], i, this))\n return false;\n return true;\n };\n}\nif (!('some' in Array.prototype)) {\n Array.prototype.some= function(tester, that /*opt*/) {\n for (var i= 0, n= this.length; i<n; i++)\n if (i in this && tester.call(that, this[i], i, this))\n return true;\n return false;\n };\n}\n",
"description": "배열 객체 확장",
},
"fn-bind": {
"prefix": "fn-bind",
"body": "if (!('bind' in Function.prototype)) {\n Function.prototype.bind= function(owner) {\n var that= this;\n if (arguments.length<=1) {\n return function() { return that.apply(owner, arguments); };\n } else {\n var args= Array.prototype.slice.call(arguments, 1);\n return function() {\n return that.apply(owner, arguments.length===0? args : args.concat(Array.prototype.slice.call(arguments)));\n };\n }\n };\n};",
"description": "함수 객체 확장 - bind",
},
"fn-obj-create": {
"prefix": "fn-obj-create",
"body": "\nif(!Object.create) {\n\tObject.create = function(obj) {\n\t\tif(arguments.length > 1) {\n\t\t\tthrow new Error('전달인자는 하나(객체)여야 합니다.');\n\t\t};\n\t\tfunction F() {};\n\t\tF.prototype = obj;\n\t\treturn new F;\n\t};\n};\n",
"description": "객체 확장 - create",
},
"fn-str-trim": {
"prefix": "fn-str-trim",
"body": "if(!('trim' in String.prototype)) {\n String.prototype.trim= function() {\n\t\treturn this.replace(/^\\s+/, '').replace(/\\s+$/, '');\n\t};\n};",
"description": "문자 객체 확장 - trim",
},
"af": {
"prefix": "af",
"body": "\n(function(${2}){\n\t${3}\n})(${1});\n",
"description": "",
},
"cleanwhitespace": {
"prefix": "cleanwhitespace",
"body": "\nfunction cleanWhiteSpace(element) {\n element = element || document;\n var cur = element.firstChild;\n while ( cur !== null ) {\n if( cur.nodeType === 3 && ! /\\S/.test(cur.nodeValue) ) {\n element.removeChild(cur);\n } else if(cur.nodeType === 1) {\n cleanWhiteSpace(cur);\n }\n cur = cur.nextSibling;\n }\n}\n",
"description": "",
},
"fn-extend": {
"prefix": "fn-extend",
"body": "function extend( obj ) {\n\tif ( !arguments[1] ) { return obj; }\n\tfor ( var i=1, l=arguments.length, source, prop; i<l; i++ ) {\n\t\tsource = arguments[i];\n\t\tif ( source.constructor !== Object ) { throw new Error('전달인자가 객체가 아닙니다.'); return; }\n\t\tfor ( prop in source ) {\n\t\t\tif (\n\t\t\t\t( !obj[prop] && source.hasOwnProperty(prop) ) ||\n\t\t\t\t( prop in obj && prop in source )\n\t\t\t) { obj[prop] = source[prop]; }\n\t\t}\n\t\treturn obj;\n\t}\n}",
"description": "extend 헬퍼함수",
},
"fn": {
"prefix": "fn",
"body": "function($1) {\n\t$2\n}",
"description": "익명함수",
},
"IIFE": {
"prefix": "iife",
"body": [
"(function($2){",
" 'use strict';",
" $0",
"})($1);"
],
"description": "즉시 실행 함수 (모듈 패턴)"
},
"ES6-IIFE": {
"prefix": "iife-es6",
"body": [
";((${2:global}) => {",
" $0",
"})(${1:window})",
],
"description": "ES6 즉시 실행 함수 (모듈 패턴)"
},
"insertAdjacentHTML": {
"prefix": "insertAdjacentHTML",
"body": "\ninsertAdjacentHTML('${1:beforebegin | afterbegin | beforeend | afterend}', '${2:HTML Code}');\n",
"description": "",
},
"keyboard": {
"prefix": "keyboard",
"body": "\n/*\n키보드 코드 참조 (Keyboard codes reference)\nKey\tKeyboard code\nBackspace\t8\nTab\t 9\nEnter\t 13\nShift\t 16\nCtrl\t 17\nAlt\t 18\nPause\t 19\nCapslock\t20\nEsc\t 27\nPage up\t 33\nPage down\t34\nEnd\t 35\nHome\t 36\nLeft arrow\t37\nUp arrow\t38\nRight arrow\t39\nDown arrow\t40\nInsert\t 45\nDelete\t 46\n0\t 48\n1\t 49\n2\t 50\n3\t 51\n4\t 52\n5\t 53\n6\t 54\n7\t 55\n8\t 56\n9\t 57\na\t 65\nb\t 66\nc\t 67\nd\t 68\ne\t 69\nf\t 70\ng\t 71\nh\t 72\ni\t 73\nj\t 74\nk\t 75\nl\t 76\nm\t 77\nn\t 78\no\t 79\np\t 80\nq\t 81\nr\t 82\ns\t 83\nt\t 84\nu\t 85\nv\t 86\nw\t 87\nx\t 88\ny\t 89\nz\t 90\n0 (numpad)\t96\n1 (numpad)\t97\n2 (numpad)\t98\n3 (numpad)\t99\n4 (numpad)\t100\n5 (numpad)\t101\n6 (numpad)\t102\n7 (numpad)\t103\n8 (numpad)\t104\n9 (numpad)\t105\n*\t 106\n+\t 107\n-\t 109\n.\t 110\n/\t 111\nF1\t 112\nF2\t 113\nF3\t 114\nF4\t 115\nF5\t 116\nF6\t 117\nF7\t 118\nF8\t 119\nF9\t 120\nF10\t 121\nF11\t 122\nF12\t 123\n=\t 187\nComa\t 188\nSlash /\t 191\nBackslash \\\t220\n*/\n",
"description": "키보드 키코드 참고",
},
"strict": {
"prefix": "strict",
"body": "'use strict';",
"description": "",
},
"ajax": {
"prefix": "ajax",
"body": "\nvar XMLHttpFactories, createXHR, sendRequest;\n\nXMLHttpFactories = [\n function () {return new XMLHttpRequest()},\n function () {return new ActiveXObject(\"Msxml2.XMLHTTP\")},\n function () {return new ActiveXObject(\"Msxml3.XMLHTTP\")},\n function () {return new ActiveXObject(\"Microsoft.XMLHTTP\")}\n];\n\ncreateXHR = function () {\n var xmlhttp = false;\n for (var i=0;i<XMLHttpFactories.length;i++) {\n try {\n xmlhttp = XMLHttpFactories[i]();\n }\n catch (e) {\n continue;\n }\n break;\n }\n return xmlhttp;\n};\n\nsendRequest = function (url,callback,postData) {\n var req = createXHR();\n if (!req) return;\n var method = (postData) ? \"POST\" : \"GET\";\n req.open(method,url,true);\n req.setRequestHeader('User-Agent','XMLHTTP/1.0');\n if (postData)\n req.setRequestHeader('Content-type','application/x-www-form-urlencoded');\n req.onreadystatechange = function () {\n if (req.readyState != 4) return;\n if (req.status != 200 && req.status != 304) {\n// alert('HTTP error ' + req.status);\n return;\n }\n callback(req);\n }\n if (req.readyState == 4) return;\n req.send(postData);\n};\n",
"description": "AJAX 헬퍼 함수",
},
// console ------------------------------------------------
"dir": {
"prefix": "dir",
"body": "console.dir($1);",
"description": "JS: Console - dir",
},
"error": {
"prefix": "error",
"body": "\nconsole.error($0);\n",
"description": "",
},
"log": {
"prefix": "log",
"body": "console.log($1);",
"description": "JS: Console",
},
"console": {
"prefix": "console",
"body": "console.${1:log}($2);",
"description": "콘솔: Console",
},
"console - label log": {
"prefix": "log-label",
"body": [
"console.log('$1:', $1)"
],
"description": "확인용 콘솔 로그"
},
"console - group": {
"prefix": "log-group",
"body": [
"console.group('$1');",
"",
"$0",
"",
"console.groupEnd('$1');"
],
"description": "그룹 콘솔 로그"
},
"console - time": {
"prefix": "log-time",
"body": [
"console.time('$1');",
"",
"$0",
"",
"console.timeEnd('$1');"
],
"description": "타임 콘솔 로그"
},
// comments ------------------------------------------------
"Comments - Author": {
"prefix": "cmt",
"body": [
"/*! ${1:01.ojbects}.js @ 2017, yamoo9.net */"
],
"description": "저작자 주석"
},
"Comments - Section": {
"prefix": "cmt+",
"body": [
"// ————————————————————————————————————${2:——}",
"// $1",
"// ————————————————————————————————————${2:——}",
],
"description": "메인 섹션 주석"
},
"Comments - Element": {
"prefix": "cmt-",
"body": [
"// ------------------------------------${2:---}",
"// $1"
],
"description": "서브 섹션 주석"
},
// ES6 ------------------------------------------------
"ES6 임포트": {
"prefix": "import",
"body": [
"import $1 from '${2:./}';"
],
"description": "ES6 import"
},
"ES6 화살표함수": {
"prefix": "afn",
"body": [
"($1) => {$2}"
],
"description": "ES6 Arrow Function"
},
// Vue.js ------------------------------------------------
"vue.js 데이터": {
"prefix": "v-data",
"body": [
"data () {",
"\treturn {",
"\t\t$0",
"\t}",
"},"
],
"description": "Vue 데이터"
},
"vue.js 화살표 함수 데이터": {
"prefix": "v-data-arrow",
"body": [
"data: () => ({",
"\t$0",
"}),"
],
"description": "Vue 화살표 함수 데이터"
},
"vue.js 배열 속성 전달": {
"prefix": "v-props",
"body": [
"props: [$0],"
],
"description": "vue.js 배열 속성 전달"
},
"vue.js 객체 속성 전달": {
"prefix": "v-props-o",
"body": [
"props: {",
" type: ${1:String | Number | Boolean | Object | Function | Array | Symbol},",
" ${3:required: ${2:false | true},",
" }${0:default: ${4:null},}",
"}"
],
"description": "vue.js 객체 속성 전달"
},
"vue.js 메서드": {
"prefix": "v-methods",
"body": [
"methods: {",
"\t$0",
"},"
],
"description": "Vue 메서드"
},
"vue.js 속성 상속": {
"prefix": "v-inheritAttrs",
"body": [
"inheritAttrs: ${1: true | false}"
],
"description": "Vue 속성 상속"
},
"vue.js 플러그인": {
"prefix": "v-plugin",
"body": [
"// 플러그인 객체",
"var vuePlugin = {",
" // 플러그인 환경설정 객체",
" config: {},",
" // 플러그인 설치 함수",
" install: function(Vue, options){",
" // 전역 디렉티브 추가",
" Vue.directive('디렉티브-이름', {\\});",
" // 전역 믹스인 추가",
" // 믹스인 객체 설정",
" Vue.mixin({",
" mounted: function(){\\}",
" \\});",
" // 인스턴스 속성/메서드 추가",
" Vue.prototype.\\$instanceProperty = '';",
" Vue.prototype.\\$instanceMethod = function(options){\\};",
" }",
"};"
],
"description": "Vue 플러그인"
},
// Nuxt.js ------------------------------------------------
"nuxt.js 헤드 메서드": {
"prefix": "n-head",
"body": [
"head() {",
" return {",
" $0",
" }",
"}, "
],
"description": "nuxt.js 헤드 메서드"
},
"nuxt.js 비동기 데이터": {
"prefix": "n-asyncdata",
"body": [
"asyncData(${1:context}, ${2:callback}) {",
"\t$0",
"},"
],
"description": "Nuxt 비동기 데이터"
},
"Nuxt.js - Open Graph 프로토콜": {
"prefix": "n-og",
"body": [
"{ property: 'og:type', content: 'website' },",
"{ property: 'og:image', content: '${1:이미지 경로}' },",
"{ property: 'og:site_name', content: '${2:사이트 이름}' },",
"{ property: 'og:url', content: '${3:사이트 경로}' },",
"{ property: 'og:title', content: '${4:사이트 타이틀}' },",
"{ property: 'og:description', content: '${5:사이트 설명}' },",
"{ property: 'og:locale', content: 'ko-KR' },",
"{ property: 'og:locale:alternate', content: 'en-US' },"
],
"description": "Nuxt.js - Open Graph 프로토콜"
}
}
{
"SassDoc Comment": {
"prefix": "sassdoc",
"body": [
"/// ${1:설명 (Markdown 문법 사용 가능)}",
"/// @access ${2:public | private}",
"/// @author ${3:작성자 이름}",
"/// @param ${4:{데이터유형 | 다른 데이터유형} 매개변수_이름 [기본값] - 설명}",
"/// @return ${5:{데이터유형 | 다른 데이터유형} 설명}",
"/// @content ${6:믹스인 설명 (믹스인의 경우만, Markdown 문법 사용 가능)}",
"/// @example ${7:예제 작성}",
"/// ${0:@link http://sassdoc.com/annotations/}"
],
"description": "SassDoc 주석"
},
",": {
"prefix": ",",
"body": "%${1:플레이스홀더 이름}\n\t$2\n",
"description": "Sass - 플레이스홀더 정의"
},
"placeholder": {
"prefix": "placeholder",
"body": "%${1:플레이스홀더 이름}\n\t$2\n$0",
"description": "Sass - 플레이스홀더 정의"
},
"&&": {
"prefix": "&&",
"body": "${1:상위 참조 선택자} &$2\n",
"description": "Sass - 중첩 상위 참조 선택자"
},
"at-root": {
"prefix": "at-root",
"body": "@at-root\n\t$1\n",
"description": "Sass - @at-root"
},
"content": {
"prefix": "content",
"body": "@content",
"description": "Sass - @content"
},
"debug": {
"prefix": "debug",
"body": "@debug $0",
"description": "Sass - @debug"
},
"/": {
"prefix": "/",
"body": "@extend ${1:상속 선택자 이름}",
"description": "Sass - 익스텐드 호출"
},
"extend": {
"prefix": "extend",
"body": "@extend ${1:상속 선택자 이름}",
"description": "Sass - 익스텐드 호출"
},
"fontface": {
"prefix": "fontface",
"body": "@font-face\n\tfont-family: $1\n\tsrc:url($2)\n$0",
"description": "Sass - @font-face"
},
"webfont": {
"prefix": "webfont",
"body": "@font-face\n\tfont-family: \"${1:FontName}\"\n\tsrc: url(\"${2:FileName}.eot'\")\n\tsrc: url(\"${2:FileName}.eot?#iefix\") format(\"embedded-opentype\"), url(\"${2:FileName}.woff\") format(\"woff\"), url(\"${2:FileName}.ttf\") format(\"truetype\"), url(\"${2:FileName}.svg#FontName\") format(\"svg\")\n\t${3:font-style: ${4:normal}}\n\t${5:font-weight: ${6:normal}}\n$0",
"description": "Sass - 웹폰트 코드"
},
"import": {
"prefix": "import",
"body": "@import $0",
"description": "Sass - @import"
},
"+": {
"prefix": "+",
"body": "+${1:믹스인 이름}${2:($3)}",
"description": "Sass - 믹스인 호출"
},
"include": {
"prefix": "include",
"body": "+${1:믹스인 이름}${2:($3)}",
"description": "Sass - 믹스인 호출"
},
"media-queries": {
"prefix": "media-queries",
"body": "@media ${1:only screen} and (${2:max-device-width}: ${3:480px}) ${4: }\n\t$0\n",
"description": "Sass - @media-queries 문"
},
"media": {
"prefix": "media",
"body": "@media ${1:screen}\n\t$0\n",
"description": "Sass - @media 문"
},
"=": {
"prefix": "=",
"body": "=${1:믹스인 이름} ${2:($3)}\n\t$4\n$0",
"description": "Sass - 믹스인 정의"
},
"mixin": {
"prefix": "mixin",
"body": "=${1:믹스인 이름} ${2:($3)}\n\t$4\n$0",
"description": "Sass - 믹스인 정의"
},
"warn": {
"prefix": "warn",
"body": "@warn $0",
"description": "Sass - @warn"
},
"cmt-sass-section": {
"prefix": "cmt-sass-section",
"body": "//\n * --------------------------------$2\n * $1\n * --------------------------------$2\n$0",
"description": "Sass - 섹션 주석"
},
"cmt-sass-subsection": {
"prefix": "cmt-sass-subsection",
"body": "//\n * --------------------------------$2\n * $1\n$0",
"description": "Sass - 서브 섹션 주석"
},
"nested-properties": {
"prefix": "nested-properties",
"body": "${1:margin}:\n\t$2",
"description": "Sass - 중첩 속성 정의"
},
"each": {
"prefix": "each",
"body": "@each $${1:var} in ${2:item1, item2, item3}\n\t.#{$$1}$3\n\t\t$4\n$0",
"description": "Sass - @each 문"
},
"for": {
"prefix": "for",
"body": "@for $i from ${1:1} ${2:through} ${3:10}\n\t$4\n$0",
"description": "Sass - @for 문"
},
"function": {
"prefix": "function",
"body": "@function ${1:함수 이름} (${2:전달인자})\n\t$3\n$0",
"description": "Sass - @function 문"
},
"ifelseif": {
"prefix": "ifelseif",
"body": "@if ${1:변수} ${2:==} ${3:true|false}\n\t$4\n@else if\n\t$5\n${6: @else}\n\t$7\n$0",
"description": "Sass - @if @else if 문"
},
"ifelse": {
"prefix": "ifelse",
"body": "@if ${1:변수} ${2:==} ${3:true|false}\n\t$4\n@else\n\t$5\n$0",
"description": "Sass - @if @else 문"
},
"if": {
"prefix": "if",
"body": "@if ${1:변수} ${2:==} ${3:true|false}\n\t$4\n$0",
"description": "Sass - @if 문"
},
"while": {
"prefix": "while",
"body": "$i: ${1:1}\n@while $i ${2:<=} ${3:12}\n\t${4:.${5:item-}${6:#{$i\\}}}\n\t\t$7\n\t\t${8:$i: $i + ${9:1}}\n$0",
"description": "Sass - @while 문"
}
}
{
"SassDoc Comment": {
"prefix": "sassdoc",
"body": [
"/// ${1:설명 (Markdown 문법 사용 가능)}",
"/// @access ${2:public | private}",
"/// @author ${3:작성자 이름}",
"/// @param ${4:{데이터유형 | 다른 데이터유형} 매개변수_이름 [기본값] - 설명}",
"/// @return ${5:{데이터유형 | 다른 데이터유형} 설명}",
"/// @content ${6:믹스인 설명 (믹스인의 경우만, Markdown 문법 사용 가능)}",
"/// @example ${7:예제 작성}",
"/// ${0:@link http://sassdoc.com/annotations/}"
],
"description": "SassDoc 주석"
},
",": {
"prefix": ",",
"body": "%${1:플레이스홀더 이름} {\n\t$2\n}",
"description": "Sass - 플레이스홀더 정의",
},
"placeholder": {
"prefix": "placeholder",
"body": "%${1:플레이스홀더 이름} {\n\t$2\n}\n$0",
"description": "Sass - 플레이스홀더 정의",
},
"&&": {
"prefix": "&&",
"body": "${1:상위 참조 선택자} &$2 {\n\t$3\n}\n",
"description": "Sass - 중첩 상위 참조 선택자",
},
"Sass - 중첩 규칙, 부모 참조\n": {
"prefix": "Sass - 중첩 규칙, 부모 참조\n",
"body": "&$1 {\n\t$2\n}\n",
"description": "Sass - 중첩 규칙, 부모 참조",
},
"at-root": {
"prefix": "at-root",
"body": "@at-root {\n\t$1\n}\n$0",
"description": "Sass - @at-root",
},
"content": {
"prefix": "content",
"body": "@content;",
"description": "Sass - @content",
},
"debug": {
"prefix": "debug",
"body": "@debug $0;",
"description": "Sass - @debug",
},
"/": {
"prefix": "/",
"body": "@extend ${1:상속 선택자 이름};",
"description": "Sass - 익스텐드 호출",
},
"extend": {
"prefix": "extend",
"body": "@extend ${1:상속 선택자 이름};",
"description": "Sass - 익스텐드 호출",
},
"fontface": {
"prefix": "fontface",
"body": "@font-face {\n font-family: $1;\n src:url($2);\n}\n$0",
"description": "SASS - @font-face",
},
"webfont": {
"prefix": "webfont",
"body": "@font-face {\n font-family: '${1:FontName}';\n src: url('${2:FileName}.eot');\n src: url('${2:FileName}.eot?#iefix') format('embedded-opentype'),\n url('${2:FileName}.woff') format('woff'),\n url('${2:FileName}.ttf') format('truetype'),\n url('${2:FileName}.svg#${1:FontName}') format('svg');\n ${3:font-style: ${4:normal};}\n ${5:font-weight: ${6:normal};}\n}\n$0",
"description": "Sass - 웹폰트 코드",
},
"import": {
"prefix": "import",
"body": "@import \"$0\";",
"description": "Sass - @import",
},
"+": {
"prefix": "+",
"body": "@include ${1:믹스인 이름}${2:($3)};",
"description": "Sass - 믹스인 호출",
},
"include": {
"prefix": "include",
"body": "@include ${1:믹스인 이름}${2:($3)};",
"description": "Sass - 믹스인 호출",
},
"media-queries": {
"prefix": "media-queries",
"body": "@media ${1:only screen} and (${2:max-device-width}: ${3:480px}) ${4: }{\n\t$0\n}",
"description": "Sass - @media-queries 문",
},
"media": {
"prefix": "media",
"body": "@media ${1:screen} {\n\t$0\n}",
"description": "Sass - @media 문",
},
"=": {
"prefix": "=",
"body": "@mixin ${1:믹스인 이름} ${2:($3)} {\n $4\n}\n$5",
"description": "Sass - 믹스인 정의",
},
"mixin": {
"prefix": "mixin",
"body": "@mixin ${1:믹스인 이름} ${2:($3)} {\n\t$4\n}\n$0",
"description": "Sass - 믹스인 정의",
},
"warn": {
"prefix": "warn",
"body": "@warn \"$0\";",
"description": "Sass - @warn",
},
"cmt-sass-section": {
"prefix": "cmt-sass-section",
"body": "// * --------------------------------$2\n// * $1\n// * --------------------------------$2\n$0",
"description": "Sass - 섹션 주석",
},
"cmt-sass-subsection": {
"prefix": "cmt-sass-subsection",
"body": "// * --------------------------------$2\n// * $1\n$0",
"description": "Sass - 서브 섹션 주석",
},
"call": {
"prefix": "call",
"body": "call(${1:$name}, ${2:$args...})",
"description": "Sass - call() 함수",
},
"feature-exists": {
"prefix": "feature-exists",
"body": "feature_exists(${1:$feature})",
"description": "Sass - feature-exists() 함수",
},
"function-exists": {
"prefix": "function-exists",
"body": "function-exists(${1:$name})",
"description": "Sass - function-exists() 함수",
},
"global-variable-exists": {
"prefix": "global-variable-exists",
"body": "global-variable-exists(${1:$name})",
"description": "Sass - global-variable-exists() 함수",
},
"inspect": {
"prefix": "inspect",
"body": "inspect(${1:$value})",
"description": "Sass - inspect() 함수",
},
"is-superselector": {
"prefix": "is-superselector",
"body": "is-superselector(${1:$super}, ${2:$sub})",
"description": "Sass - is-superselector() 함수",
},
"keywords": {
"prefix": "keywords",
"body": "keywords(${1:$args})",
"description": "Sass - keywords() 함수",
},
"list-separator": {
"prefix": "list-separator",
"body": "list-separator(${1:$list})",
"description": "Sass - list-separator() 함수",
},
"map-get": {
"prefix": "map-get",
"body": "map-get(${1:$map}, ${2:$key})",
"description": "Sass - map-get() 함수",
},
"map-has-key": {
"prefix": "map-has-key",
"body": "map-has-key(${1:$map}, ${2:$key})",
"description": "Sass - map-has-key() 함수",
},
"map-keys": {
"prefix": "map-keys",
"body": "map-keys(${1:$map})",
"description": "Sass - map-keys() 함수",
},
"map-merge": {
"prefix": "map-merge",
"body": "map-merge(${1:$map1}, ${2:$map2})",
"description": "Sass - map-merge() 함수",
},
"map-remove": {
"prefix": "map-remove",
"body": "map-remove(${1:$map}, ${2:$keys...})",
"description": "Sass - map-remove() 함수",
},
"map-values": {
"prefix": "map-values",
"body": "map-values(${1:$map})",
"description": "Sass - map-values() 함수",
},
"mixin-exists": {
"prefix": "mixin-exists",
"body": "mixin-exists(${1:$name})",
"description": "Sass - mixin-exists() 함수",
},
"opacity": {
"prefix": "opacity",
"body": "opacity(${1:$color})",
"description": "Sass - opacity() 함수",
},
"random": {
"prefix": "random",
"body": "random(${1:$limit})",
"description": "Sass - random() 함수",
},
"selector-append": {
"prefix": "selector-append",
"body": "selector-append(${1:$selectors...})",
"description": "Sass - selector-append() 함수",
},
"selector-extend": {
"prefix": "selector-extend",
"body": "selector-extend(${1:$selector}, ${2:$extendee}, ${3:$extender})",
"description": "Sass - selector-extend() 함수",
},
"selector-nest": {
"prefix": "selector-nest",
"body": "selector-nest(${1:$selectors...})",
"description": "Sass - selector-nest() 함수",
},
"selector-parse": {
"prefix": "selector-parse",
"body": "selector-parse(${1:$selector})",
"description": "Sass - selector-parse() 함수",
},
"selector-replace": {
"prefix": "selector-replace",
"body": "selector-replace(${1:$selector}, ${2:$original}, ${3:$replacement})",
"description": "Sass - selector-replace() 함수",
},
"selector-unify": {
"prefix": "selector-unify",
"body": "selector-unify(${1:$selector1}, ${2:$selector2})",
"description": "Sass - selector-unify() 함수",
},
"simple-selectors": {
"prefix": "simple-selectors",
"body": "simple-selectors(${1:$selector})",
"description": "Sass - simple-selectors() 함수",
},
"str-index": {
"prefix": "str-index",
"body": "str-index(${1:$string}, ${2:$substring})",
"description": "Sass - str-index() 함수",
},
"str-insert": {
"prefix": "str-insert",
"body": "str-insert(${1:$string}, ${2:$insert}, ${3:$index})",
"description": "Sass - str-insert() 함수",
},
"str-length": {
"prefix": "str-length",
"body": "str-length(${1:$string})",
"description": "Sass - str-length() 함수",
},
"str-slice": {
"prefix": "str-slice",
"body": "str-slice(${1:$string}, ${2:$start-at}, ${3:$end-at: -1})",
"description": "Sass - str-slice() 함수",
},
"to-lower-case": {
"prefix": "to-lower-case",
"body": "to-lower-case(${1:$string})",
"description": "Sass - to-lower-case() 함수",
},
"to-upper-case": {
"prefix": "to-upper-case",
"body": "to-upper-case(${1:$string})",
"description": "Sass - to-upper-case() 함수",
},
"unique-id": {
"prefix": "unique-id",
"body": "unique-id()",
"description": "Sass - unique-id() 함수",
},
"variable-exists": {
"prefix": "variable-exists",
"body": "variable-exists(${1:$name})",
"description": "Sass - variable-exists() 함수",
},
"adjust-hue": {
"prefix": "adjust-hue",
"body": "adjust-hue(${1:$color}, ${2:$degrees})",
"description": "SASS - adjust-hue 컬러 함수",
},
"complement": {
"prefix": "complement",
"body": "complement(${1:$color})",
"description": "SASS - complement 컬러 함수",
},
"darken": {
"prefix": "darken",
"body": "darken(${1:$color}, ${2:$amount})",
"description": "SASS - darken 컬러 함수",
},
"desaturate": {
"prefix": "desaturate",
"body": "desaturate(${1:$color}, ${2:$amount})",
"description": "SASS - desaturate 컬러 함수",
},
"grayscale": {
"prefix": "grayscale",
"body": "grayscale(${1:$color})",
"description": "SASS - grayscale 컬러 함수",
},
"hsl": {
"prefix": "hsl",
"body": "hsl(${1:$hue}, ${2:$saturation}, ${3:$lightness})",
"description": "SASS - hsl 컬러 함수",
},
"hsla": {
"prefix": "hsla",
"body": "hsl(${1:$hue}, ${2:$saturation}, ${3:$lightness}, ${4:$alpha})",
"description": "SASS - hsla 컬러 함수",
},
"hue": {
"prefix": "hue",
"body": "hue(${1:$color})",
"description": "SASS - hue 컬러 함수",
},
"invert": {
"prefix": "invert",
"body": "invert(${1:$color})",
"description": "SASS - invert 컬러 함수",
},
"lighten": {
"prefix": "lighten",
"body": "lighten(${1:$color}, ${2:$amount})",
"description": "SASS - lighten 컬러 함수",
},
"lightness": {
"prefix": "lightness",
"body": "lightness(${1:$color})",
"description": "SASS - lightness 컬러 함수",
},
"saturate": {
"prefix": "saturate",
"body": "saturate(${1:$color}, ${2:$amount})",
"description": "SASS - saturate 컬러 함수",
},
"saturation": {
"prefix": "saturation",
"body": "saturation(${1:$color})",
"description": "SASS - saturation 컬러 함수",
},
"blue": {
"prefix": "blue",
"body": "blue(${1:$color})",
"description": "SASS - blue() 컬러 함수",
},
"green": {
"prefix": "green",
"body": "green(${1:$color})",
"description": "SASS - green() 컬러 함수",
},
"mix": {
"prefix": "mix",
"body": "mix(${1:$color1}, ${2:$color2}, ${3:$weight:50%})",
"description": "SASS - mix 컬러 함수",
},
"red": {
"prefix": "red",
"body": "red(${1:$color})",
"description": "SASS - red() 컬러 함수",
},
"rgb": {
"prefix": "rgb",
"body": "rgb(${1:$red}, ${2:$green}, ${3:$blue})",
"description": "SASS - rgb() 컬러 함수",
},
"rgba-long": {
"prefix": "rgba-l",
"body": "rgb(${1:$red}, ${2:$green}, ${3:$blue}, ${4:$alpha})",
"description": "SASS - rgba 컬러 함수",
},
"rgba": {
"prefix": "rgba",
"body": "rgba(${1:$color}, ${3:$alpha})",
"description": "SASS - rgba 단축 컬러 함수",
},
"counter": {
"prefix": "counter",
"body": "counter(${1:$args...})",
"description": "SASS - counter IE7 함수",
},
"counters": {
"prefix": "counters",
"body": "counters(${1:$args...})",
"description": "SASS - counters IE7 함수",
},
"comparable": {
"prefix": "comparable",
"body": "comparable(${1:$number1}, ${2:$number2})",
"description": "SASS - comparable 체크 함수",
},
"type-of": {
"prefix": "type-of",
"body": "type-of(${1:$value})",
"description": "SASS - type-of 체크 함수",
},
"unit": {
"prefix": "unit",
"body": "unit(${1:$number})",
"description": "SASS - unit 체크 함수",
},
"unitless": {
"prefix": "unitless",
"body": "unitless(${1:$number})",
"description": "SASS - unitless 체크 함수",
},
"append": {
"prefix": "append",
"body": "append(${1:$list}, ${2:$value}${3:, ${4:auto|comma|space}})",
"description": "SASS - append, 리스트 아이템 추가 함수",
},
"index": {
"prefix": "index",
"body": "index(${1:$list}, ${2:$value})",
"description": "SASS - index, 해당 아이템 순서반환 함수",
},
"join": {
"prefix": "join",
"body": "join(${1:$list1}, ${2:$list2}${3:, ${4:auto|comma|space}})",
"description": "SASS - join, 리스트를 합치는 함수",
},
"length": {
"prefix": "length",
"body": "length(${1:$list})",
"description": "SASS - length, 아이템 개수 반환 함수",
},
"nth": {
"prefix": "nth",
"body": "nth(${1:$list}, ${2:$n})",
"description": "SASS - nth, 해당 순번의 아이템 반환 함수",
},
"zip": {
"prefix": "zip",
"body": "zip(${1:$lists...})",
"description": "SASS - zip, 아이템 인자 순서에 맞춰 합치는 함수",
},
"if-function": {
"prefix": "if-function",
"body": "if(${1:$condition}, ${2:$if-true}, ${3:$if-false})",
"description": "Sass - if() 조건 함수",
},
"abs": {
"prefix": "abs",
"body": "abs(${1:$value})",
"description": "SASS - abs 수학 함수",
},
"ceil": {
"prefix": "ceil",
"body": "ceil(${1:$value})",
"description": "SASS - ceil 수학 함수",
},
"floor": {
"prefix": "floor",
"body": "floor(${1:$value})",
"description": "SASS - floor 수학 함수",
},
"max": {
"prefix": "max",
"body": "max(${1:$numbers...})",
"description": "SASS - max 수학 함수",
},
"min": {
"prefix": "min",
"body": "min(${1:$numbers...})",
"description": "SASS - min 수학 함수",
},
"percentage": {
"prefix": "percentage",
"body": "percentage(${1:$value})",
"description": "SASS - percentage 수학 함수",
},
"round": {
"prefix": "round",
"body": "round(${1:$value})",
"description": "SASS - round 수학 함수",
},
"alpha": {
"prefix": "alpha",
"body": "alpha(${1:$color})",
"description": "SASS - alpha 컬러 함수",
},
"fade-in": {
"prefix": "fade-in",
"body": "fade-in(${1:$color}, ${2:$amount})",
"description": "SASS - fade-in 컬러 함수",
},
"fade-out": {
"prefix": "fade-out",
"body": "fade-out(${1:$color}, ${2:$amount})",
"description": "SASS - fade-out 컬러 함수",
},
"opacify": {
"prefix": "opacify",
"body": "opacify(${1:$color}, ${2:$amount})",
"description": "SASS - ofacify 컬러 함수",
},
"transparentize": {
"prefix": "transparentize",
"body": "transparentize(${1:$color}, ${2:$amount})",
"description": "SASS - transparentize 컬러 함수",
},
"adjust-color": {
"prefix": "adjust-color",
"body": "adjust-color(${1:$color}, ${2:[$red]}, ${3:[$green]}, ${4:[$blue]}, ${5:[$hue]}, ${6:[$saturation]}, ${7:[$lightness]}, ${7:[$alpha]})",
"description": "SASS - adjust-color 컬러 함수",
},
"change-color": {
"prefix": "change-color",
"body": "change-color(${1:$color}, ${2:[$red]}, ${3:[$green]}, ${4:[$blue]}, ${5:[$hue]}, ${6:[$saturation]}, ${7:[$lightness]}, ${7:[$alpha]})",
"description": "SASS - change-color 컬러 함수",
},
"ie-hex-str": {
"prefix": "ie-hex-str",
"body": "ie-hex-str(${1:$color})",
"description": "SASS - ie-hex-str 컬러 함수",
},
"scale-color": {
"prefix": "scale-color",
"body": "scale-color(${1:$color}, ${2:[$red]}, ${3:[$green]}, ${4:[$blue]}, ${6:[$saturation]}, ${7:[$lightness]}, ${7:[$alpha]})",
"description": "SASS - scale-color 컬러 함수",
},
"quote": {
"prefix": "quote",
"body": "quote(${1:$string})",
"description": "SASS - quote 따옴표 붙이는 함수",
},
"unquote": {
"prefix": "unquote",
"body": "unquote(${1:$string})",
"description": "SASS - unquote 따옴표 제거하는 함수",
},
"nested-properties": {
"prefix": "nested-properties",
"body": "${1:margin}: {\n\t$2\n}\n$0",
"description": "Sass - 중첩 속성 정의",
},
"#": {
"prefix": "#",
"body": "#{$0}",
"description": "Sass - #{}",
},
"interpolation": {
"prefix": "interpolation",
"body": "#{$0}",
"description": "Sass - #{}",
},
"each": {
"prefix": "each",
"body": "@each $${1:var} in ${2:item1, item2, item3} {\n\t.#{$$1}$3 {\n\t\t$4\n\t}\n}$0",
"description": "Sass - @each 문",
},
"error": {
"prefix": "error",
"body": "@error \"$0\"",
"description": "Sass - @error",
},
"for": {
"prefix": "for",
"body": "@for $i from ${1:1} ${2:through} ${3:10} {\n\t$4\n}\n$0",
"description": "Sass - @for 문",
},
"function": {
"prefix": "function",
"body": "@function ${1:함수 이름} (${2:전달인자}) {\n\t$3\n}\n$0",
"description": "Sass - @function 문",
},
"ifelseif": {
"prefix": "ifelseif",
"body": "@if ${1:변수} ${2:==} ${3:true|false} {\n\t$4\n} @else if {\n\t$5\n}${6: @else {\n\t$7\n\\}}\n$0",
"description": "Sass - @if @else if 문",
},
"ifelse": {
"prefix": "ifelse",
"body": "@if ${1:변수} ${2:==} ${3:true|false} {\n\t$4\n} @else {\n\t$5\n}\n$0",
"description": "Sass - @if @else 문",
},
"if": {
"prefix": "if",
"body": "@if ${1:변수} ${2:==} ${3:true|false} {\n\t$4\n}\n$0",
"description": "Sass - @if 문",
},
"return": {
"prefix": "return",
"body": "@return $0",
"description": "Sass - @return",
},
"while": {
"prefix": "while",
"body": "$i: ${1:1};\n@while $i ${2:<=} ${3:12} {\n\t${4:.${5:item-}${6:#{$i\\}}} {\n\t\t$7\n\t\t${8:$i: $i + ${9:1};}\n\t}\n}\n$0",
"description": "Sass - @while 문",
},
".d": {
"prefix": ".d",
"body": "!default",
"description": "Sass - !default",
},
".o": {
"prefix": ".o",
"body": "!optional",
"description": "Sass - !optional",
}
}
{
"html": {
"snippets": {
"ull": "ul>li[id=${1} class=${2}]*2{ Will work with html, jade, haml and slim }",
"oll": "<ol><li id=${1} class=${2}> Will only work in html </ol>",
"ran": "{ Wrap plain text in curly braces }"
}
},
"css": {
"snippets": {
"cb": "color: black",
"bsd": "border: 1px solid ${1:red}",
"ls": "list-style: ${1}"
}
}
}
{
/*
// Place your snippets for SVG here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
"Print to console": {
"prefix": "log",
"body": [
"console.log('$1');",
"$2"
],
"description": "Log output to console"
}
*/
}
{
// Place your snippets for typescript here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
// "Print to console": {
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
"console - log": {
"prefix": "log",
"body": [
"console.log($1);"
],
"description": "기록용 콘솔 로그"
},
// comments ------------------------------------------------
"Comments - Author": {
"prefix": "cmt",
"body": [
"/*! ${1:01.ojbects}.js @ 2017, yamoo9.net */"
],
"description": "저작자 주석"
},
"Comments - Section": {
"prefix": "cmt+",
"body": [
"// ————————————————————————————————————${2:——}",
"// $1",
"// ————————————————————————————————————${2:——}"
],
"description": "메인 섹션 주석"
},
"Comments - Element": {
"prefix": "cmt-",
"body": [
"// ------------------------------------${2:---}",
"// $1"
],
"description": "서브 섹션 주석"
},
"ES6 화살표함수": {
"prefix": "afn",
"body": [
"($1) => {$2}"
],
"description": "ES6 Arrow Function"
},
/// Angular ---------------------------------------------------------------
"Angular 라이프 사이클 훅": {
"prefix": "ng-life-cycle-hook",
"body": [
"/** ",
" * Angular 라이프 사이클 훅 ",
" * ——————————————————————",
" * OnChanges",
" * OnInit",
" * DoCheck",
" * AfterContentInit",
" * AfterContentChecked",
" * AfterViewInit",
" * AfterViewChecked",
" * OnDestroy",
"*/"
],
"description": "Angular 라이프 사이클 훅"
},
/// Vue.js ---------------------------------------------------------------
"Vue TS Component": {
"prefix": "v-component",
"description": "Vue TypeScript 컴포넌트",
"body": [
"import Vue from 'vue';",
"import { Component${1:, Prop, Emit, Watch} } from 'vue-property-decorator';",
"",
"@Component($3)",
"export default class ${2:Component} extends Vue {",
"\t$0",
"\tconstructor(){",
"\t\tsuper();",
"\t}",
"}"
]
},
"Vue Prop": {
"prefix": "v-prop",
"description": "Vue TypeScript @Prop 데코레이터",
"body": [
"@Prop(${1:{default: 'value'\\} | Number | [String, Boolean]}) ${2:prop}!:${3:types};$0"
]
},
"Vue Watch": {
"prefix": "v-watch",
"description": "Vue TypeScript @Watch 데코레이터",
"body": [
"@Watch('${1:path}'${2:, { immediate: true, deep: true \\}})\n${3:onMethodChanged}(val${4::string}, oldVal${5::string}) {",
"\t$0",
"};"
]
},
"Vue Emit": {
"prefix": "v-emit",
"description": "Vue TypeScript @Emit 데코레이터",
"body": [
"@Emit(${1:'event'})\n${2:methodName}() {",
"\t$0",
"}"
]
},
"Vue Component Http": {
"prefix": "v-component-http",
"description": "Vue 컴포넌트 with HTTP",
"body": [
"import Vue from 'vue';",
"import Component from 'vue-class-component';",
"import axios, { AxiosResponse } from 'axios';",
"",
"@Component({",
"\t${1:template: require('component.html')}",
"})",
"export class ${2:Component} extends Vue {",
"",
"\tprivate url:string = '$3';",
"",
"\tconstructor() {",
"\t\tsuper();",
"\t\tthis.axios = axios;",
"\t}",
"",
"\tmounted() {",
"\t\tthis.axios.get(this.url).then((response: AxiosResponse) => {",
"\t\t\tthis.items = response.data;",
"\t\t\t$0",
"\t\t}, (error) => {",
"\t\t\tconsole.error(error);",
"\t\t});",
"\t}",
"}"
]
},
"Vue Routes": {
"prefix": "v-routing",
"description": "Vue 라우팅 파일",
"body": [
"import Vue from 'vue';",
"import VueRouter from 'vue-router';",
"",
"Vue.use(VueRouter);",
"",
"let router:VueRouter = new VueRouter({",
"\troutes: [",
"\t\t{ path: '${1:path}', component: ${2:ComponentName} },",
"\t\t$3",
"\t]",
"});",
"",
"${4:new Vue({",
"\tel: '#app-main',",
"\trouter: router",
"\\});}"
]
},
"Vue Service Class": {
"prefix": "v-service",
"description": "서비스 클래스(싱글톤)",
"body": [
"class ${Feature}Service {",
"",
"\tprivate static _instance: ${Feature}Service;",
"",
"\tprivate constructor() {",
"\t}",
"",
"\tstatic createInstance() {",
"\t\t${Feature}Service.getInstance();",
"\t}",
"",
"\tstatic getInstance() {",
"\t\treturn this._instance || (this._instance = new this());",
"\t}",
"$0",
"}"
]
},
"Vuex Store": {
"prefix": "v-store",
"description": "Vuex 스토어",
"body": [
"import axios from 'axios';",
"import { ActionContext, Store } from 'vuex';",
"import { getStoreAccessors } from 'vuex-typescript';",
"",
"export interface Product {",
"\tid: number;",
"\tname: string;",
"\tunitPrice: number;",
"}",
"",
"export interface ProductInBasket {",
"\tproduct: Product;",
"\tisSelected: boolean;",
"}",
"",
"export interface BasketState {",
"\titems: ProductInBasket[];",
"\ttotalAmount: number;",
"}",
"",
"type BasketContext = ActionContext<BasketState, BasketState>;",
"",
"export const basket = {",
"\tnamespaced: false,",
"",
"\tstate: {",
"\t\titems: [],",
"\t\ttotalAmount: 0,",
"\t},",
"",
"\tgetters: {",
"\t\tgetProductNames(state: BasketState) {",
"\t\t\treturn state.items.map((item) => item.product.name);",
"\t\t},",
"\t\tgetTotalAmountWithoutDiscount(state: BasketState) {",
"\t\t\treturn state.items.reduce((total, item) => total + item.product.unitPrice, 0);",
"\t\t},",
"\t},",
"",
"\tmutations: {",
"\t\tappendItem(state: BasketState, item: { product: Product; atTheEnd: boolean }) {",
"\t\t\tstate.items.push({ product: item.product, isSelected: false });",
"\t\t},",
"\t\tsetTotalAmount(state: BasketState, totalAmount: number) {",
"\t\t\tstate.totalAmount = totalAmount;",
"\t\t},",
"\t},",
"",
"\tactions: {",
"\t\tasync updateTotalAmount(context: BasketContext, discount: number): Promise<void> {",
"\t\t\tconst totalBeforeDiscount = readTotalAmountWithoutDiscount(context);",
"\t\t\tconst response = await axios.get(`/api/calculatetotal/\\${totalBeforeDiscount}/\\${discount}`);",
"\t\t\tcommitSetTotalAmount(context, response.data.totalAfterDiscount);",
"\t\t},",
"\t},",
"};",
"",
"export const createStore = () => new Store<BasketState>(basket);",
"",
"const { commit, read, dispatch } = getStoreAccessors<BasketState, BasketState>('');",
"",
"export const readProductNames = read(basket.getters.getProductNames);",
"export const readTotalAmountWithoutDiscount = read(basket.getters.getTotalAmountWithoutDiscount);",
"export const dispatchUpdateTotalAmount = dispatch(basket.actions.updateTotalAmount);",
"export const commitAppendItem = commit(basket.mutations.appendItem);",
"export const commitSetTotalAmount = commit(basket.mutations.setTotalAmount);",
"$0",
""
]
},
"Vue Component using Vuex store": {
"prefix": "v-component-store",
"description": "Vue 컴포넌트 with Vuex 스토어",
"body": [
"import Vue from 'vue';",
"import Component from 'vue-class-component';",
"import { readProductNames, readTotalAmountWithoutDiscount, dispatchUpdateTotalAmount } from './store';",
"",
"@Component({",
"\ttemplate: require('./basket.html')",
"})",
"export class BasketComponent extends Vue {",
"\t",
"\tget productNames() {",
"\t\treturn readProductNames(this.\\$store);",
"\t}",
"",
"\tget totalAmountWithoutDiscount() {",
"\t\treturn readTotalAmountWithoutDiscount(this.\\$store);",
"\t}",
"",
"\tupdateTotal() {",
"\t\tdispatchUpdateTotalAmount(this.\\$store, 10);",
"\t}",
"}",
"$0",
""
]
}
}
{
"vBind": {
"prefix": "v-bind",
"body": [
"v-bind=\"$attrs\""
],
"description": "vue.js - v-bind 디렉티브로 연결된 속성 집합(객체) 설정"
},
"vIf": {
"prefix": "v-if",
"body": [
"v-if=\"${1:expression}\""
],
"description": "vue.js - if 디렉티브"
},
"vElseIf": {
"prefix": "v-else-if",
"body": [
"v-else-if=\"${1:expression}\" $0"
],
"description": "vue.js - else if 디렉티브"
},
"vFor": {
"prefix": "v-for",
"body": [
"v-for=\"${2:item} in ${1:items}\"$0"
],
"description": "vue.js - for 디렉티브"
},
"vFor Index": {
"prefix": "v-for-i",
"body": [
"v-for=\"(${2:item},${3:i}) in ${1:items}\" :key=\"${3:i}\"$0"
],
"description": "vue.js - for 디렉티브"
},
"vClass": {
"prefix": "v-class",
"body": [
"${1:v-bind}:class=\"{${1:cssClass}: ${2:expression}}\""
],
"description": "vue.js - class 디렉티브"
},
"vHref": {
"prefix": "v-href",
"body": [
"${1:v-bind}:href=\"${1:expression}\""
],
"description": "vue.js - href 디렉티브"
},
"vShow": {
"prefix": "v-show",
"body": [
"v-show=\"${1:expression}\""
],
"description": "vue.js - show 디렉티브"
},
"vModel": {
"prefix": "v-model",
"body": [
"v-model=\"${1:expression}\""
],
"description": "vue.js - model 디렉티브"
},
"vOn": {
"prefix": "v-on",
"body": [
"v-on=\"$listeners\""
],
"description": "vue.js - 상위 컴포넌트의 v-on 이벤트 상속"
},
"vOnSubmit": {
"prefix": "v-@submit",
"body": [
"@submit${2:.prevent}=\"${1:expression}\""
],
"description": "vue.js - @submit 이벤트"
},
"vOnClick": {
"prefix": "v-@click",
"body": [
"@click{2:.prevent}=\"${1:expression}\""
],
"description": "vue.js - @click 이벤트"
},
"vRouterView": {
"prefix": "v-routerView",
"body": [
"<router-view>${1:Loading...}</router-view>"
],
"description": "vue.js - 라우터 뷰"
},
"vRouterLink": {
"prefix": "v-routerLink",
"body": [
"<router-link ${1:v-bind}:to=\"${2:linkPath}\">${3:linkName}</router-link>"
],
"description": "vue.js - 라우터 링크"
}
}
{
"Vue TypeScript 템플릿": {
"prefix": "vt-template",
"description": "Vue TypeScript 컴포넌트",
"body": [
"<template>",
"",
"</template>",
"",
"<script lang=\"ts\">",
"\timport Vue from 'vue';",
"\timport { Component${1:, Prop, Emit, Watch} } from 'vue-property-decorator';",
"",
"\t@Component($3)",
"\texport default class ${2:Component} extends Vue {",
"\t\t$0",
"\t};",
"</script>",
"",
"<style>",
"",
"</style>"
]
},
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment