Skip to content

Instantly share code, notes, and snippets.

@kfreiman
Last active January 5, 2019 21:07
Show Gist options
  • Save kfreiman/aa8de50aad580305d583682b7884f263 to your computer and use it in GitHub Desktop.
Save kfreiman/aa8de50aad580305d583682b7884f263 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':
'ctrl-q': 'pane:show-next-recently-used-item'
'ctrl-q ^ctrl': 'pane:move-active-item-to-top-of-stack'
'ctrl-<': 'editor:toggle-line-comments'
'ctrl-shift-c': 'editor:toggle-line-comments'
'cmd-shift-c': 'editor:toggle-line-comments'
'ctrl-shift-l': 'editor:split-selections-into-lines'
# 'cmd-q': 'pane:show-next-recently-used-item'
#
'atom-workspace':
'ctrl-q': 'pane:show-next-recently-used-item'
'cmd-q': 'pane:show-next-recently-used-item'
'cmd-q ^cmd': 'pane:move-active-item-to-top-of-stack'
'ctrl-q ^ctrl': 'pane:move-active-item-to-top-of-stack'
'.platform-linux':
'alt': 'abort!'
'alt-shift': 'native!'
'alt-f1': 'window:toggle-menu-bar'
#
'atom-workspace atom-text-editor:not([mini])':
'cmd-up': 'editor:move-line-up'
'cmd-down': 'editor:move-line-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
[
{
"name": "Stylus",
"version": "3.2.0"
},
{
"name": "about",
"version": "1.9.1"
},
{
"name": "archive-view",
"version": "0.65.1"
},
{
"name": "atom-beautify",
"version": "0.33.4"
},
{
"name": "atom-dark-syntax",
"version": "0.29.1",
"theme": "syntax"
},
{
"name": "atom-dark-ui",
"version": "0.53.3",
"theme": "ui"
},
{
"name": "atom-ide-ui",
"version": "0.13.0"
},
{
"name": "atom-light-syntax",
"version": "0.29.1",
"theme": "syntax"
},
{
"name": "atom-light-ui",
"version": "0.46.3",
"theme": "ui"
},
{
"name": "atom-transpose",
"version": "0.3.5"
},
{
"name": "auto-reveal-in-sidebar",
"version": "0.8.0"
},
{
"name": "autocomplete-atom-api",
"version": "0.10.7"
},
{
"name": "autocomplete-css",
"version": "0.17.5"
},
{
"name": "autocomplete-html",
"version": "0.8.7"
},
{
"name": "autocomplete-plus",
"version": "2.41.0"
},
{
"name": "autocomplete-python",
"version": "1.11.0"
},
{
"name": "autocomplete-snippets",
"version": "1.12.0"
},
{
"name": "autoflow",
"version": "0.29.4"
},
{
"name": "autosave",
"version": "0.24.6"
},
{
"name": "background-tips",
"version": "0.28.0"
},
{
"name": "base16-tomorrow-dark-theme",
"version": "1.6.0",
"theme": "syntax"
},
{
"name": "base16-tomorrow-light-theme",
"version": "1.6.0",
"theme": "syntax"
},
{
"name": "bookmarks",
"version": "0.45.1"
},
{
"name": "bracket-matcher",
"version": "0.90.3"
},
{
"name": "build",
"version": "0.70.0"
},
{
"name": "busy-signal",
"version": "1.4.3"
},
{
"name": "command-palette",
"version": "0.43.5"
},
{
"name": "dalek",
"version": "0.2.2"
},
{
"name": "deprecation-cop",
"version": "0.56.9"
},
{
"name": "dev-live-reload",
"version": "0.48.1"
},
{
"name": "editorconfig",
"version": "2.2.2"
},
{
"name": "encoding-selector",
"version": "0.23.9"
},
{
"name": "exception-reporting",
"version": "0.43.1"
},
{
"name": "file-types",
"version": "1.0.1"
},
{
"name": "find-and-replace",
"version": "0.215.14"
},
{
"name": "fuzzy-finder",
"version": "1.8.2"
},
{
"name": "git-diff",
"version": "1.3.9"
},
{
"name": "github",
"version": "0.22.2"
},
{
"name": "gitlab-integration",
"version": "0.4.8"
},
{
"name": "go-debug",
"version": "1.6.2"
},
{
"name": "go-plus",
"version": "6.0.2"
},
{
"name": "go-signature-statusbar",
"version": "1.2.3"
},
{
"name": "go-to-line",
"version": "0.33.0"
},
{
"name": "grammar-selector",
"version": "0.50.1"
},
{
"name": "ide-php",
"version": "0.7.17"
},
{
"name": "ide-python",
"version": "1.1.0"
},
{
"name": "ide-rust",
"version": "0.19.2"
},
{
"name": "ide-vue",
"version": "0.1.9"
},
{
"name": "image-view",
"version": "0.63.1"
},
{
"name": "incompatible-packages",
"version": "0.27.3"
},
{
"name": "intentions",
"version": "1.1.5"
},
{
"name": "keybinding-resolver",
"version": "0.38.4"
},
{
"name": "language-c",
"version": "0.60.13"
},
{
"name": "language-clojure",
"version": "0.22.7"
},
{
"name": "language-coffee-script",
"version": "0.49.3"
},
{
"name": "language-csharp",
"version": "1.1.0"
},
{
"name": "language-css",
"version": "0.43.0"
},
{
"name": "language-docker",
"version": "1.1.8"
},
{
"name": "language-dotenv",
"version": "1.2.0"
},
{
"name": "language-gfm",
"version": "0.90.5"
},
{
"name": "language-git",
"version": "0.19.1"
},
{
"name": "language-go",
"version": "0.46.6"
},
{
"name": "language-html",
"version": "0.51.5"
},
{
"name": "language-hyperlink",
"version": "0.17.0"
},
{
"name": "language-java",
"version": "0.30.0"
},
{
"name": "language-javascript",
"version": "0.129.17"
},
{
"name": "language-json",
"version": "0.19.2"
},
{
"name": "language-less",
"version": "0.34.2"
},
{
"name": "language-make",
"version": "0.22.3"
},
{
"name": "language-mustache",
"version": "0.14.5"
},
{
"name": "language-nginx",
"version": "0.8.0"
},
{
"name": "language-objective-c",
"version": "0.15.1"
},
{
"name": "language-perl",
"version": "0.38.1"
},
{
"name": "language-php",
"version": "0.44.0"
},
{
"name": "language-property-list",
"version": "0.9.1"
},
{
"name": "language-proto",
"version": "0.8.0"
},
{
"name": "language-protobuf",
"version": "0.7.1"
},
{
"name": "language-python",
"version": "0.51.8"
},
{
"name": "language-ruby",
"version": "0.72.14"
},
{
"name": "language-ruby-on-rails",
"version": "0.25.3"
},
{
"name": "language-rust",
"version": "0.4.12"
},
{
"name": "language-rust-bundled",
"version": "0.1.0"
},
{
"name": "language-sass",
"version": "0.62.0"
},
{
"name": "language-shellscript",
"version": "0.27.9"
},
{
"name": "language-source",
"version": "0.9.0"
},
{
"name": "language-sql",
"version": "0.25.10"
},
{
"name": "language-text",
"version": "0.7.4"
},
{
"name": "language-todo",
"version": "0.29.4"
},
{
"name": "language-toml",
"version": "0.18.2"
},
{
"name": "language-typescript",
"version": "0.4.11"
},
{
"name": "language-vue",
"version": "0.23.1"
},
{
"name": "language-vue-component",
"version": "0.5.0"
},
{
"name": "language-xml",
"version": "0.35.2"
},
{
"name": "language-yaml",
"version": "0.32.0"
},
{
"name": "last-cursor-position",
"version": "0.9.3"
},
{
"name": "line-ending-selector",
"version": "0.7.7"
},
{
"name": "link",
"version": "0.31.6"
},
{
"name": "linter",
"version": "2.2.0"
},
{
"name": "linter-eslint",
"version": "8.4.1"
},
{
"name": "linter-rust",
"version": "0.9.0"
},
{
"name": "linter-ui-default",
"version": "1.7.1"
},
{
"name": "markdown-preview",
"version": "0.159.25"
},
{
"name": "metrics",
"version": "1.6.2"
},
{
"name": "minimap",
"version": "4.29.9"
},
{
"name": "notifications",
"version": "0.70.5"
},
{
"name": "one-dark-syntax",
"version": "1.8.4",
"theme": "syntax"
},
{
"name": "one-dark-ui",
"version": "1.12.5",
"theme": "ui"
},
{
"name": "one-light-syntax",
"version": "1.8.4",
"theme": "syntax"
},
{
"name": "one-light-ui",
"version": "1.12.5",
"theme": "ui"
},
{
"name": "open-on-github",
"version": "1.3.1"
},
{
"name": "package-generator",
"version": "1.3.0"
},
{
"name": "prettier-atom",
"version": "0.56.2"
},
{
"name": "python-indent",
"version": "1.1.6"
},
{
"name": "python-tools",
"version": "0.6.9"
},
{
"name": "selection-highlight",
"version": "0.1.6"
},
{
"name": "set-syntax",
"version": "0.4.0"
},
{
"name": "settings-view",
"version": "0.257.1"
},
{
"name": "snippets",
"version": "1.4.0"
},
{
"name": "solarized-dark-syntax",
"version": "1.2.0",
"theme": "syntax"
},
{
"name": "solarized-light-syntax",
"version": "1.2.0",
"theme": "syntax"
},
{
"name": "spell-check",
"version": "0.74.2"
},
{
"name": "status-bar",
"version": "1.8.15"
},
{
"name": "styleguide",
"version": "0.49.12"
},
{
"name": "symbols-view",
"version": "0.118.2"
},
{
"name": "sync-settings",
"version": "0.8.6"
},
{
"name": "tabs",
"version": "0.109.2"
},
{
"name": "timecop",
"version": "0.36.2"
},
{
"name": "tree-view",
"version": "0.224.2"
},
{
"name": "tree-view-autoresize",
"version": "2.3.0"
},
{
"name": "update-package-dependencies",
"version": "0.13.1"
},
{
"name": "welcome",
"version": "0.36.7"
},
{
"name": "whitespace",
"version": "0.37.7"
},
{
"name": "wrap-guide",
"version": "0.40.3"
}
]
{
"atom-beautify": {
"general": {
"_analyticsUserId": "b92befb1-e343-4e28-8bdd-8f8940fd6950"
},
"sql": {}
},
"atom-ide-ui": {
"atom-ide-code-format": {
"formatOnSave": true
},
"atom-ide-datatip": {
"datatipDebounceDelay": 100
},
"atom-ide-debugger": {
"showDebuggerOnBpSet": false
},
"debugger-exceptionBreakpointsCollapsed": false,
"hyperclick": {
"darwinTriggerKeys": "shiftKey,metaKey",
"linuxTriggerKeys": "shiftKey,ctrlKey"
},
"use": {
"atom-ide-refactor": "never"
}
},
"autocomplete-python": {
"useKite": false
},
"autosave": {
"enabled": true
},
"build": {
"buildOnSave": true,
"panelVisibility": "Show on Error",
"scrollOnError": true
},
"core": {
"autoHideMenuBar": true,
"closeDeletedFileTabs": true,
"customFileTypes": {
"source.go": [
"fizz"
]
},
"disabledPackages": [
"linter",
"linter-php",
"atom-autocomplete-php",
"language-vue-component",
"ide-vue",
"file-types",
"autocomplete-python",
"language-proto",
"linter-rust",
"build"
],
"packagesWithKeymapsDisabled": [],
"telemetryConsent": "limited"
},
"editor": {
"fontSize": 13,
"scrollPastEnd": true,
"showIndentGuide": true
},
"exception-reporting": {
"userId": "94b59f23-7dc8-424d-8e29-d3387b7cf0d3"
},
"gitlab-integration": {
"period": 1000,
"token": "x3nVgEE5pRLhVgpf-Pnd"
},
"go-debug": {
"clearOutputOnStart": true,
"configurationFile": [
"/home/kirill/go/src/gitlab.com/highloadcup/go2/debug.json"
],
"dlvPath": "/home/kirill/go/bin/dlv",
"panelInitialVisible": true
},
"go-plus": {
"autocomplete": {
"snippetMode": "nameAndType",
"unimportedPackages": false
},
"config": {},
"disabledBundledPackages": [
"go-debug"
],
"format": {},
"lint": {
"args": [
"--exclude=\"\\bexported \\w+ (\\S*['.]*)([a-zA-Z'.*]*) should have comment or be unexported\\b\"",
"--vendor",
"--disable-all",
"--enable=vet",
"--enable=vetshadow",
"--enable=golint",
"--enable=ineffassign",
"--enable=goconst",
"--tests",
"--json",
"."
]
},
"panel": {
"displayMode": "closed",
"focusOnFailure": false
},
"test": {
"runTestsOnSave": false
}
},
"linter-eslint": {
"fixOnSave": true,
"globalNodePath": "/home/kirill/.config/yarn/global",
"lintHtmlFiles": true,
"scopes": [
"source.js",
"source.jsx",
"source.js.jsx",
"source.babel",
"source.js-semantic",
"source.vue"
],
"useGlobalEslint": true
},
"linter-ui-default": {
"panelHeight": 300
},
"minimap": {
"absoluteMode": true,
"adjustAbsoluteModeHeight": true,
"plugins": {
"cursorline": true,
"cursorlineDecorationsZIndex": 0,
"find-and-replace": true,
"find-and-replaceDecorationsZIndex": 0,
"git-diff": true,
"git-diffDecorationsZIndex": 0,
"highlight-selected": true,
"highlight-selectedDecorationsZIndex": 0,
"linter": true,
"linterDecorationsZIndex": 0,
"minimap-autohide": true,
"minimap-autohideDecorationsZIndex": 0
}
},
"php-debug": {
"currentConsoleHeight": "134px",
"currentPanelMode": "bottom"
},
"prettier-atom": {
"formatOnSaveOptions": {
"enabled": true,
"showInStatusBar": true
},
"prettierEslintOptions": {},
"prettierOptions": {
"bracketSpacing": true,
"semi": true,
"singleQuote": true
},
"useEslint": true,
"useStylelint": true
},
"sync-settings": {
"quietUpdateCheck": true
},
"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'
#
# 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:
# http://flight-manual.atom.io/using-atom/sections/basic-customization/#_cson
'.source.php':
'var_dump':
'prefix': 'vd'
'body': 'var_dump(${1:\'expression\'});${2:exit;}'
'.source.go':
'spew.Dump':
'prefix': 'dump'
'body': 'spew.Dump(${1:val})'
'import spew':
'prefix': 'spew'
'body': '"github.com/davecgh/go-spew/spew"'
'return':
'prefix': 'ret'
'body': 'return ${1}'
'log.Println':
'prefix': 'log'
'body': 'log.Println(${1})'
'strconv.Atoi':
'prefix': 'conv'
'body': 'i, err := strconv.Atoi(${1:str})'
'Options':
'prefix': 'options'
'body': '''
// Option function.
type Option func(*$1)
// New with the given options.
func New(options ...Option) *$1 {
var v $1
for _, o := range options {
o(&v)
}
return &v
}
$0
'''
'Option':
'prefix': 'o'
'body': '''
// With$1 option.
func With$1($2) Option {
return func(v *$3) {
$0
}
}
'''
'Context Background':
'prefix': 'cb'
'body': 'context.Background()'
'Context WithTimeout':
'prefix': 'ct'
'body': '''
ctx, cancel := context.WithTimeout($0, ${1:time.Second})
defer cancel()
'''
'log':
'prefix': 'l'
'body': 'println($0)'
'Log Debug':
'prefix': 'ld'
'body': 'log.Debugf("$1", $0)'
'db sqlx':
'prefix': 'db'
'body': '*sqlx.DB'
'Return nil':
'prefix': 'n'
'body': 'return nil'
'Reverse Slice':
'prefix': 'reverse'
'body': '''
for i, j := 0, len($1)-1; i < j; i, j = i+1, j-1 {
$1[i], $1[j] = $1[j], $1[i]
}
'''
'Go inline':
'prefix': 'goi'
'body': 'go func() { $0 }()'
'Log WithFields':
'prefix': 'lw'
'body': '''
${1:log}.WithFields(log.Fields{
$0
})
'''
'No Error':
'prefix': 'ae'
'body': '''
assert.NoError(t, ${1:err}, "$0")
'''
'Assert Equal':
'prefix': 'aee'
'body': '''
assert.Equal(t, ${1:expected}, ${2:actual})
'''
'HTTP error':
'prefix': 'he'
'body': 'http.Error(w, http.StatusText(http.Status$1), http.Status$1)'
'Inspect JSON':
'prefix': 'ij'
'body': '''
{
enc := json.NewEncoder(os.Stderr)
enc.SetIndent("", " ")
enc.Encode($0)
}
'''
'For range':
'prefix': 'fr'
'body': '''
for _, $1 := range $2 {
$0
}
'''
'Config':
'prefix': 'configuration'
'body':'''
// Config options.
type Config struct {
$0
}
// $1 $2
type $1 struct {
*Config
}
// New $3 with the given config.
func New(config *Config) *$1 {
return &$1{
Config: config,
}
}
'''
'Benchmark':
'prefix': 'bench'
'body': '''
func Benchmark$1(b *testing.B) {
for i := 0; i < b.N; i++ {
$0
}
}
'''
'Map':
'prefix': 'ma'
'body': 'map[${1:string}]${0:value}'
'Lock':
'prefix': 'lo',
'body': '''
$0.Lock()
defer $0.Unlock()
'''
'unsigned int 64':
'prefix': 'u'
'body': 'uint64'
'unsigned int 32':
'prefix': 'uu'
'body': 'uint32'
'int 64':
'prefix': 'i'
'body': 'int64'
'int 32':
'prefix': 'ii'
'body': 'int32'
'float 64':
'prefix': 'fl'
'body': 'float64'
'Append':
'prefix': 'a'
'body': '$1 = append($1, $2)$0'
'HTTP Handler':
'prefix': 'ha'
'body': 'w http.ResponseWriter, r *http.Request'
'HTTP Handler Function':
'prefix': 'haf'
'body': 'func (w http.ResponseWriter, r *http.Request){$0}'
'Error Wrap':
'prefix': 'ew'
'body': 'errors.Wrap(err, "$0")'
'Log Error':
'prefix': 'le'
'body': 'log.WithError(err).Error("$0")'
'Context Error':
'prefix': 'ce'
'body': 'ctx.WithError(err).Error("$0")'
'Log Fatalf':
'prefix': 'fa'
'body': 'log.Fatalf("error $1: %s", err)$0'
'Init function':
'prefix': 'init'
'body': '''
func init() {
$0
}
'''
'Defer function':
'prefix': 'd'
'body': '''
defer func(){
$0
}()
'''
'Test function':
'prefix': 't'
'body': '''
func Test$1(t *testing.T) {
$0
}
'''
'Test file':
'prefix': 'tf'
'body': '''
package $1
import (
"testing"
"github.com/tj/assert"
)
func Test$2(t *testing.T) {
$0
}
'''
'Full file example':
'prefix': 'ex'
'body': '''
package $1_test
import (
"github.com/$2"
)
// $3
func Example() {
$0
}
'''
'If error':
'prefix': 'ie'
'body': '''
if err := $1; err != nil {
return $0
}
'''
'Hex Dump Reader':
'prefix': 'hdr'
'body': '''
{
b, err := ioutil.ReadAll($0)
if err != nil {
panic(err)
}
fmt.Printf("%s\\\\n", hex.Dump(b))
}
'''
'Hex Dump':
'prefix': 'hd'
'body': '''
fmt.Printf("%s\\\\n", hex.Dump($1))
'''
'Fmt Printf':
'prefix': 'p'
'body': '''
fmt.Printf("$1\\\\n", $2)
'''
'Fmt Printf Inspect':
'prefix': 'pp'
'body': '''
fmt.Printf("%#v\\\\n", $1)
'''
'Fmt Printf Inspect Stderr':
'prefix': 'ppp'
'body': '''
fmt.Fprintf(os.Stderr, "%#v\\\\n", $1)
'''
'Return':
'prefix': 'r'
'body': 'return'
'Tag':
'prefix': 'tag'
'body': '`$1:"$2"`'
'Bytes':
'prefix': 'b'
'body': '[]byte($1)'
'Function':
'prefix': 'f'
'body': '''
func $1($2) $3 {
$0
}
'''
'If Ok':
'prefix': 'io'
'body': '''
if $1, ok := $2.($3); ok {
$0
}
'''
'If Error':
'prefix': 'e'
'body': '''
if err != nil {
$0
}
'''
'Struct':
'prefix': 's'
'body': '''
type $1 struct {
$0
}
'''
'Method':
'prefix': 'm'
'body': '''
// $3 $4
func ($1 *$2) $3($5) $6 {
$0
}
'''
'Method Chained':
'prefix': 'mc'
'body': '''
// $3 $4
func ($1 *$2) $3($5) *$2 {
$0
return $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
*/
// https://github.com/atom/atom/issues/15737#issuecomment-355936149
* {
transform: scaleX(1.0000001);
}
/*
* 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 {
// transform: scaleX(1.0000001);
// color: white;
// background-color: hsl(180, 24%, 12%);
}
// style UI elements inside atom-text-editor
atom-text-editor .cursor {
// border-color: red;
}
.tree-view .list-item.selected {
padding-top: 0 !important;
margin-top: 0 !important;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment