Skip to content

Instantly share code, notes, and snippets.

@de314
Last active January 13, 2018 02:22
Show Gist options
  • Save de314/c7c03bba870c37978ccbfcc1f9aff419 to your computer and use it in GitHub Desktop.
Save de314/c7c03bba870c37978ccbfcc1f9aff419 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. Unlike style sheets however,
# each selector can only be declared once.
#
# 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:
# * http://flight-manual.atom.io/using-atom/sections/basic-customization/#customizing-keybindings
# * http://flight-manual.atom.io/behind-atom/sections/keymaps-in-depth/
#
# If you're having trouble with your keybindings not working, try the
# Keybinding Resolver: `Cmd+.` on macOS and `Ctrl+.` on other platforms. See the
# Debugging Guide for more information:
# * http://flight-manual.atom.io/hacking-atom/sections/debugging/#check-the-keybindings
#
# This file uses CoffeeScript Object Notation (CSON).
# If you are unfamiliar with CSON, you can read more about it in the
# Atom Flight Manual:
# http://flight-manual.atom.io/using-atom/sections/basic-customization/#configuring-with-cson
'atom-text-editor[data-grammar~="jsx"]:not([mini])':
'tab': 'emmet:expand-abbreviation-with-tab'
[
{
"name": "about",
"version": "1.7.8"
},
{
"name": "archive-view",
"version": "0.64.1"
},
{
"name": "atom-dark-syntax",
"version": "0.28.0",
"theme": "syntax"
},
{
"name": "atom-dark-ui",
"version": "0.53.0",
"theme": "ui"
},
{
"name": "atom-light-syntax",
"version": "0.29.0",
"theme": "syntax"
},
{
"name": "atom-light-ui",
"version": "0.46.0",
"theme": "ui"
},
{
"name": "atom-ternjs",
"version": "0.18.3"
},
{
"name": "autocomplete-atom-api",
"version": "0.10.5"
},
{
"name": "autocomplete-css",
"version": "0.17.4"
},
{
"name": "autocomplete-html",
"version": "0.8.3"
},
{
"name": "autocomplete-modules",
"version": "1.8.0"
},
{
"name": "autocomplete-plus",
"version": "2.40.0"
},
{
"name": "autocomplete-snippets",
"version": "1.11.2"
},
{
"name": "autoflow",
"version": "0.29.0"
},
{
"name": "autosave",
"version": "0.24.6"
},
{
"name": "background-tips",
"version": "0.27.1"
},
{
"name": "base16-tomorrow-dark-theme",
"version": "1.5.0",
"theme": "syntax"
},
{
"name": "base16-tomorrow-light-theme",
"version": "1.5.0",
"theme": "syntax"
},
{
"name": "bookmarks",
"version": "0.44.4"
},
{
"name": "bracket-matcher",
"version": "0.88.0"
},
{
"name": "busy-signal",
"version": "1.4.3"
},
{
"name": "color-picker",
"version": "2.2.5"
},
{
"name": "command-palette",
"version": "0.42.0"
},
{
"name": "dalek",
"version": "0.2.1"
},
{
"name": "deprecation-cop",
"version": "0.56.9"
},
{
"name": "dev-live-reload",
"version": "0.47.1"
},
{
"name": "docblockr",
"version": "0.13.5"
},
{
"name": "emmet",
"version": "2.4.3"
},
{
"name": "encoding-selector",
"version": "0.23.7"
},
{
"name": "exception-reporting",
"version": "0.42.0"
},
{
"name": "file-icons",
"version": "2.1.15"
},
{
"name": "find-and-replace",
"version": "0.215.0"
},
{
"name": "fuzzy-finder",
"version": "1.7.3"
},
{
"name": "git-diff",
"version": "1.3.6"
},
{
"name": "git-plus",
"version": "7.10.0"
},
{
"name": "github",
"version": "0.8.3"
},
{
"name": "go-to-line",
"version": "0.32.1"
},
{
"name": "grammar-selector",
"version": "0.49.8"
},
{
"name": "highlight-selected",
"version": "0.13.1"
},
{
"name": "hyperclick",
"version": "0.1.5"
},
{
"name": "image-view",
"version": "0.62.4"
},
{
"name": "incompatible-packages",
"version": "0.27.3"
},
{
"name": "intentions",
"version": "1.1.5"
},
{
"name": "js-hyperclick",
"version": "1.12.2"
},
{
"name": "keybinding-resolver",
"version": "0.38.1"
},
{
"name": "language-babel",
"version": "2.81.1"
},
{
"name": "language-c",
"version": "0.58.1"
},
{
"name": "language-clojure",
"version": "0.22.4"
},
{
"name": "language-coffee-script",
"version": "0.49.3"
},
{
"name": "language-csharp",
"version": "0.14.3"
},
{
"name": "language-css",
"version": "0.42.7"
},
{
"name": "language-gfm",
"version": "0.90.2"
},
{
"name": "language-git",
"version": "0.19.1"
},
{
"name": "language-go",
"version": "0.44.3"
},
{
"name": "language-html",
"version": "0.48.5"
},
{
"name": "language-hyperlink",
"version": "0.16.3"
},
{
"name": "language-java",
"version": "0.27.6"
},
{
"name": "language-javascript",
"version": "0.127.6"
},
{
"name": "language-json",
"version": "0.19.1"
},
{
"name": "language-less",
"version": "0.33.0"
},
{
"name": "language-make",
"version": "0.22.3"
},
{
"name": "language-mustache",
"version": "0.14.4"
},
{
"name": "language-objective-c",
"version": "0.15.1"
},
{
"name": "language-perl",
"version": "0.38.1"
},
{
"name": "language-php",
"version": "0.42.2"
},
{
"name": "language-property-list",
"version": "0.9.1"
},
{
"name": "language-python",
"version": "0.45.5"
},
{
"name": "language-ruby",
"version": "0.71.4"
},
{
"name": "language-ruby-on-rails",
"version": "0.25.2"
},
{
"name": "language-sass",
"version": "0.61.1"
},
{
"name": "language-shellscript",
"version": "0.25.4"
},
{
"name": "language-source",
"version": "0.9.0"
},
{
"name": "language-sql",
"version": "0.25.8"
},
{
"name": "language-text",
"version": "0.7.3"
},
{
"name": "language-todo",
"version": "0.29.3"
},
{
"name": "language-toml",
"version": "0.18.1"
},
{
"name": "language-typescript",
"version": "0.2.2"
},
{
"name": "language-xml",
"version": "0.35.2"
},
{
"name": "language-yaml",
"version": "0.31.1"
},
{
"name": "line-ending-selector",
"version": "0.7.4"
},
{
"name": "link",
"version": "0.31.3"
},
{
"name": "linter",
"version": "2.0.0"
},
{
"name": "linter-ui-default",
"version": "1.6.10"
},
{
"name": "local-history",
"version": "4.3.1"
},
{
"name": "markdown-preview",
"version": "0.159.18"
},
{
"name": "metrics",
"version": "1.2.6"
},
{
"name": "minimap",
"version": "4.29.7"
},
{
"name": "minimap-highlight-selected",
"version": "4.6.1"
},
{
"name": "minimap-pigments",
"version": "0.2.2"
},
{
"name": "notifications",
"version": "0.69.2"
},
{
"name": "one-dark-syntax",
"version": "1.8.0",
"theme": "syntax"
},
{
"name": "one-dark-ui",
"version": "1.10.8",
"theme": "ui"
},
{
"name": "one-light-syntax",
"version": "1.8.0",
"theme": "syntax"
},
{
"name": "one-light-ui",
"version": "1.10.8",
"theme": "ui"
},
{
"name": "open-on-github",
"version": "1.3.1"
},
{
"name": "package-generator",
"version": "1.1.1"
},
{
"name": "prettier-atom",
"version": "0.46.0"
},
{
"name": "settings-view",
"version": "0.253.1-0"
},
{
"name": "snippets",
"version": "1.1.9"
},
{
"name": "solarized-dark-syntax",
"version": "1.1.2",
"theme": "syntax"
},
{
"name": "solarized-light-syntax",
"version": "1.1.2",
"theme": "syntax"
},
{
"name": "spell-check",
"version": "0.72.5"
},
{
"name": "status-bar",
"version": "1.8.14"
},
{
"name": "styleguide",
"version": "0.49.8"
},
{
"name": "symbols-view",
"version": "0.118.1"
},
{
"name": "sync-settings",
"version": "0.8.3"
},
{
"name": "tab-foldername-index",
"version": "3.2.2"
},
{
"name": "tabs",
"version": "0.109.1"
},
{
"name": "timecop",
"version": "0.36.0"
},
{
"name": "tree-view",
"version": "0.221.3"
},
{
"name": "update-package-dependencies",
"version": "0.12.0"
},
{
"name": "welcome",
"version": "0.36.6"
},
{
"name": "whitespace",
"version": "0.37.5"
},
{
"name": "wrap-guide",
"version": "0.40.2"
}
]
{
"core": {
"disabledPackages": [
"docblockr"
]
},
"exception-reporting": {
"userId": "9028cedf-ebdb-4e6d-acd2-f4b6609553c0"
},
"minimap": {
"plugins": {
"git-diff": true,
"git-diffDecorationsZIndex": 0,
"highlight-selected": true,
"highlight-selectedDecorationsZIndex": 0,
"pigments": true,
"pigmentsDecorationsZIndex": 0
}
},
"prettier-atom": {
"formatOnSaveOptions": {
"enabled": true
},
"prettierOptions": {
"jsxBracketSameLine": true,
"semi": false,
"singleQuote": true,
"trailingComma": "all"
}
},
"sync-settings": {}
}
# 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'
#
# Each scope (e.g. '.source.coffee' above) can only be declared once.
#
# This file uses CoffeeScript Object Notation (CSON).
# If you are unfamiliar with CSON, you can read more about it in the
# Atom Flight Manual:
# https://atom.io/docs/latest/using-atom-basic-customization#cson
'.source.js':
'Stringify':
'prefix': 'strigify'
'body': 'JSON.stringify(${1:param}, null, 2)'
'Import Lodash':
'prefix': 'ilow'
'body': 'import _ from \'lodash\';'
'console.log for vars':
'prefix': 'cLog'
'body': 'console.log({ ${1:var} })'
'console.log as callback':
'prefix': 'cLogNaked'
'body': 'console.log'
###
CORE JS
###
'Export Value':
'prefix': 'exportVal'
'body': 'export { ${1:Util} };'
'Export Function':
'prefix': 'exportFunc'
'body': """
export function ${1:func}() {
}
"""
###
REDUX
###
'Redux Action':
'prefix': 'reAction'
'body': """
export const ${1:ACTION_NAME} = '${1:ACTION_NAME}'
export const get${1:ACTION_NAME} = makeActionCreator(${1:ACTION_NAME}, 'prop')
"""
'Redux Combined Reducer':
'prefix': 'reCombReducer'
'body': """
import { combineReducers } from 'redux'
import ${1:config} from './${1:config}'
export default combineReducers({
${1:config},
})
export * from './${1:config}'
"""
'Redux Reducer':
'prefix': 'reReducer'
'body': """
import _ from 'lodash'
// import { ACTION_NAME } from '../actions'
const selectSlice = (state) => _.get(state, '${1:path.to.slice}')
export const selectTesting = (state) => selectSlice(state).testing
const defaultState = {
testing: true,
};
export default (state = defaultState, action) => {
switch (action.type) {
//case ACTION_NAME: {
// return {
// ...state,
// testing: action.testing
// }
//}
default:
}
return state;
}
"""
###
REACT
###
'React PropTypes String':
'prefix': 'propString'
'body': 'PropTypes.string.isRequired,'
'React PropTypes Bool':
'prefix': 'propBool'
'body': 'PropTypes.bool.isRequired,'
'React PropTypes Function':
'prefix': 'propFunc'
'body': 'PropTypes.func.isRequired,'
'React PropTypes Object':
'prefix': 'propObject'
'body': 'PropTypes.object.isRequired,'
'React PropTypes Node':
'prefix': 'propNode'
'body': 'PropTypes.node.isRequired,'
'React PropTypes Number':
'prefix': 'propNum'
'body': 'PropTypes.number.isRequired,'
'React PropTypes Element':
'prefix': 'propElement'
'body': 'PropTypes.element.isRequired,'
'React PropTypes Instance Of':
'prefix': 'propInstanceOf'
'body': 'PropTypes.instanceOf($1).isRequired,'
'React PropTypes OneOfType':
'prefix': 'propOneOfType'
'body': 'PropTypes.oneOfType([$1]).isRequired,'
'React PropTypes Enum':
'prefix': 'propEnum'
'body': 'PropTypes.oneOf([$1]).isRequired,'
'React PropTypes Shape':
'prefix': 'propShape'
'body': 'PropTypes.shape({$1}).isRequired,'
'React PropTypes Array':
'prefix': 'propArray'
'body': 'PropTypes.arrayOf($1).isRequired,'
'React Presentational Component':
'prefix': 'presComp'
'body': """
import React from 'react'
import PropTypes from 'prop-types'
const ${1:Component} = ({}) => {
return (
<div className="$1">
<h1>Hello, World!</h1>
</div>
)
}
$1.propTypes = {}
export default $1
"""
'React Redux Component':
'prefix': 'redComp'
'body': """
import React from 'react'
import PropTypes from 'prop-types'
import { connect } from 'react-redux'
import { compose, withProps } from 'recompose'
let ${1:Component} = ({}) => (
<div className="$1">
<h1>Hello, World!</h1>
</div>
)
${1:Component} = compose(
connect(
state => ({})
),
withProps(props => ({}))
)(${1:Component})
$1.propTypes = {}
export default $1
"""
'React Simple Presentational Component':
'prefix': 'simpleComp'
'body': """
import React from 'react'
const ${1:Component} = () => (
<div className="$1">
<h1>Hello, ${1:Component}!</h1>
</div>
)
export default ${1:Component}
"""
'React Naked Presentational Component':
'prefix': 'nakedComp'
'body': """
const ${1:Component} = ({}) => (
<div className="$1">
<h1>Hello, World!</h1>
</div>
);
"""
'React Create Class':
'prefix': 'createClass'
'body': """
const ${1:Component} = React.createClass({
propTypes: { },
getDefaultProps() {
return { };
},
getInitialState () {
return { };
},
render() {
return (
<div>Hello, World!</div>
)
}
});
"""
'React Component Will Mount':
'prefix': 'compWillMount'
'body': """
componentWillMount() {
${1}
},
"""
'React Component Will Update':
'prefix': 'compWillUpdate'
'body': """
componentWillUpdate(nextProps, nextState) {
${1}
},
"""
'React Prop Type':
'prefix': 'reactProp'
'body': '${1:prop}: React.PropTypes.${2:func}${3:.isRequired},$4'
'Export Const':
'prefix': 'exportConst'
'body': 'export const ${1} = \'${1}\';'
/*
* 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%);
}
// style UI elements inside atom-text-editor
atom-text-editor .cursor {
// border-color: red;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment