Skip to content

Instantly share code, notes, and snippets.

@irasantiago
Created June 27, 2017 13:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save irasantiago/8e9b11da2d75d5ff4b307f2f501d8349 to your computer and use it in GitHub Desktop.
Save irasantiago/8e9b11da2d75d5ff4b307f2f501d8349 to your computer and use it in GitHub Desktop.
Atom set up
"*":
"bracket-matcher":
autocompleteCharacters: [
"()"
"[]"
"{}"
"\"\""
"“”"
"‘’"
"«»"
"‹›"
]
core:
customFileTypes:
"source.ini": [
".buckconfig"
".flowconfig"
".hgrc"
]
"source.json": [
".arcconfig"
"BUCK.autodeps"
]
"source.python": [
"BUCK"
]
disabledPackages: [
"atom-runner"
"fonts"
"lcov-info"
"linter"
"nuclide"
"pigments"
"project-manager"
"react-snippets"
"source-preview"
"source-preview-postcss"
"busy-signal"
"clipboard-plus"
"docblockr"
"git-plus"
"linter-eslint"
"linter-stylelint"
"linter-ui-default"
"merge-conflicts"
"mocha-test-runner"
"node-debugger"
"emmet"
"language-babel"
"language-postcss"
"intentions"
"go-plus"
]
openEmptyEditorOnStart: false
packagesWithKeymapsDisabled: [
"clipboard-history"
"lisp-paredit"
]
projectHome: "/Users/irasantiago/Sites"
telemetryConsent: "no"
themes: [
"one-dark-ui"
]
docblockr: {}
editor:
atomicSoftTabs: false
autoIndentOnPaste: false
backUpBeforeSaving: true
fontFamily: "Iosevka"
fontSize: 18
invisibles: {}
lineHeight: 1.6
normalizeIndentOnPaste: false
scrollPastEnd: true
showIndentGuide: true
softTabs: false
tabType: "soft"
emmet: {}
"exception-reporting":
userId: "f9b08f4d-e5c7-4cee-617b-9a0460891b3d"
fonts:
fontFamily: "Roboto Mono Medium"
"git-plus":
general:
_analyticsUserId: "e997af0d-a3dc-4532-a7ad-49905e2159c8"
"highlight-line":
enableUnderline: true
"highlight-selected":
highlightBackground: true
"language-babel": {}
"lcov-info":
coveredType: "Uncovered Lines Only"
linter: {}
"linter-clojure": {}
"linter-eslint": {}
"linter-scss-lint": {}
"linter-ui-default":
panelHeight: 69
"lisp-paredit":
indentationForms: [
"try"
"catch"
"finally"
"/^let/"
"are"
"/^def/"
"fn"
"cond"
"condp"
"/^if.*/"
"/.*\\/for/"
"for"
"for-all"
"/^when.*/"
"testing"
"doseq"
"dotimes"
"ns"
"routes"
"GET"
"POST"
"PUT"
"DELETE"
"extend-protocol"
"loop"
"do"
"case"
"with-bindings"
"checking"
"with-open"
]
strict: false
"merge-conflicts": {}
"mocha-test-runner":
env: "ALDO_ENV=local"
nuclide:
hyperclick:
darwinTriggerKeys: "ctrlKey,metaKey"
"nuclide-home":
showHome: false
pigments:
markerType: "native-square-dot"
"project-manager":
closeCurrent: true
"proto-repl":
autoPrettyPrint: true
autoScroll: false
bootPath: "/usr/local/bin/lein"
displayHelpText: false
openReplInRightPane: false
"tool-bar": {}
"tree-view":
hideVcsIgnoredFiles: true
welcome:
showOnStartup: false
whitespace: {}
".babel.regexp.source":
editor:
normalizeIndentOnPaste: "false"
".clojure.source":
editor:
autoIndent: false
autoIndentOnPaste: false
nonWordCharacters: "()\"':,;~@#$%^&{}[]`"
scrollPastEnd: true
".css.source":
editor:
normalizeIndentOnPaste: "false"
".cucumber.rspec.ruby.source.steps":
editor:
normalizeIndentOnPaste: "false"
".diff":
editor:
normalizeIndentOnPaste: "false"
".diff.source":
editor:
normalizeIndentOnPaste: "false"
".editorconfig.source":
editor:
normalizeIndentOnPaste: "false"
".feature.gherkin.text":
editor:
normalizeIndentOnPaste: "false"
".ini.source":
editor:
normalizeIndentOnPaste: "false"
".js.jsx.source":
editor:
normalizeIndentOnPaste: "false"
# 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
'atom-workspace':
'alt-cmd-c': 'clipboard-history:copy'
'alt-cmd-v': 'clipboard-history:paste'
'ctrl-s': 'sort-lines:sort'
'body':
'cmd-k left': 'window:focus-pane-on-left'
'cmd-k right': 'window:focus-pane-on-right'
'cmd-k cmd-left': 'pane:split-left'
'cmd-k cmd-right': 'pane:split-right'
# Allows using enter to select an autocomplete suggestion.
'.platform-darwin atom-text-editor[data-grammar~="clojure"].autocomplete-active':
'enter': 'autocomplete-plus:confirm'
'.platform-darwin atom-text-editor[data-grammar~="clojure"]':
# Indent the current selection
'cmd-i': 'lisp-paredit:indent'
# Expand the selection up a block
'ctrl-shift-m': 'lisp-paredit:expand-selection'
# Provides proper indentation when enter is pressed. (I disable normal lisp-paredit keybindings)
'enter': 'lisp-paredit:newline'
# Helpers for cutting, copying, pasting, deleting, and indenting a Clojure code
'cmd-shift-x': 'jason:cut-sexp'
'cmd-shift-c': 'jason:copy-sexp'
'cmd-shift-v': 'jason:paste-sexp'
'cmd-shift-delete': 'jason:delete-sexp'
'cmd-shift-d': 'jason:delete-sexp'
'cmd-shift-i': 'jason:indent-top-sexp'
# Miscellaneous helpers. Less applicable to clojure code. (optional)
'.platform-darwin atom-workspace atom-text-editor':
'alt-up': 'editor:move-line-up'
'alt-down': 'editor:move-line-down'
'cmd-alt-down': 'editor:duplicate-lines'
'cmd-d': 'editor:delete-line'
'ctrl-s':'tree-view:toggle'
'cmd-e': 'find-and-replace:select-next'
'cmd-alt-ctrl-w': 'editor:toggle-soft-wrap'
'alt-backspace': 'editor:delete-to-previous-word-boundary'
'alt-delete': 'editor:delete-to-next-word-boundary'
'ctrl-d': 'proto-repl:exit-repl'
'cmd-l': 'go-to-line:toggle'
'ctrl-l': 'proto-repl:clear-repl'
# Override newline back to original for proto-repl
'.platform-darwin ink-console atom-text-editor[data-grammar~="clojure"]':
'enter': 'editor:newline'
# 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.css, .source.scss':
'breakpoint':
'prefix': 'bp'
'body': """
@media ($1) {
$2
}
$0
"""
'breakpoint small':
'prefix': 'bps'
'body': """
@media (--small) {
$1
}
$0
"""
'breakpoint medium':
'prefix': 'bpm'
'body': """
@media (--medium) {
$1
}
$0
"""
'breakpoint large':
'prefix': 'bpl'
'body': """
@media (--large) {
$1
}
$0
"""
'.source.js, .source.jsx':
'console log':
'prefix': 'cl'
'body': """
console.log(${1:this});
$0
"""
'console log color':
'prefix': 'clc'
'body': """
console.log(`%c ${1:this}`, \'color: ${2:orange}\'); // eslint-disable-line quotes
console.log(${1:this});
$0
"""
'console log group':
'prefix': 'cg'
'body': """
console.group('${1}');
console.log(${2});
console.groupEnd();
$0
"""
'destructure props':
'prefix': 'dstr'
'body': """
const {
$1,
} = this.props;
$0
"""
'proptypes string':
'prefix': 'pts'
'body': """
PropTypes.string,
"""
'proptypes boolean':
'prefix': 'ptb'
'body': """
PropTypes.bool,
"""
'proptypes function':
'prefix': 'ptf'
'body': """
PropTypes.func,
"""
'proptypes number':
'prefix': 'ptn'
'body': """
PropTypes.number,
"""
'proptypes arrayOf':
'prefix': 'ptao'
'body': """
PropTypes.arrayOf(
${1},
),
"""
'proptypes shape':
'prefix': 'ptsh'
'body': """
PropTypes.shape({
${1}
}),
"""
'proptypes object':
'prefix': 'pto'
'body': """
PropTypes.object({
${1}
}),
"""
'proptypes number':
'prefix': 'ptn'
'body': """
PropTypes.number,
"""
'proptypes node':
'prefix': 'ptnd'
'body': """
PropTypes.node,
"""
'react stateless component':
'prefix': 'rsc'
'body': """
import React, { PropTypes } from 'react';
const ${1:ComponentName} = ({
${2:props},
}) => {
return (
${3}
);
};
${1:ComponentName}.propTypes = {
${2:props},
};
export default ${1:ComponentName};
"""
'react test':
'prefix': 'rtc'
'body': """
import React from 'react';
import { shallow } from 'enzyme';
import ${1:COMPONENT} from './index';
describe('${1:COMPONENT}', () => {
const defaultProps = {
};
it('creates a ${1:COMPONENT} component', () => {
const wrapper = shallow(<${1:COMPONENT} { ...defaultProps } />);
expect(wrapper, 'component not found').to.have.lengthOf(1);
expect(wrapper.children(), 'child contents not found').to.not.have.lengthOf(0);
});
});
"""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment