Skip to content

Instantly share code, notes, and snippets.

@narongdejsrn
Created September 9, 2016 20:19
Show Gist options
  • Save narongdejsrn/a34ee771d30db4d3739674e8ea616693 to your computer and use it in GitHub Desktop.
Save narongdejsrn/a34ee771d30db4d3739674e8ea616693 to your computer and use it in GitHub Desktop.
# Your init script
#
# Atom will evaluate this file each time a new window is opened. It is run
# after packages are loaded/activated and after the previous editor state
# has been restored.
#
# An example hack to log to the console when each text editor is saved.
#
# atom.workspace.observeTextEditors (editor) ->
# editor.onDidSave ->
# console.log "Saved! #{editor.getPath()}"
# Your keymap
#
# Atom keymaps work similarly to style sheets. Just as style sheets use
# selectors to apply styles to elements, Atom keymaps use selectors to associate
# keystrokes with events in specific contexts.
#
# You can create a new keybinding in this file by typing "key" and then hitting
# tab.
#
# Here's an example taken from Atom's built-in keymap:
#
# 'atom-text-editor':
# 'enter': 'editor:newline'
#
# 'atom-workspace':
# 'ctrl-shift-p': 'core:move-up'
# 'ctrl-p': 'core:move-down'
#
# You can find more information about keymaps in these guides:
# * https://atom.io/docs/latest/using-atom-basic-customization#customizing-key-bindings
# * https://atom.io/docs/latest/behind-atom-keymaps-in-depth
#
# This file uses CoffeeScript Object Notation (CSON).
# If you are unfamiliar with CSON, you can read more about it here:
# https://github.com/bevry/cson#what-is-cson
[
{
"name": "about",
"version": "1.5.3"
},
{
"name": "api-blueprint-preview",
"version": "0.7.0"
},
{
"name": "archive-view",
"version": "0.61.1"
},
{
"name": "atom-beautify",
"version": "0.29.11"
},
{
"name": "atom-dark-syntax",
"version": "0.27.0",
"theme": "syntax"
},
{
"name": "atom-dark-ui",
"version": "0.52.0",
"theme": "ui"
},
{
"name": "atom-jade",
"version": "0.3.0"
},
{
"name": "atom-light-syntax",
"version": "0.28.0",
"theme": "syntax"
},
{
"name": "atom-light-ui",
"version": "0.44.0",
"theme": "ui"
},
{
"name": "atom-ternjs",
"version": "0.15.0"
},
{
"name": "autocomplete-atom-api",
"version": "0.10.0"
},
{
"name": "autocomplete-css",
"version": "0.11.2"
},
{
"name": "autocomplete-html",
"version": "0.7.2"
},
{
"name": "autocomplete-plus",
"version": "2.31.1"
},
{
"name": "autocomplete-snippets",
"version": "1.11.0"
},
{
"name": "autoflow",
"version": "0.27.0"
},
{
"name": "autosave",
"version": "0.23.1"
},
{
"name": "background-tips",
"version": "0.26.1"
},
{
"name": "base16-tomorrow-dark-theme",
"version": "1.1.0",
"theme": "syntax"
},
{
"name": "base16-tomorrow-light-theme",
"version": "1.1.1",
"theme": "syntax"
},
{
"name": "bookmarks",
"version": "0.41.0"
},
{
"name": "bottom-dock",
"version": "0.4.4"
},
{
"name": "bracket-matcher",
"version": "0.82.1"
},
{
"name": "color-picker",
"version": "2.2.2"
},
{
"name": "command-palette",
"version": "0.38.0"
},
{
"name": "custom-title",
"version": "1.0.1"
},
{
"name": "deprecation-cop",
"version": "0.54.1"
},
{
"name": "dev-live-reload",
"version": "0.47.0"
},
{
"name": "encoding-selector",
"version": "0.22.0"
},
{
"name": "exception-reporting",
"version": "0.39.0"
},
{
"name": "find-and-replace",
"version": "0.201.0"
},
{
"name": "fuzzy-finder",
"version": "1.3.0"
},
{
"name": "git-log",
"version": "0.4.1"
},
{
"name": "git-plus",
"version": "5.16.2"
},
{
"name": "git-time-machine",
"version": "1.5.3"
},
{
"name": "go-to-line",
"version": "0.31.0"
},
{
"name": "grammar-selector",
"version": "0.48.1"
},
{
"name": "image-view",
"version": "0.58.2"
},
{
"name": "incompatible-packages",
"version": "0.26.1"
},
{
"name": "keybinding-resolver",
"version": "0.35.0"
},
{
"name": "language-api-blueprint",
"version": "1.0.2"
},
{
"name": "language-c",
"version": "0.52.1"
},
{
"name": "language-clojure",
"version": "0.21.0"
},
{
"name": "language-coffee-script",
"version": "0.47.2"
},
{
"name": "language-csharp",
"version": "0.12.1"
},
{
"name": "language-css",
"version": "0.37.1"
},
{
"name": "language-gfm",
"version": "0.88.0"
},
{
"name": "language-git",
"version": "0.15.0"
},
{
"name": "language-go",
"version": "0.42.1"
},
{
"name": "language-html",
"version": "0.45.1"
},
{
"name": "language-hyperlink",
"version": "0.16.0"
},
{
"name": "language-java",
"version": "0.23.0"
},
{
"name": "language-javascript",
"version": "0.119.0"
},
{
"name": "language-json",
"version": "0.18.2"
},
{
"name": "language-jsx",
"version": "0.1.1"
},
{
"name": "language-less",
"version": "0.29.5"
},
{
"name": "language-lua",
"version": "0.9.11"
},
{
"name": "language-make",
"version": "0.22.2"
},
{
"name": "language-matlab",
"version": "0.2.1"
},
{
"name": "language-mustache",
"version": "0.13.0"
},
{
"name": "language-objective-c",
"version": "0.15.1"
},
{
"name": "language-perl",
"version": "0.35.0"
},
{
"name": "language-php",
"version": "0.37.2"
},
{
"name": "language-property-list",
"version": "0.8.0"
},
{
"name": "language-python",
"version": "0.45.0"
},
{
"name": "language-ruby",
"version": "0.69.0"
},
{
"name": "language-ruby-on-rails",
"version": "0.25.0"
},
{
"name": "language-sass",
"version": "0.56.0"
},
{
"name": "language-shellscript",
"version": "0.22.4"
},
{
"name": "language-source",
"version": "0.9.0"
},
{
"name": "language-sql",
"version": "0.23.0"
},
{
"name": "language-text",
"version": "0.7.1"
},
{
"name": "language-todo",
"version": "0.28.0"
},
{
"name": "language-toml",
"version": "0.18.0"
},
{
"name": "language-xml",
"version": "0.34.9"
},
{
"name": "language-yaml",
"version": "0.26.0"
},
{
"name": "line-ending-selector",
"version": "0.5.0"
},
{
"name": "link",
"version": "0.31.1"
},
{
"name": "linter",
"version": "1.11.16"
},
{
"name": "linter-eslint",
"version": "7.3.0"
},
{
"name": "linter-jsxhint",
"version": "0.1.2"
},
{
"name": "linter-lua",
"version": "1.0.2"
},
{
"name": "markdown-preview",
"version": "0.158.0"
},
{
"name": "merge-conflicts",
"version": "1.4.4"
},
{
"name": "metrics",
"version": "0.53.1"
},
{
"name": "notifications",
"version": "0.65.0"
},
{
"name": "one-dark-syntax",
"version": "1.3.0",
"theme": "syntax"
},
{
"name": "one-dark-ui",
"version": "1.5.0",
"theme": "ui"
},
{
"name": "one-light-syntax",
"version": "1.3.0",
"theme": "syntax"
},
{
"name": "one-light-ui",
"version": "1.5.0",
"theme": "ui"
},
{
"name": "open-on-github",
"version": "1.2.0"
},
{
"name": "package-generator",
"version": "1.0.0"
},
{
"name": "pretty-json",
"version": "1.6.0"
},
{
"name": "project-manager",
"version": "2.9.7"
},
{
"name": "seti-ui",
"version": "1.3.2",
"theme": "ui"
},
{
"name": "settings-view",
"version": "0.241.2"
},
{
"name": "snippets",
"version": "1.0.2"
},
{
"name": "solarized-dark-syntax",
"version": "1.0.2",
"theme": "syntax"
},
{
"name": "solarized-light-syntax",
"version": "1.0.2",
"theme": "syntax"
},
{
"name": "spell-check",
"version": "0.67.1"
},
{
"name": "status-bar",
"version": "1.4.1"
},
{
"name": "styleguide",
"version": "0.47.0"
},
{
"name": "symbols-view",
"version": "0.113.0"
},
{
"name": "sync-settings",
"version": "0.7.2"
},
{
"name": "tabs",
"version": "0.100.2"
},
{
"name": "timecop",
"version": "0.33.2"
},
{
"name": "todo-manager",
"version": "0.2.10"
},
{
"name": "toggle-quotes",
"version": "1.0.0"
},
{
"name": "tree-view",
"version": "0.208.2"
},
{
"name": "update-package-dependencies",
"version": "0.10.0"
},
{
"name": "welcome",
"version": "0.34.0"
},
{
"name": "whitespace",
"version": "0.33.0"
},
{
"name": "wrap-guide",
"version": "0.38.1"
}
]
{
"atom-beautify": {
"general": {
"_analyticsUserId": "77d31e61-0600-4d24-80d9-8ec6c34f2c2f"
}
},
"core": {
"disabledPackages": [
"linter-jscs",
"linter-jade",
"linter-jshint",
"git-diff",
"react-es6-snippets",
"react-snippets",
"dash"
],
"excludeVcsIgnoredPaths": false,
"ignoredNames": [
".git",
".hg",
".svn",
".DS_Store",
"._*",
"Thumbs.db",
"node_modules"
],
"packagesWithKeymapsDisabled": [],
"themes": [
"seti-ui",
"atom-dark-syntax"
]
},
"custom-title": {
"template": "<%= projectName %> <% if (relativeFilePath) { %>- <%= relativeFilePath %> <% } %> - <%= gitHead %>"
},
"editor": {
"fontSize": 12,
"invisibles": {}
},
"emmet": {},
"exception-reporting": {
"userId": "865d3b67-d539-44d5-0c2f-2922fbf69304"
},
"fuzzy-finder": {
"ignoredNames": [
".git",
"node_modules"
]
},
"git-log": {
"fontScale": 1
},
"git-plus": {},
"linter": {
"errorPanelHeight": 25
},
"linter-jshint": {},
"seti-ui": {
"compactView": true
},
"split-diff": {
"diffWords": true,
"ignoreWhitespace": true,
"leftEditorColor": "red",
"rightEditorColor": "green",
"syncHorizontalScroll": true
},
"sync-settings": {},
"tabs": {
"usePreviewTabs": false
},
"tree-view": {
"hideVcsIgnoredFiles": true
},
"welcome": {
"showOnStartup": false
}
}
# Your snippets
#
# Atom snippets allow you to enter a simple prefix in the editor and hit tab to
# expand the prefix into a larger code block with templated values.
#
# You can create a new snippet in this file by typing "snip" and then hitting
# tab.
#
# An example CoffeeScript snippet to expand log to console.log:
#
# '.source.coffee':
# 'Console log':
# 'prefix': 'log'
# 'body': 'console.log $1'
#
# This file uses CoffeeScript Object Notation (CSON).
# If you are unfamiliar with CSON, you can read more about it here:
# https://github.com/bevry/cson#what-is-cson
'.source.js, .source.jsx':
'import React':
'prefix': 'imr'
'body': """
import React from 'react';
${1}
"""
'import React, { Component }':
'prefix': 'imrc'
'body': """
import React, { Component } from 'react';
${1}
"""
'import React, { Component, PropTypes }':
'prefix': 'imrcp'
'body': """
import React, { Component, PropTypes } from 'react';
${1}
"""
'React ES7 Component':
'prefix': 'rc'
'body': """
import React, { Component, PropTypes } from 'react';
export default class ${1:MyComponent} extends Component {
static propTypes = {
${2}
};
render() {
return (
${3:<div>MyComponent</div>}
);
}
}
"""
'React ES7 Component with Constructor':
'prefix': 'rcc'
'body': """
import React, { Component, PropTypes } from 'react';
export default class ${1:MyComponent} extends Component {
static propTypes = {
${2}
};
constructor(props) {
super(props);
this.state = { };
}
render() {
return (
${3:<div>MyComponent</div>}
);
}
}
"""
'React ES7 Redux Container':
'prefix': 'rcon'
'body': """
import React, { Component, PropTypes } from 'react';
import { connect } from 'react-redux';
class ${1:MyComponent} extends Component {
static propTypes = {
${4}
};
constructor(props) {
super(props);
this.state = { };
}
render() {
return (
${5:<div>MyComponent</div>}
);
}
}
const mapStateToProps = (state) => ({
${2}
});
const mapDispatchToProps = (dispatch) => ({
${3}
});
export default connect(mapStateToProps, mapDispatchToProps)(${1:MyComponent});
"""
'React ES7 Component Relay':
'prefix': 'rcrelay'
'body': """
import React, { Component, PropTypes } from 'react';
import Relay from 'react-relay';
class ${1:MyComponent} extends Component {
static propTypes = {
${2:viewer}: PropTypes.object.isRequired,
};
render() {
return (
${5:<div>MyComponent</div>}
);
}
}
export default Relay.createContainer(${1:MyComponent}, {
fragments: {
${2:viewer}: () => Relay.QL`
fragment on ${3:Viewer} {
${4:id}
}
`,
},
});
"""
'React ES7 Component export':
'prefix': 'rce'
'body': """
import React, { Component, PropTypes } from 'react';
class ${1:Class} extends Component {
static propTypes = {
${2}
};
constructor(props) {
super(props);
this.state = { };
}
render() {
return (
${3:<div>MyComponent</div>}
);
}
}
export default ${1:Class};
"""
'React ES7 Functional Component':
'prefix': 'rfunc'
'body': """
import React, { PropTypes } from 'react';
export default function ${1}(${3:props}) {
return (
${4:<div>MyComponent</div>}
);
}
${1}.propTypes = {
${2}
};
"""
'React ES7 Functional Arrow Component':
'prefix': 'rarrow'
'body': """
import React, { PropTypes } from 'react';
const $1 = (${3:props}) => (
${4:<div />}
);
${1}.propTypes = {
${2}
};
export default ${1};
"""
'React ES7 Constructor':
'prefix': 'rconst'
'body': """
constructor(props) {
super(props);
${1}
}
"""
'React ES6 bind method to this':
'prefix': 'rbm',
'body': """
this.${1} = this.${1}.bind(this);
"""
'React ES7 bind method to this':
'prefix': 'rbm7',
'body': """
this.${1} = ::this.${1};
"""
'React componentWillMount (ES7)':
'prefix': 'cwm'
'body': """
componentWillMount() {
${1}
}
"""
'React componentDidMount (ES7)':
'prefix': 'cdm'
'body': """
componentDidMount() {
${1}
}
"""
'React componentWillReceiveProps (ES7)':
'prefix': 'cwr'
'body': """
componentWillReceiveProps(nextProps) {
${1}
}
"""
'React shouldComponentUpdate (ES7)':
'prefix': 'scu'
'body': """
shouldComponentUpdate(nextProps, nextState) {
${1}
}
"""
'React componentWillUpdate (ES7)':
'prefix': 'cwu'
'body': """
componentWillUpdate(nextProps, nextState) {
${1}
}
"""
'React componentDidUpdate (ES7)':
'prefix': 'cdu'
'body': """
componentDidUpdate(prevProps, prevState) {
${1}
}
"""
'React componentWillUnmount (ES7)':
'prefix': 'cwun'
'body': """
componentWillUnmount() {
${1}
}
"""
'React this.props':
'prefix': 'props'
'body': 'this.props${1}'
'React this.state':
'prefix': 'state'
'body': 'this.state${1}'
'React cx({ ... }) (ES7)':
'prefix': 'cx'
'body': """
cx({
${1}: ${2},
});
"""
'React static defaultProps = { ... } (ES7)':
'prefix': 'dp'
'body': """
static defaultProps = {
${1}
};
"""
'React static propTypes = { ... } (ES7)':
'prefix': 'pt'
'body': """
static propTypes = {
${1}: PropTypes.${2:string},
};
"""
'React setState({ ... }) (ES7)':
'prefix': 'sst'
'body': """
this.setState({
${1}: ${2},
});
"""
# PropType array
'PropTypes.array':
'prefix': 'pta'
'body': 'PropTypes.array'
'PropTypes.array.isRequired':
'prefix': 'ptar'
'body': 'PropTypes.array.isRequired'
# PropType bool
'PropTypes.bool':
'prefix': 'ptb'
'body': 'PropTypes.bool'
'PropTypes.bool.isRequired':
'prefix': 'ptbr'
'body': 'PropTypes.bool.isRequired'
# PropType function
'PropTypes.func':
'prefix': 'ptf'
'body': 'PropTypes.func'
'PropTypes.func.isRequired':
'prefix': 'ptfr'
'body': 'PropTypes.func.isRequired'
# PropType number
'PropTypes.number':
'prefix': 'ptn'
'body': 'PropTypes.number'
'PropTypes.number.isRequired':
'prefix': 'ptnr'
'body': 'PropTypes.number.isRequired'
# PropType object
'PropTypes.object':
'prefix': 'ptobj'
'body': 'PropTypes.object'
'PropTypes.object.isRequired':
'prefix': 'ptobjr'
'body': 'PropTypes.object.isRequired'
# PropType string
'PropTypes.string':
'prefix': 'pts'
'body': 'PropTypes.string'
'PropTypes.string.isRequired':
'prefix': 'ptsr'
'body': 'PropTypes.string.isRequired'
# PropType node
'PropTypes.node':
'prefix': 'ptnode'
'body': 'PropTypes.node'
'PropTypes.node.isRequired':
'prefix': 'ptnoder'
'body': 'PropTypes.node.isRequired'
# PropType element
'PropTypes.element':
'prefix': 'pte'
'body': 'PropTypes.element'
'PropTypes.element.isRequired':
'prefix': 'pter'
'body': 'PropTypes.element.isRequired'
# PropType instanceOf
'PropTypes.instanceOf':
'prefix': 'pti'
'body': 'PropTypes.instanceOf(${1})'
'PropTypes.instanceOf.isRequired':
'prefix': 'ptir'
'body': 'PropTypes.instanceOf(${1}).isRequired'
# PropType oneOf
'PropTypes.oneOf':
'prefix': 'ptof'
'body': 'PropTypes.oneOf([${1}])'
'PropTypes.oneOf.isRequired':
'prefix': 'ptofr'
'body': 'PropTypes.oneOf([${1}]).isRequired'
# PropType oneOfType
'PropTypes.oneOfType':
'prefix': 'ptoft'
'body': """
PropTypes.oneOfType([
${1}
])
"""
'PropTypes.oneOfType.isRequired':
'prefix': 'ptoftr'
'body': """
PropTypes.oneOfType([
${1}
]).isRequired
"""
# PropType arrayOf
'PropTypes.arrayOf':
'prefix': 'ptao'
'body': 'PropTypes.arrayOf(${1})'
'PropTypes.arrayOf.isRequired':
'prefix': 'ptaor'
'body': 'PropTypes.arrayOf(${1}).isRequired'
# PropType objectOf
'PropTypes.objectOf':
'prefix': 'ptobjo'
'body': 'PropTypes.objectOf(${1})'
'PropTypes.objectOf.isRequired':
'prefix': 'ptobjor'
'body': 'PropTypes.objectOf(${1}).isRequired'
# PropType shape
'PropTypes.shape({...})':
'prefix': 'ptshape'
'body': """
PropTypes.shape({
${1}
})
"""
'PropTypes.shape({...}).isRequired':
'prefix': 'ptshaper'
'body': """
PropTypes.shape({
${1}
}).isRequired
"""
# PropType any
'PropTypes.any':
'prefix': 'ptany'
'body': 'PropTypes.any'
'PropTypes.any.isRequired':
'prefix': 'ptanyr'
'body': 'PropTypes.any.isRequired'
/*
* Your Stylesheet
*
* This stylesheet is loaded when Atom starts up and is reloaded automatically
* when it is changed and saved.
*
* Add your own CSS or Less to fully customize Atom.
* If you are unfamiliar with Less, you can read more about it here:
* http://lesscss.org
*/
/*
* Examples
* (To see them, uncomment and save)
*/
// style the background color of the tree view
.tree-view {
// background-color: whitesmoke;
}
// style the background and foreground colors on the atom-text-editor-element itself
atom-text-editor {
// color: white;
// background-color: hsl(180, 24%, 12%);
}
// To style other content in the text editor's shadow DOM, use the ::shadow expression
atom-text-editor::shadow .cursor {
// border-color: red;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment