├── .travis.yml ├── snippets └── javascript │ ├── misc-debugger.snippets │ ├── misc-alert.snippets │ ├── misc-prompt.snippets │ ├── misc-use-strict.snippets │ ├── console-dir.snippets │ ├── console-log.snippets │ ├── json-parse.snippets │ ├── let-definition.snippet │ ├── misc-confirm.snippets │ ├── console-error.snippets │ ├── console-info.snippets │ ├── console-warn.snippets │ ├── const-definition.snippet │ ├── json-stringify.snippets │ ├── arrow-function-expression.snippets │ ├── class-definition.snippet │ ├── flow-if.snippets │ ├── dom-append-child.snippets │ ├── dom-inner-html.snippets │ ├── dom-remove-child.snippets │ ├── arrow-function-body.snippets │ ├── dom-create-element.snippets │ ├── dom-get-attribute.snippets │ ├── dom-text-content.snippets │ ├── loop-while.snippets │ ├── module-import.snippets │ ├── timer-set-interval.snippets │ ├── timer-set-timeout.snippets │ ├── class-extends.snippet │ ├── dom-class-list-add.snippets │ ├── dom-get-element-by-id.snippets │ ├── dom-query-selector.snippets │ ├── dom-remove-attribute.snippets │ ├── function-anonymous.snippets │ ├── function-name.snippets │ ├── dom-class-list-remove.snippets │ ├── dom-class-list-toggle.snippets │ ├── dom-set-attribute.snippets │ ├── flow-try-finally.snippets │ ├── loop-for-of.snippets │ ├── loop-for.snippets │ ├── dom-query-selector-all.snippets │ ├── function-anonymous-generator.snippets │ ├── function-generator.snippets │ ├── loop-for-each.snippets │ ├── dom-create-document-fragment.snippets │ ├── dom-get-elements-by-tag-name.snippets │ ├── flow-if-else.snippets │ ├── flow-try-catch.snippets │ ├── dom-add-event-listener.snippets │ ├── dom-get-elements-by-classname.snippets │ ├── flow-switch.snippets │ ├── flow-if-else-if.snippets │ ├── loop-for-in.snippets │ └── flow-try-catch-finally.snippets ├── .editorconfig ├── package.json ├── .gitignore ├── LICENSE └── README.md /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | node_js: 4 | - 0.10 5 | -------------------------------------------------------------------------------- /snippets/javascript/misc-debugger.snippets: -------------------------------------------------------------------------------- 1 | snippet de 2 | debugger 3 | -------------------------------------------------------------------------------- /snippets/javascript/misc-alert.snippets: -------------------------------------------------------------------------------- 1 | snippet al 2 | alert(${1:msg}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/misc-prompt.snippets: -------------------------------------------------------------------------------- 1 | snippet pm 2 | prompt(${1:msg}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/misc-use-strict.snippets: -------------------------------------------------------------------------------- 1 | snippet us 2 | 'use strict' 3 | -------------------------------------------------------------------------------- /snippets/javascript/console-dir.snippets: -------------------------------------------------------------------------------- 1 | snippet cd 2 | console.dir(${1:obj}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/console-log.snippets: -------------------------------------------------------------------------------- 1 | snippet cl 2 | console.log(${1:obj}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/json-parse.snippets: -------------------------------------------------------------------------------- 1 | snippet jp 2 | JSON.parse(${1:obj}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/let-definition.snippet: -------------------------------------------------------------------------------- 1 | snippet let 2 | let ${1} = ${0} 3 | -------------------------------------------------------------------------------- /snippets/javascript/misc-confirm.snippets: -------------------------------------------------------------------------------- 1 | snippet co 2 | confirm(${1:msg}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/console-error.snippets: -------------------------------------------------------------------------------- 1 | snippet ce 2 | console.error(${1:obj}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/console-info.snippets: -------------------------------------------------------------------------------- 1 | snippet ci 2 | console.info(${1:obj}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/console-warn.snippets: -------------------------------------------------------------------------------- 1 | snippet cw 2 | console.warn(${1:obj}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/const-definition.snippet: -------------------------------------------------------------------------------- 1 | snippet const 2 | const ${1} = ${0} 3 | -------------------------------------------------------------------------------- /snippets/javascript/json-stringify.snippets: -------------------------------------------------------------------------------- 1 | snippet js 2 | JSON.stringify(${1:obj}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/arrow-function-expression.snippets: -------------------------------------------------------------------------------- 1 | snippet afe 2 | (${1}) => ${2} 3 | -------------------------------------------------------------------------------- /snippets/javascript/class-definition.snippet: -------------------------------------------------------------------------------- 1 | snippet cla 2 | class ${1} { 3 | ${0} 4 | } 5 | -------------------------------------------------------------------------------- /snippets/javascript/flow-if.snippets: -------------------------------------------------------------------------------- 1 | snippet if 2 | if (${1:condition}) { 3 | ${0} 4 | } 5 | -------------------------------------------------------------------------------- /snippets/javascript/dom-append-child.snippets: -------------------------------------------------------------------------------- 1 | snippet ac 2 | ${1:document}.appendChild(${2:elem}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/dom-inner-html.snippets: -------------------------------------------------------------------------------- 1 | snippet ih 2 | ${1:document}.innerHTML = '${2:html}' 3 | -------------------------------------------------------------------------------- /snippets/javascript/dom-remove-child.snippets: -------------------------------------------------------------------------------- 1 | snippet rc 2 | ${1:document}.removeChild(${2:elem}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/arrow-function-body.snippets: -------------------------------------------------------------------------------- 1 | snippet afb 2 | (${1}) => { 3 | ${2} 4 | } 5 | 6 | -------------------------------------------------------------------------------- /snippets/javascript/dom-create-element.snippets: -------------------------------------------------------------------------------- 1 | snippet cel 2 | ${1:document}.createElement(${2:elem}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/dom-get-attribute.snippets: -------------------------------------------------------------------------------- 1 | snippet ga 2 | ${1:document}.getAttribute('${2:attr}') 3 | -------------------------------------------------------------------------------- /snippets/javascript/dom-text-content.snippets: -------------------------------------------------------------------------------- 1 | snippet tc 2 | ${1:document}.textContent = '${2:content}' 3 | -------------------------------------------------------------------------------- /snippets/javascript/loop-while.snippets: -------------------------------------------------------------------------------- 1 | snippet while 2 | while (${1:condition}) { 3 | ${0} 4 | } 5 | -------------------------------------------------------------------------------- /snippets/javascript/module-import.snippets: -------------------------------------------------------------------------------- 1 | snippet imp 2 | import ${1:module} from '${2:path}' 3 | 4 | -------------------------------------------------------------------------------- /snippets/javascript/timer-set-interval.snippets: -------------------------------------------------------------------------------- 1 | snippet st 2 | setTimeout(${2:function}, ${1:duration}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/timer-set-timeout.snippets: -------------------------------------------------------------------------------- 1 | snippet si 2 | setInterval(${2:function}, ${1:duration}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/class-extends.snippet: -------------------------------------------------------------------------------- 1 | snippet clex 2 | class ${1} extends ${2} { 3 | ${0} 4 | } 5 | 6 | -------------------------------------------------------------------------------- /snippets/javascript/dom-class-list-add.snippets: -------------------------------------------------------------------------------- 1 | snippet ca 2 | ${1:document}.classList.add('${2:class}') 3 | -------------------------------------------------------------------------------- /snippets/javascript/dom-get-element-by-id.snippets: -------------------------------------------------------------------------------- 1 | snippet gi 2 | ${1:document}.getElementById('${2:id}') 3 | -------------------------------------------------------------------------------- /snippets/javascript/dom-query-selector.snippets: -------------------------------------------------------------------------------- 1 | snippet qs 2 | ${1:document}.querySelector('${2:selector}') 3 | -------------------------------------------------------------------------------- /snippets/javascript/dom-remove-attribute.snippets: -------------------------------------------------------------------------------- 1 | snippet ra 2 | ${1:document}.removeAttribute('${2:attr}') 3 | -------------------------------------------------------------------------------- /snippets/javascript/function-anonymous.snippets: -------------------------------------------------------------------------------- 1 | snippet afn 2 | function (${1}) { 3 | ${2} 4 | } 5 | 6 | -------------------------------------------------------------------------------- /snippets/javascript/function-name.snippets: -------------------------------------------------------------------------------- 1 | snippet fn 2 | function ${1:name} (${2}) { 3 | ${3} 4 | } 5 | 6 | -------------------------------------------------------------------------------- /snippets/javascript/dom-class-list-remove.snippets: -------------------------------------------------------------------------------- 1 | snippet cr 2 | ${1:document}.classList.remove('${2:class}') 3 | -------------------------------------------------------------------------------- /snippets/javascript/dom-class-list-toggle.snippets: -------------------------------------------------------------------------------- 1 | snippet ct 2 | ${1:document}.classList.toggle('${2:class}') 3 | -------------------------------------------------------------------------------- /snippets/javascript/dom-set-attribute.snippets: -------------------------------------------------------------------------------- 1 | snippet sa 2 | ${1:document}.setAttribute('${2:attr}', ${3:value}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/flow-try-finally.snippets: -------------------------------------------------------------------------------- 1 | snippet tf 2 | try { 3 | ${1} 4 | } finally { 5 | ${0} 6 | } 7 | -------------------------------------------------------------------------------- /snippets/javascript/loop-for-of.snippets: -------------------------------------------------------------------------------- 1 | snippet forof 2 | for (let ${1:elem} of ${2:obj}) { 3 | ${0} 4 | } 5 | -------------------------------------------------------------------------------- /snippets/javascript/loop-for.snippets: -------------------------------------------------------------------------------- 1 | snippet for 2 | for (let i = 0 i < ${1:length} i++) { 3 | ${0} 4 | } 5 | -------------------------------------------------------------------------------- /snippets/javascript/dom-query-selector-all.snippets: -------------------------------------------------------------------------------- 1 | snippet qsa 2 | ${1:document}.querySelectorAll('${2:selector}') 3 | -------------------------------------------------------------------------------- /snippets/javascript/function-anonymous-generator.snippets: -------------------------------------------------------------------------------- 1 | snippet afgn 2 | function* (${1}) { 3 | ${2} 4 | } 5 | 6 | -------------------------------------------------------------------------------- /snippets/javascript/function-generator.snippets: -------------------------------------------------------------------------------- 1 | snippet fgn 2 | function* ${1:name} (${2}) { 3 | ${3} 4 | } 5 | 6 | -------------------------------------------------------------------------------- /snippets/javascript/loop-for-each.snippets: -------------------------------------------------------------------------------- 1 | snippet foreach 2 | ${1:array}.forEach((${2:item}) => { 3 | ${0} 4 | }) 5 | -------------------------------------------------------------------------------- /snippets/javascript/dom-create-document-fragment.snippets: -------------------------------------------------------------------------------- 1 | snippet cdf 2 | ${1:document}.createDocumentFragment(${2:elem}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/dom-get-elements-by-tag-name.snippets: -------------------------------------------------------------------------------- 1 | snippet gt 2 | ${1:document}.getElementsByTagName('${2:tag}') 3 | -------------------------------------------------------------------------------- /snippets/javascript/flow-if-else.snippets: -------------------------------------------------------------------------------- 1 | snippet ife 2 | if (${1:condition}) { 3 | ${2} 4 | } else { 5 | ${0} 6 | } 7 | -------------------------------------------------------------------------------- /snippets/javascript/flow-try-catch.snippets: -------------------------------------------------------------------------------- 1 | snippet tc 2 | try { 3 | ${1} 4 | } catch (${2:err}) { 5 | ${0} 6 | } 7 | -------------------------------------------------------------------------------- /snippets/javascript/dom-add-event-listener.snippets: -------------------------------------------------------------------------------- 1 | snippet ae 2 | ${1:document}.addEventListener('${2:event}', ${3:function}) 3 | -------------------------------------------------------------------------------- /snippets/javascript/dom-get-elements-by-classname.snippets: -------------------------------------------------------------------------------- 1 | snippet gc 2 | ${1:document}.getElementsByClassName('${2:class}') 3 | -------------------------------------------------------------------------------- /snippets/javascript/flow-switch.snippets: -------------------------------------------------------------------------------- 1 | snippet switch 2 | switch (${1:condition}) { 3 | case ${2:when}: 4 | ${0} 5 | } 6 | -------------------------------------------------------------------------------- /snippets/javascript/flow-if-else-if.snippets: -------------------------------------------------------------------------------- 1 | snippet ifei 2 | if (${1:condition}) { 3 | ${2} 4 | } else if (${3:condition}) { 5 | ${0} 6 | } 7 | -------------------------------------------------------------------------------- /snippets/javascript/loop-for-in.snippets: -------------------------------------------------------------------------------- 1 | snippet forin 2 | for (${1:prop} in ${2:obj}) { 3 | if ($2.hasOwnProperty($1)) { 4 | ${0} 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /snippets/javascript/flow-try-catch-finally.snippets: -------------------------------------------------------------------------------- 1 | snippet tcf 2 | try { 3 | ${1} 4 | } catch (${2:err}) { 5 | ${3} 6 | } finally { 7 | ${0} 8 | } 9 | 10 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = false 6 | indent_style = space 7 | indent_size = 2 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vim-javascript-snippets", 3 | "version": "1.0.0", 4 | "description": "Javascript & Node.js snippets for Vim", 5 | "main": "index.js", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/grvcoelho/vim-javascript-snippets.git" 9 | }, 10 | "author": "@grvcoelho", 11 | "license": "MIT", 12 | "bugs": { 13 | "url": "https://github.com/grvcoelho/vim-javascript-snippets/issues" 14 | }, 15 | "homepage": "https://github.com/grvcoelho/vim-javascript-snippets#readme" 16 | } 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | 5 | # Runtime data 6 | pids 7 | *.pid 8 | *.seed 9 | 10 | # Directory for instrumented libs generated by jscoverage/JSCover 11 | lib-cov 12 | 13 | # Coverage directory used by tools like istanbul 14 | coverage 15 | 16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 17 | .grunt 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # Compiled binary addons (http://nodejs.org/api/addons.html) 23 | build/Release 24 | 25 | # Dependency directory 26 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git 27 | node_modules 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Guilherme Rv Coelho 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vim-javascript-snippets 2 | [![Build Status](https://travis-ci.org/grvcoelho/vim-javascript-snippets.svg?branch=master)](https://travis-ci.org/grvcoelho/vim-javascript-snippets) 3 | 4 | A collection of Javascript (with ES2015 and Node.js) snippets for Vim heavily based on the work of awesome people like [@zenorocha](https://github.com/zenorocha), [@msanders](https://github.com/msanders) and [@honza](https://github.com/honza) and powered by [vim-snipmate](https://github.com/garbas/vim-snipmate). 5 | 6 | ![Demo](https://cloud.githubusercontent.com/assets/7416751/12782176/84ba8efc-ca60-11e5-9be6-8d0221c43a84.gif) 7 | 8 | ## Install 9 | 10 | You need [vim-snipmate](https://github.com/garbas/vim-snipmate) installed. You can then install, using [Plug](https://github.com/junegunn/vim-plug) (or any other vim plugin manager you want): 11 | 12 | ``` 13 | Plug 'grvcoelho/vim-javascript-snippets' 14 | ``` 15 | 16 | ## Console 17 | 18 | ### [cd] console.dir 19 | 20 | ```javascript 21 | console.dir(${1:obj}) 22 | ``` 23 | 24 | ### [ce] console.error 25 | 26 | ```javascript 27 | console.error(${1:obj}) 28 | ``` 29 | 30 | ### [ci] console.info 31 | 32 | ```javascript 33 | console.info(${1:obj}) 34 | ``` 35 | 36 | ### [cl] console.log 37 | 38 | ```javascript 39 | console.log(${1:obj}) 40 | ``` 41 | 42 | ### [cw] console.warn 43 | 44 | ```javascript 45 | console.warn(${1:obj}) 46 | ``` 47 | 48 | ### [de] debugger 49 | 50 | ```javascript 51 | debugger 52 | ``` 53 | 54 | ## DOM 55 | 56 | ### [ae] addEventListener 57 | 58 | ```javascript 59 | ${1:document}.addEventListener('${2:event}', ${3:function}) 60 | ``` 61 | 62 | ### [ac] appendChild 63 | ```javascript 64 | ${1:document}.appendChild(${2:elem}) 65 | ``` 66 | 67 | ### [rc] removeChild 68 | ```javascript 69 | ${1:document}.removeChild(${2:elem}) 70 | ``` 71 | 72 | ### [cel] createElement 73 | ```javascript 74 | ${1:document}.createElement(${2:elem}) 75 | ``` 76 | 77 | ### [cdf] createDocumentFragment 78 | ```javascript 79 | ${1:document}.createDocumentFragment(${2:elem}) 80 | ``` 81 | 82 | ### [ca] classList.add 83 | ```javascript 84 | ${1:document}.classList.add('${2:class}') 85 | ``` 86 | 87 | ### [ct] classList.toggle 88 | ```javascript 89 | ${1:document}.classList.toggle('${2:class}') 90 | ``` 91 | 92 | ### [cr] classList.remove 93 | ```javascript 94 | ${1:document}.classList.remove('${2:class}') 95 | ``` 96 | 97 | ### [gi] getElementById 98 | ```javascript 99 | ${1:document}.getElementById('${2:id}') 100 | ``` 101 | 102 | ### [gc] getElementsByClassName 103 | ```javascript 104 | ${1:document}.getElementsByClassName('${2:class}') 105 | ``` 106 | 107 | ### [gt] getElementsByTagName 108 | ```javascript 109 | ${1:document}.getElementsByTagName('${2:tag}') 110 | ``` 111 | 112 | ### [ga] getAttribute 113 | ```javascript 114 | ${1:document}.getAttribute('${2:attr}') 115 | ``` 116 | 117 | ### [sa] setAttribute 118 | ```javascript 119 | ${1:document}.setAttribute('${2:attr}', ${3:value}) 120 | ``` 121 | 122 | ### [ra] removeAttribute 123 | ```javascript 124 | ${1:document}.removeAttribute('${2:attr}') 125 | ``` 126 | 127 | ### [ih] innerHTML 128 | ```javascript 129 | ${1:document}.innerHTML = '${2:elem}' 130 | ``` 131 | 132 | ### [tc] textContent 133 | ```javascript 134 | ${1:document}.textContent = '${2:content}' 135 | ``` 136 | 137 | ### [qs] querySelector 138 | ```javascript 139 | ${1:document}.querySelector('${2:selector}') 140 | ``` 141 | 142 | ### [qsa] querySelectorAll 143 | ```javascript 144 | ${1:document}.querySelectorAll('${2:selector}') 145 | ``` 146 | 147 | ## Flow 148 | 149 | ### [if] if 150 | 151 | ```javascript 152 | if (${1:condition}) { 153 | ${0} 154 | } 155 | ``` 156 | 157 | ### [ife] if else 158 | ```javascript 159 | if (${1:condition}) { 160 | ${2} 161 | } else { 162 | ${3} 163 | } 164 | ``` 165 | 166 | ### [ifei] if else if 167 | 168 | ```javascript 169 | if (${1:condition}) { 170 | ${2} 171 | } else if (${3:condition}) { 172 | ${0} 173 | } 174 | ``` 175 | 176 | ### [switch] switch 177 | 178 | ```javascript 179 | switch (${1:condition}) { 180 | case ${2:when}: 181 | ${0} 182 | } 183 | ``` 184 | 185 | ### [tc] try catch 186 | 187 | ```javascript 188 | try { 189 | ${1} 190 | } catch (${2:err}) { 191 | ${0} 192 | } 193 | ``` 194 | 195 | ### [tf] try finally 196 | 197 | ```javascript 198 | try { 199 | ${1} 200 | } finally { 201 | ${0} 202 | } 203 | ``` 204 | 205 | ### [tcf] try catch finally 206 | 207 | ```javascript 208 | try { 209 | ${1} 210 | } catch (${2:err}) { 211 | ${3} 212 | } finally { 213 | ${0} 214 | } 215 | ``` 216 | 217 | ## Function 218 | 219 | ### [fn] function 220 | 221 | ```javascript 222 | function ${1:name} (${2}) { 223 | ${3} 224 | } 225 | ``` 226 | 227 | ### [afn] anonymous function 228 | 229 | ```javascript 230 | function (${1}) { 231 | ${2} 232 | } 233 | ``` 234 | 235 | ### [fgn] generator 236 | 237 | ```javascript 238 | function* ${1:name} (${2}) { 239 | ${3} 240 | } 241 | ``` 242 | 243 | ### [afgn] anonymous generator 244 | 245 | ```javascript 246 | function* (${1}) { 247 | ${2} 248 | } 249 | ``` 250 | 251 | ### [afe] arrow function (expression) 252 | 253 | ```javascript 254 | (${1}) => ${2} 255 | ``` 256 | 257 | ### [afb] arrow function (body) 258 | ```javascript 259 | (${1}) => { 260 | ${2} 261 | } 262 | ``` 263 | 264 | ## Variables 265 | 266 | ### [const] const 267 | ``` 268 | const ${1} = ${0} 269 | ``` 270 | 271 | ### [let] let 272 | ```javascript 273 | let ${1} = ${0} 274 | ``` 275 | 276 | ## JSON 277 | 278 | ### [jp] json parse 279 | 280 | ```javascript 281 | JSON.parse(${1:obj}) 282 | ``` 283 | 284 | ### [js] json stringify 285 | 286 | ```javascript 287 | JSON.stringify(${1:obj}) 288 | ``` 289 | 290 | ## Loop 291 | 292 | ### [for] for 293 | ```javascript 294 | for (let i = 0 i < ${1:length} i++) { 295 | ${0} 296 | } 297 | ``` 298 | 299 | ### [forin] for in 300 | ```javascript 301 | for (${1:prop} in ${2:obj}) { 302 | if ($2.hasOwnProperty($1)) { 303 | ${0} 304 | } 305 | } 306 | ``` 307 | 308 | ### [forof] for of 309 | ```javascript 310 | for (let ${1:elem} of ${2:obj}) { 311 | ${0} 312 | } 313 | ``` 314 | 315 | ### [foreach] forEach 316 | ```javascript 317 | ${1:array}.forEach((${2:item}) => { 318 | ${0} 319 | }) 320 | ``` 321 | 322 | ### [while] while 323 | ```javascript 324 | while (${1:condition}) { 325 | ${0} 326 | } 327 | ``` 328 | 329 | ## Class 330 | 331 | ### [cla] class definition 332 | ```javascript 333 | class ${1} { 334 | ${0} 335 | } 336 | ``` 337 | 338 | ### [clex] class definition with extends 339 | ```javascript 340 | class ${1} extends ${2} { 341 | ${0} 342 | } 343 | ``` 344 | 345 | ## Module 346 | 347 | ### [imp] import 348 | ```javascript 349 | import ${1:module} from '{2:path}' 350 | ``` 351 | 352 | ## Contributing 353 | 354 | 1. Fork it! 355 | 2. Create your feature branch: `git checkout -b my-new-feature` 356 | 3. Commit your changes: `git commit -m 'Add some feature'` 357 | 4. Push to the branch: `git push origin my-new-feature` 358 | 5. Submit a pull request :D 359 | 360 | ## License 361 | [MIT](https://github.com/grvcoelho/vim-javascript-snippets/blob/master/LICENSE) © 2016 362 | 363 | --------------------------------------------------------------------------------