├── .gitignore ├── .npmignore ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── package.json ├── snippets ├── html.cson ├── js-RN.cson ├── js-array.cson ├── js-bdd.cson ├── js-class.cson ├── js-console.cson ├── js-dom.cson ├── js-flow-control.cson ├── js-for.cson ├── js-function.cson ├── js-hint.cson ├── js-json.cson ├── js-jsx.cson ├── js-module.cson ├── js-object.cson ├── js-othor.cson ├── js-promise.cson ├── js-react.cson ├── js-simple-word.cson ├── js-tips.cson ├── js-types.cson ├── md.cson └── write-snippet.cson └── zh-cn-README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | npm-debug.log 3 | node_modules 4 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | npm-debug.log 3 | node_modules 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 0.1.0 - First Release 2 | * Every feature added 3 | * Every bug fixed 4 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # simplyy-snippets atom package 2 | [中文文档](https://github.com/SimplyY/simplyy-snippets/blob/master/zh-cn-README.md) 3 | 4 | avoid different atom snippets package's repeat snippets and unify all of their snippets style。 5 | 6 | a lot of js snippets collections, with es6 grammer,no semicolon style, learned from other package like javascript-snippets,turbo-javascript etc(copy and inprove, so avoid their repeat snippets and unify all of their snippets style) 7 | 8 | ## install 9 | apm install simplyy-snippets 10 | 11 | ## demo 12 | ![demo](http://7xkpdt.com1.z0.glb.clouddn.com/blog-2-29-test.gif) 13 | 14 | ## purpose 15 | when you install mutipackages, you will find snippets style is a mess, and different snippets even has lots of conflicts in some keyword 16 | 17 | I can't bear it, so I write this package by learning other snippets packages, avoid their repeat snippets and unify all of their snippets style 18 | 19 | ## snippets list 20 | you also can read snippets learning js 21 | 22 | ![](http://7xkpdt.com1.z0.glb.clouddn.com/9f771f6c35cf419f2ddea1e0580a84d1.png) 23 | 24 | ## learned snippets packages 25 | - javascript-snippets 26 | - nodejs-snippets 27 | - turbo-javascript 28 | 29 | ![A screenshot of your package](https://f.cloud.github.com/assets/69169/2290250/c35d867a-a017-11e3-86be-cd7c5bf3ff9b.gif) 30 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "simplyy-snippets", 3 | "main": "./lib/simplyy-snippets", 4 | "version": "0.4.16", 5 | "description": "a lot of js snippets collections, with no semicolon,es6 grammer learned from javascript-snippets,turbo-javascript,nodejs-snippets(copy and inprove, so avoid repeat snippets and unify all of their snippets style)", 6 | "keywords": [ 7 | "snippets", 8 | "js", 9 | "simplyy", 10 | "atom" 11 | ], 12 | "activationCommands": { 13 | "atom-workspace": "simplyy-snippets:toggle" 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "git+https://github.com/SimplyY/simplyy-snippets.git" 18 | }, 19 | "license": "MIT", 20 | "engines": { 21 | "atom": ">=1.0.0 <2.0.0" 22 | }, 23 | "dependencies": {} 24 | } 25 | -------------------------------------------------------------------------------- /snippets/html.cson: -------------------------------------------------------------------------------- 1 | '.text.html': 2 | 'css in html': 3 | 'prefix': 'stylecss' 4 | 'body': '' 5 | -------------------------------------------------------------------------------- /snippets/js-RN.cson: -------------------------------------------------------------------------------- 1 | '.source.js, .source.jsx, .source.ts': 2 | 'react native class': 3 | 'prefix': 'react native class' 4 | 'body': """ 5 | import React, { 6 | Component, 7 | StyleSheet, 8 | View 9 | } from \'react-native\' 10 | 11 | class ${1:className} extends Component { 12 | render() { 13 | return ( 14 | 15 | 16 | ) 17 | } 18 | } 19 | 20 | const styles = StyleSheet.create({ 21 | 22 | }) 23 | 24 | export default ${1:className} 25 | """ 26 | 'toast rn': 27 | 'prefix': 'toast rn' 28 | 'body': """ 29 | import { ToastAndroid } from 'react-native' 30 | ToastAndroid.show(${1:msgStr}, ToastAndroid.SHORT) 31 | """ 32 | 'style rn': 33 | 'prefix': 'style rn' 34 | 'body': 'style=\{$0\}' 35 | -------------------------------------------------------------------------------- /snippets/js-array.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.ts, .source.jsx": 2 | "array.filter": 3 | "prefix": "filter" 4 | "body": """ 5 | filter($0) 6 | """ 7 | "array.map arrow": 8 | "prefix": "filtera" 9 | "body": """ 10 | filter(item => ${0:item}) 11 | """ 12 | "array.filter muti arrow f": 13 | "prefix": "filterma" 14 | "body": """ 15 | filter(${2:item} => { 16 | \t${0:// body...maybe empty} 17 | \treturn 18 | }) 19 | """ 20 | "array.map": 21 | "prefix": "map" 22 | "body": """ 23 | map($0) 24 | """ 25 | "array.map arrow": 26 | "prefix": "mapa" 27 | "body": """ 28 | map(item => ${0:item}) 29 | """ 30 | "array.map muti arrow f": 31 | "prefix": "mapma" 32 | "body": """ 33 | map(${2:item} => { 34 | \t${0:// body...} 35 | \treturn 36 | }) 37 | """ 38 | "array.reduce": 39 | "prefix": "reduce" 40 | "body": """ 41 | reduce($0) 42 | """ 43 | "array.reduce arrow f": 44 | "prefix": "reducea" 45 | "body": """ 46 | reduce((${2:previousValue}, ${3:currentItem}) => { 47 | \t${0:// body...maybe empty} 48 | \treturn 49 | }) 50 | """ 51 | "array.forEach": 52 | "prefix": "forEach" 53 | "body": """ 54 | forEach($0) 55 | """ 56 | "array.forEach muti arrow f": 57 | "prefix": "foreachma" 58 | "body": """ 59 | forEach(${2:item} => { 60 | \t${0:// body...} 61 | }) 62 | """ 63 | "sequence from 0 to n": 64 | "prefix": "sequence" 65 | "body": """ 66 | [...Array(${1:length}).keys()]${0} 67 | """ 68 | "array.find": 69 | "prefix": "find" 70 | "body": "find($0)" 71 | "array.find muti arrow f": 72 | "prefix": "findma" 73 | "body": "find((${1:item}) => { 74 | \t${0:body} 75 | \treturn 76 | })" 77 | -------------------------------------------------------------------------------- /snippets/js-bdd.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.jsx, .source.ts": 2 | "describe": 3 | "prefix": "desc" 4 | "body": """ 5 | describe('${1:description}', function() { 6 | \t${0:// body...} 7 | }) 8 | """ 9 | "it pending": 10 | "prefix": "itp" 11 | "body": """ 12 | it('${1:description}') 13 | """ 14 | "it asynchronous": 15 | "prefix": "ita" 16 | "body": """ 17 | it('${1:description}', function(done) { 18 | \t${0:// body...} 19 | }) 20 | """ 21 | -------------------------------------------------------------------------------- /snippets/js-class.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.ts, .source.jsx": 2 | "class": 3 | prefix: "class" 4 | body: """ 5 | class ${1:name} { 6 | \tconstructor(${2:arguments}) { 7 | \t\t${0} 8 | \t} 9 | } 10 | """ 11 | "class extends": 12 | prefix: "classe" 13 | body: """ 14 | class ${1:name} extends ${2:base} { 15 | \tconstructor(${3:arguments}) { 16 | \t\tsuper(${3:arguments}) 17 | \t\t${0} 18 | \t} 19 | } 20 | """ 21 | 'class constructor': 22 | 'prefix': 'constructor class' 23 | 'body': """ 24 | constructor(props) { 25 | super(props) 26 | } 27 | """ 28 | -------------------------------------------------------------------------------- /snippets/js-console.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.jsx, .source.ts": 2 | 'console.dir': 3 | 'prefix': 'dir' 4 | 'body': 'console.dir($0)' 5 | 'console.log': 6 | 'prefix': 'log' 7 | 'body': 'console.log($0)' 8 | 'console.error': 9 | 'prefix': 'error' 10 | 'body': 'console.error($0)' 11 | -------------------------------------------------------------------------------- /snippets/js-dom.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.jsx, .source.ts": 2 | "addEventListener": 3 | "prefix": "adde" 4 | "body": """ 5 | addEventListener('${2:event}', function(e) { 6 | \t${0:// body...} 7 | }) 8 | """ 9 | "getAttribute": 10 | "prefix": "getAttribute" 11 | "body": """ 12 | getAttribute('${2:attr}') 13 | """ 14 | "removeAttribute": 15 | "prefix": "removeAttribute" 16 | "body": """ 17 | removeAttribute('${2:attr}') 18 | """ 19 | "setAttribute": 20 | "prefix": "setAttribute" 21 | "body": """ 22 | setAttribute('${2:attr}', ${3:value}) 23 | """ 24 | "appendChild": 25 | "prefix": "appendChild" 26 | "body": """ 27 | appendChild(${2:elem}) 28 | """ 29 | "removeChild": 30 | "prefix": "removeChild" 31 | "body": """ 32 | removeChild(${2:elem}) 33 | """ 34 | "createElement": 35 | "prefix": "createElement" 36 | "body": """ 37 | createElement(${2:elem}) 38 | """ 39 | "getElementsByClassName": 40 | "prefix": "getElementsByClassName" 41 | "body": """ 42 | getElementsByClassName('${2:class}') 43 | """ 44 | "getElementById": 45 | "prefix": "getElementById" 46 | "body": """ 47 | getElementById('${2:id}') 48 | """ 49 | "getElementsByTagName": 50 | "prefix": "getElementsByTagName" 51 | "body": """ 52 | getElementsByTagName('${2:tag}') 53 | """ 54 | "innerHTML": 55 | "prefix": "innerHTML" 56 | "body": """ 57 | innerHTML = '${2:elem}' 58 | """ 59 | "querySelector": 60 | "prefix": "querySelector" 61 | "body": """ 62 | querySelector('${2:selector}') 63 | """ 64 | "querySelectorAll": 65 | "prefix": "querySelectorAll" 66 | "body": """ 67 | querySelectorAll('${2:selector}') 68 | """ 69 | "textContent": 70 | "prefix": "textContent" 71 | "body": """ 72 | textContent = '${2:content}' 73 | """ 74 | # classList ie > 10 75 | "classList.add": 76 | "prefix": "classList.add" 77 | "body": """ 78 | classList.add('${2:class}') 79 | """ 80 | "classList.remove": 81 | "prefix": "classList.remove" 82 | "body": """ 83 | classList.remove('${2:class}') 84 | """ 85 | -------------------------------------------------------------------------------- /snippets/js-flow-control.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.ts, .source.jsx": 2 | "if statement": 3 | prefix: "if" 4 | body: """ 5 | if (${1:condition}) { 6 | \t${0} 7 | } 8 | """ 9 | "else statement": 10 | prefix: "else" 11 | body: """ 12 | else { 13 | \t${0} 14 | } 15 | """ 16 | "else if statement": 17 | prefix: "elseif" 18 | body: """ 19 | else if (${1:condition}) { 20 | \t${0} 21 | } 22 | """ 23 | "while loop": 24 | prefix: "while" 25 | body: """ 26 | while (${1:condition}) { 27 | \t${0} 28 | } 29 | """ 30 | "try/catch": 31 | prefix: "tryc" 32 | body: """ 33 | try { 34 | \t${1} 35 | } catch (${2:err}) { 36 | \t 37 | } 38 | """ 39 | "try/finally": 40 | prefix: "tryf" 41 | body: """ 42 | try { 43 | \t${0} 44 | } finally { 45 | \t 46 | } 47 | """ 48 | "try/catch/finally": 49 | prefix: "trycf" 50 | body: """ 51 | try { 52 | \t${1} 53 | } catch (${2:err}) { 54 | \t 55 | } finally { 56 | \t 57 | } 58 | """ 59 | "switch case": 60 | prefix: "switch" 61 | body: """ 62 | switch (${1:expression}) { 63 | \tcase ${2:value}: 64 | \t\t${0:code} 65 | \t\tbreak 66 | \tdefault: 67 | \t\t 68 | } 69 | """ 70 | -------------------------------------------------------------------------------- /snippets/js-for.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.jsx, .source.ts": 2 | "for(let i)": 3 | "prefix": "for" 4 | "body": """ 5 | for (let ${2:i} = 0; ${2:i} < ${1:array}.length; ${2:i}++) { 6 | \t${0:// body...} 7 | } 8 | """ 9 | "for(var i)": 10 | "prefix": "forv" 11 | "body": """ 12 | for (var ${2:i} = 0; ${2:i} < ${1:array}.length; ${2:i}++) { 13 | \t${0:// body...} 14 | } 15 | """ 16 | "forEach": 17 | "prefix": "forEach" 18 | "body": """ 19 | forEach(${0:function}) 20 | """ 21 | "forEach mutiline": 22 | "prefix": "forEacha" 23 | "body": """ 24 | forEach(${1:item} => { 25 | \t${0:// body...} 26 | }) 27 | """ 28 | "for in": 29 | "prefix": "forin" 30 | "body": """ 31 | for (let ${1:prop} in ${2:obj}) { 32 | \tif (${2:obj}.hasOwnProperty(${1:prop})) { 33 | \t\t${0:// body...} 34 | \t} 35 | } 36 | """ 37 | "for of": 38 | "prefix": "forof" 39 | "body": """ 40 | for (let ${1:prop} of ${2:obj}) { 41 | \t\t${0:// body...} 42 | \t} 43 | } 44 | """ 45 | -------------------------------------------------------------------------------- /snippets/js-function.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.jsx, .source.ts": 2 | 'arrow function a line': 3 | 'prefix': 'afun' 4 | 'body': "${1:arguments} => ${0:expression returned}" 5 | 'arrow function mutiline': 6 | 'prefix': 'afunm' 7 | 'body': """${1:arguments} => { 8 | ${2:statement} 9 | } 10 | """ 11 | "anonymous function": 12 | "prefix": "f" 13 | "body": """ 14 | function(${1:arguments}) { 15 | \t${0:// body...} 16 | } 17 | """ 18 | "function apply": 19 | "prefix": "apply" 20 | "body": """ 21 | apply(${2:this}, ${3:array}) 22 | """ 23 | "function call": 24 | "prefix": "call" 25 | "body": """ 26 | call(${2:this}, ${3:arguments}) 27 | """ 28 | "function bind": 29 | "prefix": "bind" 30 | "body": """ 31 | bind(${2:this}, ${3:arguments}) 32 | """ 33 | "immediately-invoked function expression": 34 | "prefix": "iife" 35 | "body": """ 36 | (function(window, document, undefined) { 37 | \t${0:// body...} 38 | })(window, document); 39 | """ 40 | "function with name": 41 | "prefix": "fn" 42 | "body": """ 43 | function ${1:methodName} (${2:arguments}) { 44 | \t${0:// body...} 45 | } 46 | """ 47 | "generator function": 48 | "prefix": "gfn" 49 | "body": """ 50 | function * ${1:methodName} (${2:arguments}) { 51 | \t${0:// body...} 52 | } 53 | """ 54 | "add prototype method": 55 | "prefix": "prototype" 56 | "body": """ 57 | prototype.${2:methodName} = function(${3:arguments}) { 58 | \t${0:// body...} 59 | } 60 | """ 61 | -------------------------------------------------------------------------------- /snippets/js-hint.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.jsx, .source.ts": 2 | "jshint ignore": 3 | "prefix": "jshint ignore" 4 | "body": """ 5 | /*jshint ignore:start*/ 6 | ${0} 7 | /*jshint ignore:end*/ 8 | """ 9 | -------------------------------------------------------------------------------- /snippets/js-json.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.jsx, .source.ts": 2 | "JSON.stringify": 3 | "prefix": "js" 4 | "body": "JSON.stringify(${0:obj})" 5 | "JSON.parse": 6 | "prefix": "jsonp" 7 | "body": "JSON.parse(${0:string})" 8 | -------------------------------------------------------------------------------- /snippets/js-jsx.cson: -------------------------------------------------------------------------------- 1 | ".source.jsx": 2 | 'jsx comment': 3 | 'prefix': 'comment' 4 | 'body': '{/* ${1:A JSX comment} */}' 5 | 'Anchor': 6 | 'prefix': 'a' 7 | 'body': '$2$0' 8 | 'Abbreviation': 9 | 'prefix': 'abbr' 10 | 'body': '$2$0' 11 | 'Address': 12 | 'prefix': 'address' 13 | 'body': '
\n\t$3\n
' 14 | 'Area': 15 | 'prefix': 'area' 16 | 'body': '$0' 17 | 'Article': 18 | 'prefix': 'article' 19 | 'body': '
\n\t$2\n
' 20 | 'Aside': 21 | 'prefix': 'aside' 22 | 'body': '' 23 | 'Audio': 24 | 'prefix': 'audio' 25 | 'body': '' 26 | # B 27 | 'Body': 28 | 'prefix': 'body' 29 | 'body': '\n\t$1\n' 30 | 'Bold': 31 | 'prefix': 'b' 32 | 'body': '$1$0' 33 | 'Base': 34 | 'prefix': 'base' 35 | 'body': '$0' 36 | 'Blockquote': 37 | 'prefix': 'blockquote' 38 | 'body': '
\n\t$2\n
' 39 | 'Line Breaker': 40 | 'prefix': 'br' 41 | 'body': '
' 42 | 'Button': 43 | 'prefix': 'button' 44 | 'body': '$0' 45 | # C 46 | 'Canvas': 47 | 'prefix': 'canvas' 48 | 'body': '$4$0' 49 | 'Caption': 50 | 'prefix': 'caption' 51 | 'body': '$1$0' 52 | 'Citation': 53 | 'prefix': 'cite' 54 | 'body': '$1$0' 55 | 'Code': 56 | 'prefix': 'code' 57 | 'body': '$1$0' 58 | 'Column': 59 | 'prefix': 'col' 60 | 'body': '$1$0' 61 | 'Column Group': 62 | 'prefix': 'colgroup' 63 | 'body': '$1$0' 64 | 'Content': 65 | 'prefix': 'content' 66 | 'body': '$2$0' 67 | 'Comment': 68 | 'prefix': '--' 69 | 'body': '$0' 70 | # D 71 | 'Data': 72 | 'prefix': 'data' 73 | 'body': '$2$0' 74 | 'Data List': 75 | 'prefix': 'datalist' 76 | 'body': '\n\t$2\n' 77 | 'Description': 78 | 'prefix': 'dd' 79 | 'body': '
$1
$0' 80 | 'Deleted Text': 81 | 'prefix': 'del' 82 | 'body': '$1$0' 83 | 'Details': 84 | 'prefix': 'details' 85 | 'body': '
$2
$0' 86 | 'Definition': 87 | 'prefix': 'dfn' 88 | 'body': '$1$0' 89 | 'Description List': 90 | 'prefix': 'dl' 91 | 'body': '
\n\t$2\n
' 92 | 'Definition Term': 93 | 'prefix': 'dt' 94 | 'body': '
$1
$0' 95 | 'Div': 96 | 'prefix': 'div' 97 | 'body': '
\n\t$3\n
' 98 | # E 99 | 'Emphasis': 100 | 'prefix': 'em' 101 | 'body': '$1$0' 102 | # F 103 | 'Fieldset': 104 | 'prefix': 'fieldset' 105 | 'body': '
$1
$0' 106 | 'Figure Caption': 107 | 'prefix': 'figcaption' 108 | 'body': '
$1
$0' 109 | 'Figure': 110 | 'prefix': 'figure' 111 | 'body': '
$1
$0' 112 | 'Footer': 113 | 'prefix': 'footer' 114 | 'body': '$0' 115 | 'Form': 116 | 'prefix': 'form' 117 | 'body': '
\n\t$4\n
' 118 | # G 119 | # H 120 | 'Heading 1': 121 | 'prefix': 'h1' 122 | 'body': '

$1

$0' 123 | 'Heading 2': 124 | 'prefix': 'h2' 125 | 'body': '

$1

$0' 126 | 'Heading 3': 127 | 'prefix': 'h3' 128 | 'body': '

$1

$0' 129 | 'Heading 4': 130 | 'prefix': 'h4' 131 | 'body': '

$1

$0' 132 | 'Heading 5': 133 | 'prefix': 'h5' 134 | 'body': '
$1
$0' 135 | 'Heading 6': 136 | 'prefix': 'h6' 137 | 'body': '
$1
$0' 138 | 'Head': 139 | 'prefix': 'head' 140 | 'body': '\n\t$1\n' 141 | 'Header': 142 | 'prefix': 'header' 143 | 'body': '
\n\t$1\n
' 144 | 'Horizontal Rule': 145 | 'prefix': 'hr' 146 | 'body': '
' 147 | 'HTML': 148 | 'prefix': 'html' 149 | 'body': '\n\n\t\n\t\t\n\t\t$1\n\t\n\t\n\t\t$2\n\t\n' 150 | # I 151 | 'Italic': 152 | 'prefix': 'i' 153 | 'body': '$1$0' 154 | 'Input': 155 | 'prefix': 'input' 156 | 'body': '$0' 157 | 'Image': 158 | 'prefix': 'img' 159 | 'body': '$2$0' 160 | 'Inserted Text': 161 | 'prefix': 'ins' 162 | 'body': '$1$0' 163 | # J 164 | # K 165 | 'Keyboard Input': 166 | 'prefix': 'kbd' 167 | 'body': '$1$0' 168 | 'Keygen': 169 | 'prefix': 'keygen' 170 | 'body': '$0' 171 | # L 172 | 'Label': 173 | 'prefix': 'label' 174 | 'body': '$3$0' 175 | 'Legend': 176 | 'prefix': 'legend' 177 | 'body': '$1$0' 178 | 'List Item': 179 | 'prefix': 'li' 180 | 'body': '
  • $1
  • $0' 181 | 'Link': 182 | 'prefix': 'link' 183 | 'body': '$0' 184 | # M 185 | 'Main': 186 | 'prefix': 'main' 187 | 'body': '
    \n\t$1\n
    ' 188 | 'Map': 189 | 'prefix': 'map' 190 | 'body': '\n\t$1\n' 191 | 'Mark': 192 | 'prefix': 'mark' 193 | 'body': '$1$0' 194 | 'Menu': 195 | 'prefix': 'menu' 196 | 'body': '\n\t$1\n' 197 | 'Menu Item': 198 | 'prefix': 'menuitem' 199 | 'body': '$0' 200 | 'Mail Anchor': 201 | 'prefix': 'mailto' 202 | 'body': '${3:email me}$0' 203 | # N 204 | 'Navigation': 205 | 'prefix': 'nav' 206 | 'body': '' 207 | 'Noscript': 208 | 'prefix': 'noscript' 209 | 'body': '' 210 | # O 211 | 'Object': 212 | 'prefix': 'object' 213 | 'body': '$3$0' 214 | 'Ordered List': 215 | 'prefix': 'ol' 216 | 'body': '
      \n\t$1\n
    ' 217 | 'Option Group': 218 | 'prefix': 'optgroup' 219 | 'body': '\n\t$2\n' 220 | 'Option': 221 | 'prefix': 'opt' 222 | 'body': '${3:option}$0' 223 | 'Output': 224 | 'prefix': 'output' 225 | 'body': '$2$0' 226 | # P 227 | 'Paragraph': 228 | 'prefix': 'p' 229 | 'body': '

    \n\t$1\n

    ' 230 | 'Parameter': 231 | 'prefix': 'param' 232 | 'body': '$0' 233 | 'Preformatted Text': 234 | 'prefix': 'pre' 235 | 'body': '
    \n\t$1\n
    ' 236 | 'Progress': 237 | 'prefix': 'progress' 238 | 'body': '${3:50%}$0' 239 | # Q 240 | 'Quote': 241 | 'prefix': 'q' 242 | 'body': '$2$0' 243 | # S 244 | 'Script': 245 | 'prefix': 'script' 246 | 'body': '\n\t$3\n' 247 | 'Script With External Source': 248 | 'prefix': 'scriptsrc' 249 | 'body': '$0' 250 | 'Section': 251 | 'prefix': 'section' 252 | 'body': '
    \n\t$1\n
    ' 253 | 'Select': 254 | 'prefix': 'select' 255 | 'body': '' 256 | 'Small': 257 | 'prefix': 'small' 258 | 'body': '$1$0' 259 | 'Source': 260 | 'prefix': 'source' 261 | 'body': '$0' 262 | 'Span': 263 | 'prefix': 'span' 264 | 'body': '$1$0' 265 | 'Strong': 266 | 'prefix': 'strong' 267 | 'body': '$1$0' 268 | 'Style': 269 | 'prefix': 'style' 270 | 'body': '' 271 | 'Subscript': 272 | 'prefix': 'sub' 273 | 'body': '$1$0' 274 | 'Summary': 275 | 'prefix': 'summary' 276 | 'body': '$1$0' 277 | 'Superscript': 278 | 'prefix': 'sup' 279 | 'body': '$1$0' 280 | # T 281 | 'Time': 282 | 'prefix': 'time' 283 | 'body': '$0' 284 | 'Title': 285 | 'prefix': 'title' 286 | 'body': '${1:Page Title}$0' 287 | 'Track': 288 | 'prefix': 'track' 289 | 'body': '$0' 290 | -------------------------------------------------------------------------------- /snippets/js-module.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.jsx, .source.ts": 2 | "import": 3 | "prefix": "import" 4 | "body": "import { ${1} } from '${0}'" 5 | "import default": 6 | "prefix": "importd" 7 | "body": "import ${1} from '${0}'" 8 | "import as": 9 | "prefix": "importa" 10 | "body": "import * as ${1} from '${0}'" 11 | "export default": 12 | "prefix": "exportd" 13 | "body": "export default" 14 | "require": 15 | "prefix": "require" 16 | "body": """ 17 | require('${1:module}') 18 | """ 19 | "module.exports": 20 | "prefix": "module" 21 | "body": """ 22 | module.exports = ${1:name} 23 | """ 24 | -------------------------------------------------------------------------------- /snippets/js-object.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.ts, .source.tsx": 2 | "Object.assign": 3 | prefix: "assign" 4 | body: "assign(${1:dest}, ${2:source})" 5 | -------------------------------------------------------------------------------- /snippets/js-othor.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.ts, .source.tsx": 2 | "on event handler": 3 | "prefix": "on" 4 | "body": "on('${2:event}', (${3:arguments}) => {${0}})" 5 | "setInterval": 6 | "prefix": "setInterval" 7 | "body": """ 8 | setInterval(() => { 9 | \t${0:// body...} 10 | }, ${1:delay}) 11 | """ 12 | "setTimeout": 13 | "prefix": "setTimeout" 14 | "body": """ 15 | setTimeout(() => { 16 | \t${0:// body...} 17 | }, ${1:delay}) 18 | """ 19 | "log perfamance": 20 | "prefix": "logperfamance" 21 | "body": """ 22 | let time1 = Date.now() 23 | ${1://do something} 24 | let time2 = Date.now() 25 | console.log(time2 - time1) 26 | """ 27 | -------------------------------------------------------------------------------- /snippets/js-promise.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.jsx, .source.ts": 2 | 'Promise.all': 3 | 'prefix': 'all' 4 | 'body': 'Promise.all(${0})' 5 | 'Promise.then': 6 | 'prefix': 'then' 7 | 'body': 'then(${1:data} => {${0}})' 8 | "new Promise": 9 | prefix: "newp", 10 | body: """ 11 | new Promise((resolve, reject) => { 12 | \t${0} 13 | }) 14 | """ 15 | "Promise.catch": 16 | prefix: "catch" 17 | body: """ 18 | catch(${2:error} => { 19 | \t${0} 20 | }) 21 | """ 22 | -------------------------------------------------------------------------------- /snippets/js-react.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.jsx, .source.ts": 2 | 'react class': 3 | 'prefix': 'react class' 4 | 'body': """ 5 | import React, { Component } from 'react' 6 | 7 | class ${1:className} extends Component { 8 | constructor() { 9 | super() 10 | } 11 | 12 | render() { 13 | return ( 14 |
    15 |
    16 | ) 17 | } 18 | } 19 | 20 | export default ${1:className} 21 | """ 22 | 'className react': 23 | 'prefix': 'className' 24 | 'body': 'className="$0"' 25 | 'setState react': 26 | 'prefix': 'setState' 27 | 'body': 'setState' 28 | 'preventDefault': 29 | 'prefix': 'preventDefault' 30 | 'body': 'preventDefault()' 31 | 'stopPropagation': 32 | 'prefix': 'stopPropagation' 33 | 'body': 'stopPropagation()' 34 | 'onClick react mutiline': 35 | 'prefix': 'onClickm' 36 | 'body':"""onClick={() => { 37 | \t$0 38 | }}""" 39 | 'onClick react': 40 | 'prefix': 'onClick' 41 | 'body':'onClick={$0}' 42 | 'onChange react mutiline': 43 | 'prefix': 'onChangem' 44 | 'body':"""onChange={() => { 45 | \t$0 46 | }}""" 47 | 'onChange react': 48 | 'prefix': 'onChange' 49 | 'body':'onChange={$0}' 50 | 'componentWillMount': 51 | 'preifx': 'componentWillMount' 52 | 'body': """componentWillMount() { 53 | \t$0 54 | }""" 55 | 'componentDidMount': 56 | 'prefix': 'componentDidMount' 57 | 'body': """componentDidMount() { 58 | \t$0 59 | }""" 60 | 'componentDidUpdate': 61 | 'prefix': 'componentDidUpdate' 62 | 'body': """componentDidUpdate() { 63 | \t$0 64 | }""" 65 | -------------------------------------------------------------------------------- /snippets/js-simple-word.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.jsx, .source.ts": 2 | "yield": 3 | "prefix": "yield" 4 | "body": "yield" 5 | "parse": 6 | "prefix": "parse" 7 | "body": "parse" 8 | "alert": 9 | "prefix": "alert" 10 | "body": "alert" 11 | "assert": 12 | "prefix": "assert" 13 | "body": "assert" 14 | "return": 15 | "prefix": "return" 16 | "body": "return" 17 | "export": 18 | "prefix": "export" 19 | "body": "export" 20 | "prototype": 21 | "prefix": "prototype" 22 | "body": "prototype" 23 | "true": 24 | "prefix": "true" 25 | "body": "true" 26 | "false": 27 | "prefix": "false" 28 | "body": "false" 29 | "undefined": 30 | "prefix": "undefined" 31 | "body": "undefined" 32 | "window": 33 | "prefix": "window" 34 | "body": "window" 35 | "document": 36 | "prefix": "document" 37 | "body": "document" 38 | "const": 39 | "prefix": "const" 40 | "body": "const" 41 | "target": 42 | "prefix": "target" 43 | "body": "target" 44 | "event": 45 | "prefix": "event" 46 | "body": "event" 47 | 'fetch': 48 | 'prefix': 'fetch' 49 | 'body': 'fetch' 50 | -------------------------------------------------------------------------------- /snippets/js-tips.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.jsx, .source.ts": 2 | "timeLoop": 3 | "prefix": "timeLoop" 4 | "body": """ 5 | (function timeLoop(){ 6 | const delay = ${1:1000} 7 | setTimeout(() => { 8 | ${0:// body...} 9 | timeLoop() 10 | }, delay) 11 | })() 12 | """ 13 | -------------------------------------------------------------------------------- /snippets/js-types.cson: -------------------------------------------------------------------------------- 1 | ".source.js, .source.ts, .source.tsx": 2 | "String": 3 | prefix: "String" 4 | body: "String" 5 | "Number": 6 | prefix: "Number" 7 | body: "Number" 8 | "Object": 9 | prefix: "Object" 10 | body: "Object" 11 | "Array": 12 | prefix: "Array" 13 | body: "Array" 14 | "Date": 15 | prefix: "Date" 16 | body: "Date" 17 | "RegExp": 18 | prefix: "RegExp" 19 | body: "RegExp" 20 | "typeof equal": 21 | prefix: "typeof" 22 | body: "typeof ${1:source} === '${2:type}'" 23 | "typeof": 24 | prefix: "typeof" 25 | body: "typeof" 26 | "instanceof": 27 | prefix: "instanceof" 28 | body: "instanceof ${2:Object}" 29 | -------------------------------------------------------------------------------- /snippets/md.cson: -------------------------------------------------------------------------------- 1 | '.source.gfm': 2 | 'md code': 3 | 'prefix': 'code-md' 4 | 'body': """ 5 | ``` 6 | ${0} 7 | ``` 8 | """ 9 | 'html code': 10 | 'prefix': 'html' 11 | 'body': """ 12 | ```html 13 | ${0} 14 | ``` 15 | """ 16 | 'css code': 17 | 'prefix': 'css' 18 | 'body': """ 19 | ```css 20 | ${0} 21 | ``` 22 | """ 23 | 'js code': 24 | 'prefix': 'js' 25 | 'body': """ 26 | ```js 27 | ${0} 28 | ``` 29 | """ 30 | 'cpp code': 31 | 'prefix': 'cpp' 32 | 'body': """ 33 | ```cpp 34 | ${0} 35 | ``` 36 | """ 37 | 'python code': 38 | 'prefix': 'python' 39 | 'body': """ 40 | ```python 41 | ${0} 42 | ``` 43 | """ 44 | 'ruby code': 45 | 'prefix': 'ruby' 46 | 'body': """ 47 | ```ruby 48 | ${0} 49 | ``` 50 | """ 51 | 'java code': 52 | 'prefix': 'java' 53 | 'body': """ 54 | ```java 55 | ${0} 56 | ``` 57 | """ 58 | -------------------------------------------------------------------------------- /snippets/write-snippet.cson: -------------------------------------------------------------------------------- 1 | 'source.coffee, source.cson': 2 | 'write js snippet': 3 | 'prefix': 'jssnippet' 4 | 'body': """ 5 | \".source.js, .source.ts, .source.jsx\": 6 | \'$1\': 7 | \'prefix\': \'$2\' 8 | \'body\': \"\"\" 9 | $0 10 | \"\"\" 11 | """ 12 | 'write meta snippet': 13 | 'prefix': 'snippet' 14 | 'body': """ 15 | \'$1\': 16 | \'prefix\': \'$2\' 17 | \'body\': \"\"\" 18 | $0 19 | \"\"\" 20 | """ 21 | -------------------------------------------------------------------------------- /zh-cn-README.md: -------------------------------------------------------------------------------- 1 | # simplyy-snippets atom package 2 | ## 安装 3 | apm install simplyy-snippets 4 | 5 | 6 | ## 介绍 7 | > snippets 用来 atom 代码的补全,下载这个插件可以让你的 js 体验补全更爽 8 | 9 | > (代码风格这东西需要入乡随俗,我现在转有分号、两格缩进了)两格缩进、有分号风格 snippet 插件在这里 https://github.com/SimplyY/lp-snippets 10 | 11 | 12 | 我收集了大量的 snippets(使用 es6 语法,无分号的风格),从很多不错的 snippets,比如 javascript-snippets,turbo-javascript,nodejs-snippets,由此并改进和增加了我自己的一些小技巧,来构建了这个插件 13 | 14 | 这个插件的目的是,当你安装了多个 atom snippet package,你会发现 snippets 风格一团糟,比如会有,重复的 snippets,keyword 冲突(简直灾难),snippets 风格不统一,用着简直难受要命。 15 | 16 | 为了避免这些问题,我就写了这个插件,使所有的 snippet 风格统一(其他的 snippet package 就可以卸掉了)。 17 | 18 | 或者假如你还没安装 snippet 插件,并且使用 es6 语法,无分号的风格,还写 react,赶紧下下下 19 | 20 | 21 | 22 | ## 演示 23 | ![演示图](http://7xkpdt.com1.z0.glb.clouddn.com/blog-2-29-test.gif) 24 | 25 | ## snippets list 26 | you also can read snippets learning js 27 | 28 | 29 | ## learned snippets packages 30 | - javascript-snippets 31 | - nodejs-snippets 32 | - turbo-javascript 33 | --------------------------------------------------------------------------------