6 Commits c780acc783 ... a33e9fc09a

Author SHA1 Message Date
  Kyle P Davis a33e9fc09a fix: minor updates to fallback eslint config 5 years ago
  Kyle P Davis 47ec828dea refactor: remove old files no longer being used 5 years ago
  Kyle P Davis 6fee0f2ec0 feat: add irb config with completion 5 years ago
  Kyle P Davis b8b80e02be feat: cleanup install links, remove atom stuff 5 years ago
  Kyle P Davis 9f24980f45 feat: add ts-node-print alias 5 years ago
  Kyle P Davis b3d74249eb feat: make node-print more powerful via with+eval 5 years ago
13 changed files with 21 additions and 528 deletions
  1. 0 87
      .ctags
  2. 6 10
      .eslintrc.js
  3. 1 0
      .irbrc
  4. 0 58
      .jscsrc
  5. 0 33
      .jshintrc
  6. 2 1
      .profile
  7. 0 25
      atom/config.cson
  8. 0 18
      atom/init.coffee
  9. 0 69
      atom/keymap.cson
  10. 0 21
      atom/snippets.cson
  11. 0 117
      atom/styles.less
  12. 12 20
      install.sh
  13. 0 69
      install_atom_plugins.sh

+ 0 - 87
.ctags

@@ -1,87 +0,0 @@
---exclude=*.min.js
---exclude=node_modules
-
---langdef=JavaScript
---langmap=JavaScript:.js
---regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\{/\1/,object/
---regex-JavaScript=/([A-Za-z0-9._$()]+)[ \t]*[:=][ \t]*function[ \t]*\(/\1/,function/
---regex-JavaScript=/function[ \t]+([A-Za-z0-9._$]+)[ \t]*\(([^)])\)/\1/,function/
---regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\[/\1/,array/
---regex-JavaScript=/([^= ]+)[ \t]*=[ \t]*[^"]'[^']*/\1/,string/
---regex-JavaScript=/([^= ]+)[ \t]*=[ \t]*[^']"[^"]*/\1/,string/
-
---langdef=CoffeeScript
---langmap=CoffeeScript:.coffee
---regex-CoffeeScript=/^[ \t]*(@?[a-zA-Z$_\.0-9]+)[ \t]*(=|\:)[ \t]*(\(.*\))?[ \t]*(-|=)>/\1/f,function/
---regex-CoffeeScript=/^[ \t]*([a-zA-Z$_0-9]+\:\:[a-zA-Z$_\.0-9]+)[ \t]*(=|\:)[ \t]*(\(.*\))?[ \t]*(-|=)>/\1/f,function/
---regex-CoffeeScript=/^[ \t]*describe[ \t]"(.+)"[ \t]*,[ \t]+[-=]>/\1/f,function/
---regex-CoffeeScript=/^[ \t]*describe[ \t]'(.+)'[ \t]*,[ \t]+[-=]>/\1/f,function/
---regex-CoffeeScript=/^[ \t]*it[ \t]"([^"]+)"[ \t]*,[ \t]+[-=]>/\1/f,function/
---regex-CoffeeScript=/^[ \t]*it[ \t]'([^']+)'[ \t]*,[ \t]+[-=]>/\1/f,function/
---regex-CoffeeScript=/^[ \t]*f+describe[ \t]"(.+)"[ \t]*,[ \t]+[-=]>/focused\: \1/f,function/
---regex-CoffeeScript=/^[ \t]*f+describe[ \t]'(.+)'[ \t]*,[ \t]+[-=]>/focused: \1/f,function/
---regex-CoffeeScript=/^[ \t]*f+it[ \t]"([^"]+)"[ \t]*,[ \t]+[-=]>/focused: \1/f,function/
---regex-CoffeeScript=/^[ \t]*f+it[ \t]'([^']+)'[ \t]*,[ \t]+[-=]>/focused: \1/f,function/
---regex-CoffeeScript=/^[ \t]*xdescribe[ \t]"(.+)"[ \t]*,[ \t]+[-=]>/disabled\: \1/f,function/
---regex-CoffeeScript=/^[ \t]*xdescribe[ \t]'(.+)'[ \t]*,[ \t]+[-=]>/disabled: \1/f,function/
---regex-CoffeeScript=/^[ \t]*xit[ \t]"([^"]+)"[ \t]*,[ \t]+[-=]>/disabled: \1/f,function/
---regex-CoffeeScript=/^[ \t]*xit[ \t]'([^']+)'[ \t]*,[ \t]+[-=]>/disabled: \1/f,function/
---regex-CoffeeScript=/^[ \t]*class[ \t]*([a-zA-Z$_\.0-9]+)[ \t]*/\1/f,function/
-
---langdef=Css
---langmap=Css:.css
---langmap=Css:+.less
---langmap=Css:+.scss
---regex-Css=/^[ \t]*(.+)[ \t]*\{/\1/f,function/
---regex-Css=/^[ \t]*(.+)[ \t]*,[ \t]*$/\1/f,function/
-
---langdef=Sass
---langmap=Sass:.sass
---regex-Sass=/^[ \t]*([#.]*[a-zA-Z_0-9]+)[ \t]*$/\1/f,function/
-
---langdef=Less
---langmap=Less:.less
---regex-Less=/^[ t]*.([A-Za-z0-9_-]+)/1/c,class,classes/
---regex-Less=/^[ t]*#([A-Za-z0-9_-]+)/1/i,id,ids/
---regex-Less=/^[ t]*(([A-Za-z0-9_-]+[ tn,]+)+){/1/t,tag,tags/
---regex-Less=/^[ t]*@medias+([A-Za-z0-9_-]+)/1/m,media,medias/
-
---langdef=Yaml
---langmap=Yaml:.yaml
---langmap=Yaml:+.yml
---regex-Yaml=/^[ \t]*([a-zA-Z_0-9 ]+)[ \t]*\:[ \t]*/\1/f,function/
-
---regex-Html=/^[ \t]*<([a-zA-Z]+)[ \t]*.*>/\1/f,function/
-
---langdef=Markdown
---langmap=Markdown:.md
---langmap=Markdown:+.markdown
---langmap=Markdown:+.mdown
---langmap=Markdown:+.mkd
---langmap=Markdown:+.mkdown
---langmap=Markdown:+.ron
---regex-Markdown=/^#+[ \t]*([^#]+)/\1/f,function/
-
---langdef=Json
---langmap=Json:.json
---regex-Json=/^[ \t]*"([^"]+)"[ \t]*\:/\1/f,function/
-
---langdef=Cson
---langmap=Cson:.cson
---langmap=Cson:+.gyp
---regex-Cson=/^[ \t]*'([^']+)'[ \t]*\:/\1/f,function/
---regex-Cson=/^[ \t]*"([^"]+)"[ \t]*\:/\1/f,function/
---regex-Cson=/^[ \t]*([^'"]+)[ \t]*\:/\1/f,function/
-
---langmap=C++:+.mm
-
---langmap=Ruby:+(Rakefile)
-
---langmap=Php:+.module
-
---langdef=Go
---langmap=Go:.go
---regex-Go=/func([ \t]+\([^)]+\))?[ \t]+([a-zA-Z0-9_]+)/\2/f,func/
---regex-Go=/var[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/v,var/
---regex-Go=/type[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/t,type/
-

+ 6 - 10
.eslintrc.js

@@ -5,13 +5,11 @@ module.exports = {
 	//"parser": "babel-eslint", // for the <3 of generator comprehensions
 
 	"parserOptions": {
-		"ecmaVersion": 2017,
+		"ecmaVersion": 2018,
 		"sourceType": "module",
 		"ecmaFeatures": {
-			"globalReturn": false,
 			"impliedStrict": true,
 			"jsx": true,
-			"experimentalObjectRestSpread": true,
 		},
 	},
 
@@ -20,7 +18,6 @@ module.exports = {
 		"node": true,
 		"es6": true,
 		"mocha": true,
-		"jquery": true,
 	},
 
 	"rules": {
@@ -43,20 +40,19 @@ module.exports = {
 		"strict": [2, "global"],
 
 		// Variables
-		//
+		//
 
 		// Node.js
-		//no-sync ? ? ?
+		//
 
 		// Stylistic Issues
 		"brace-style": [2, "1tbs"],
-		"camelcase": [2, {"properties": "always"}],
-		"quotes": [2, "double", "avoid-escape"],
+		"camelcase": [2, { "properties": "always" }],
+		"quotes": [2, "double", "avoidEscape"],
 		"require-jsdoc": 2,
 
 		// ECMAScript 6
-		//
-
+		// …
 
 		// Legacy
 		"max-depth": [2, 7],

+ 1 - 0
.irbrc

@@ -0,0 +1 @@
+require 'irb/completion'

+ 0 - 58
.jscsrc

@@ -1,58 +0,0 @@
-{
-  "esnext": true,
-  "fileExtensions": [".js", ".es6"],
-  "disallowImplicitTypeConversion": ["numeric", "boolean", "binary", "string"],
-  "disallowKeywords": ["with"],
-  "disallowKeywordsOnNewLine": ["else", "catch", "finally"],
-  "disallowMixedSpacesAndTabs": true,
-  "disallowNewlineBeforeBlockStatements": true,
-  "disallowQuotedKeysInObjects": true,
-  "disallowSpaceAfterObjectKeys": true,
-  "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"],
-  "disallowSpaceBeforeBinaryOperators": [","],
-  "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
-  "disallowSpacesInFunctionExpression": {
-    "beforeOpeningRoundBrace": true
-  },
-  "disallowSpacesInsideArrayBrackets": true,
-  "disallowSpacesInsideObjectBrackets": true,
-  "disallowSpacesInsideParentheses": true,
-  "disallowTrailingWhitespace": true,
-  "disallowYodaConditions": true,
-  "requireBlocksOnNewline": true,
-  "requireCurlyBraces": ["for", "while", "do", "try", "catch"],
-  "requireLineFeedAtFileEnd": true,
-  "requireSpaceAfterBinaryOperators": [",", "+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
-  "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"],
-  "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
-  "requireSpacesInConditionalExpression": {
-    "afterTest": true,
-    "beforeConsequent": true,
-    "afterConsequent": true,
-    "beforeAlternate": true
-  },
-  "requireSpacesInFunctionExpression": {
-    "beforeOpeningCurlyBrace": true
-  },
-  "requireTrailingComma": {
-    "ignoreSingleLine": true,
-    "ignoreSingleValue": true
-  },
-  "safeContextKeyword": ["self"],
-  "jsDoc": {
-    "checkAnnotations": {
-      "preset": "jsdoc3"
-    },
-    "checkParamNames": true,
-    "checkRedundantAccess": true,
-    "checkRedundantParams": true,
-    "checkRedundantReturns": true,
-    "enforceExistence": {
-        "allExcept": ["expressions", "exports"]
-    },
-    "leadingUnderscoreAccess": true,
-    "requireParamDescription": true,
-    "requireParamTypes": true,
-    "requireReturnTypes": true
-  }
-}

+ 0 - 33
.jshintrc

@@ -1,33 +0,0 @@
-{
-
-	"camelcase": true,
-	"curly": false,
-	"eqeqeq": true,
-	"forin": true,
-	"immed": true,
-	"latedef": true,
-	"newcap": true,
-	"noarg": true,
-	"noempty": true,
-	"nonbsp": true,
-	"nonew": true,
-	"quotmark": true,
-	"undef": true,
-	"unused": "vars",
-	"strict": false,
-	"trailing": true,
-	"maxparams": 11,
-	"maxdepth": 7,
-	"maxstatements": 42,
-	"maxcomplexity": 13,
-	"maxlen": 140,
-
-	"boss": true,
-	"expr": true,
-	"globalstrict": true,
-
-	"esnext": true,
-	"node": true,
-	"devel": false
-
-}

+ 2 - 1
.profile

@@ -87,7 +87,8 @@ alias l="ls -FC"
 alias d="l"
 alias tree="tree -CF"
 alias grep="grep --color --exclude-dir={.svn,.git,node_modules}"
-alias node-print="node -p -e 'l=(a=process.argv.slice(2)).length; o=require(path.resolve(process.argv[1])); pl=l>0?a.map(s=>s.split(\".\")):[[]]; r=pl.map(p=>p.reduce((o,k)=>o[k],o)); l>1?r:r[0]'"
+alias node-print="node -p -e 'const [,f=\".\",e=\"this\"]=process.argv; (function(){ with(this) return eval(e); }).call(require(path.resolve(f)))'"
+alias ts-node-print="TS_NODE_FILES=true node -r ts-node/register -p -e 'const [,f=\".\",e=\"this\"]=process.argv; (function(){ with(this) return eval(e); }).call(require(path.resolve(f)))'"
 
 # color diffs
 ! command -v colordiff &>/dev/null  ||  alias diff="colordiff"

+ 0 - 25
atom/config.cson

@@ -1,25 +0,0 @@
-"*":
-  "atom-ternjs": {}
-  "atom-typescript": {}
-  "autocomplete-python":
-    useKite: false
-  core:
-    telemetryConsent: "limited"
-    themes: [
-      "one-light-ui"
-      "one-light-syntax"
-    ]
-  editor:
-    fontSize: 12
-    invisibles: {}
-    scrollPastEnd: true
-    showIndentGuide: true
-    softTabs: false
-    tabLength: 4
-  linter: {}
-  "linter-eslint":
-    disableWhenNoEslintConfig: true
-  "linter-flow": {}
-  "tree-view":
-    hideIgnoredNames: true
-    hideVcsIgnoredFiles: true

+ 0 - 18
atom/init.coffee

@@ -1,18 +0,0 @@
-# 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()}"
-
-process.env.PATH += ':' + process.env.HOME + '/homebrew/bin/'
-process.env.PATH += ':/usr/local/bin'
-process.env.GOPATH = process.env.HOME + '/go'
-
-# Ensure LANG is set for subprocesses
-process.env.LANG = 'en_US.UTF-8' unless process.env.LANG

+ 0 - 69
atom/keymap.cson

@@ -1,69 +0,0 @@
-# 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/#_cson
-
-'atom-workspace':
-  'cmd-u': 'tree-view:toggle'
-
-'atom-workspace atom-text-editor:not([mini])':
-  'cmd-shift-L': 'tree-view:reveal-active-file'
-
-'atom-text-editor':
-  'cmd-shift-B': 'beautify:beautify-editor'
-  'alt-up': 'editor:move-line-up'
-  'alt-down': 'editor:move-line-down'
-  'ctrl-alt-left': '!unset' # --- TODO: add 'find-and-replace:select-previous'
-  'ctrl-alt-right': 'find-and-replace:select-next'
-  'cmd-l': 'go-to-line:toggle'
-  #'cmd-d': 'editor:delete-line' --- TODO: broken
-  'cmd-shift-D': 'editor:duplicate-lines'
-  'cmd-alt-l': 'editor:fold-current-row'
-  'cmd-shift-alt-L': 'editor:unfold-current-row'
-
-# TODO: more things from ACE that I might care about
-# cmd-option-l toggle-fold
-# cmd-shift-l select-current-line and move-down
-
-# TODO: make :w, :wq, :x, etc. work *SEAMLESSLY*
-#'atom-text-editor.vim-mode:not(.insert-mode)':
-#  ':': 'command-palette:toggle'
-
-'atom-text-editor.vim-mode.visual-mode':
-  '=': 'beautify:beautify-editor'
-
-'atom-text-editor:not(mini) .autocomplete-plus.autocomplete-suggestion-list':
-  # 'tab': 'unset!'
-  'enter': 'autocomplete-plus:confirm'
-  # 'up': 'unset!'
-  # 'down': 'unset!'
-  'ctrl-p': 'autocomplete-plus:select-previous'
-  'ctrl-n': 'autocomplete-plus:select-next'

+ 0 - 21
atom/snippets.cson

@@ -1,21 +0,0 @@
-# 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

+ 0 - 117
atom/styles.less

@@ -1,117 +0,0 @@
-/*
- * 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;
-}
-
-// MY STYLES
-
-atom-ternjs-type {
-    border: 1px solid rgba(116, 124, 128, 0.9);
-    background: rgba(240, 248, 252, 0.9);       // for light themes
-    // background: rgba(42, 63, 75, 0.9);       // for dark themes
-}
-
-atom-pane {
-    .term3 .terminal {
-        font-family: Inconsolata, Monaco, Consolas, 'Courier New', Courier;
-        -webkit-font-smoothing: none;
-        opacity: 0.8;
-        -webkit-filter: sepia(25%);
-    }
-    &.active .term3 .terminal {
-        opacity: 1.0;
-        -webkit-filter: none;
-    }
-}
-
-// make only active pane
-// atom-pane {
-//     opacity: 0.8;
-//     &.active {
-//         opacity: 1.0;
-//     }
-// }
-
-atom-notifications {
-    opacity: 0.7;
-}
-atom-notifications:hover {
-    opacity: 1.0;
-}
-
-#linter-inline {
-    //TODO: dark theme
-    //TODO: make light theme more like the ternjs one
-    background: rgba(160, 160, 160, 1);       // for light themes
-    border: 1px solid rgba(42, 63, 75, 0.5);
-    opacity: 0.2;
-    &:hover {
-        opacity: 1.0;
-    }
-    linter-message {
-        .badge {
-            border: 1px solid rgba(42, 63, 75, 0.3);
-            color: white;
-        }
-        text-shadow: 0 0 2px rgba(42, 63, 75, 0.7);
-    }
-}
-
-autocomplete-suggestion-list .suggestion-description .suggestion-description-content {
-    display: block;
-    overflow: scroll;
-    max-height: 20em;
-}
-
-atom-panel.modal.overlay.from-top:after {
-    // background:rgba(.3,.3,.3,.3);
-    background: radial-gradient(at 50% 5%, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.5) 100%);
-    // -webkit-backdrop-filter: blur(5px); /*TODO: enable experimental*/
-}
-
-// @keyframes pulsating {
-//     0% {
-//         opacity:1.0;
-//     }
-//     50% {
-//         opacity:0.8;
-//     }
-// }
-// animation: pulsating 10s steps(500) infinite alternate;
-// animation: pulsating 10s steps(50) infinite alternate;
-
-atom-text-editor.editor .cursor {
-
-    .syntax--variable.syntax--language {
-        opacity: 0.6;
-    }
-
-}

+ 12 - 20
install.sh

@@ -24,30 +24,22 @@ link() {
 	fi
 }
 
-link "$CMD_DIR/.profile" "$HOME/.profile"
+FILES="
+	.profile
+	.vimrc
+	.eslintrc.js
+	.irbrc
+"
+
+for FILE in $FILES; do
+	link "$CMD_DIR/$FILE" "$HOME/"
+done
+
+# extra links for .profile
 link "$CMD_DIR/.profile" "$HOME/.zshrc"
 link "$CMD_DIR/.profile" "$HOME/.bashrc"
 link "$CMD_DIR/.profile" "$HOME/.bash_profile" # certain scenarios use this one
 
-link "$CMD_DIR/.vimrc" "$HOME/.vimrc"
-
-link "$CMD_DIR/.eslintrc.js" "$HOME/.eslintrc.js"
-
-mkdir -p "$HOME/.atom"
-for F in "$CMD_DIR/atom/"*; do
-	FN=${F##*/}
-	link "$CMD_DIR/atom/$FN" "$HOME/.atom/$FN"
-done
-if ! [[ -d "$HOME/.atom/packages/" ]]; then
-	if which apm &>/dev/null; then
-		echo "# INFO: If you use Atom then you may want to run \"$CMD_DIR/install_atom_plugins.sh\""
-	else
-		echo "# WARN: Unable to find Atom's \"apm\" command."
-		echo "# WARN: 1. Get Atom from the website or automatically using \"gimme atom\""
-		echo "# WARN: 2. Install the atom plugins using \"$CMD_DIR/install_atom_plugins.sh\""
-	fi
-fi
-
 OS=$(uname -s)
 if [ "$OS" = "Darwin" ]; then
 	# Enable "All Controls" for tab in SystemPreferences->Keyboard->Shortcuts

+ 0 - 69
install_atom_plugins.sh

@@ -1,69 +0,0 @@
-#!/bin/bash
-# An installable list of the Atom IDE plugins that I use.
-# To get "apm" tool: open Atom and click "Atom->Install Shell Commands"
-apm install $(cat<<-EOF
-Sublime-Style-Column-Selection
-atom-beautify
-atom-html-preview
-atom-import-js
-atom-ternjs
-atom-typescript
-autocomplete-emojis
-autocomplete-json
-autocomplete-modules
-autocomplete-python
-busy-signal
-color-picker
-copy-as-rtf
-declarations
-docblockr
-editorconfig
-file-icons
-filesize
-git-blame
-git-difftool
-go-plus
-highlight-selected
-hyperclick
-intentions
-language-apache
-language-diff
-language-nginx
-language-plantuml
-language-protobuf
-language-svg
-language-viml
-linter
-linter-clang
-linter-cpplint
-linter-csslint
-linter-eslint
-linter-javac
-linter-js-yaml
-linter-less
-linter-perl
-linter-pycodestyle
-linter-sass-lint
-linter-shellcheck
-linter-stylelint
-linter-tslint
-linter-write-good
-linter-xmllint
-man
-merge-conflicts
-open-in-sourcetree
-open-terminal-here
-pdf-view
-pigments
-pipe
-plantuml-viewer
-script
-sort-lines
-svg-preview
-term3
-trailing-spaces
-turbo-javascript
-vim-mode-plus
-EOF
-)
-