Code Monkey home page Code Monkey logo

prettier-atom's Introduction

Prettier Banner

Opinionated Code Formatter

JavaScript · TypeScript · Flow · JSX · JSON
CSS · SCSS · Less
HTML · Vue · Angular
GraphQL · Markdown · YAML
Your favorite language?

Github Actions Build Status Github Actions Build Status Github Actions Build Status Codecov Coverage Status Blazing Fast
npm version weekly downloads from npm code style: prettier Follow Prettier on Twitter

Intro

Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.

Input

foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne());

Output

foo(
  reallyLongArg(),
  omgSoManyParameters(),
  IShouldRefactorThis(),
  isThereSeriouslyAnotherOne(),
);

Prettier can be run in your editor on-save, in a pre-commit hook, or in CI environments to ensure your codebase has a consistent style without devs ever having to post a nit-picky comment on a code review ever again!


Documentation

Install · Options · CLI · API

Playground


Badge

Show the world you're using Prettiercode style: prettier

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

Contributing

See CONTRIBUTING.md.

prettier-atom's People

Contributors

ahutchings avatar arnarthor avatar charypar avatar chrisdrackett avatar da-vaibhav avatar darahak avatar denis-sokolov avatar dependabot-preview[bot] avatar dependabot[bot] avatar dsingleton avatar ferdibiflator avatar haroldtreen avatar jlongster avatar kachkaev avatar lewisl9029 avatar lgeiger avatar mhgbrg avatar orisomething avatar pvdlg avatar rgreenjr avatar robwise avatar rom4ik avatar ryancole avatar savepointsam avatar spudly avatar taylon avatar transcranial avatar vinkla avatar vivek12345 avatar vjeux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

prettier-atom's Issues

Whitelist Globs

Feature request from @kentcdodds to add an option for whitelisting certain globs. I'm thinking that these would take priority over both the blacklist and the scopes, so we check the whitelist first, and if the globs match the file, we go straight to executing.

format-on-save seems to break plugins such as linter-eslint

I'm here to report an unexpected interaction, between atom plugins, that I notice while using both prettier-atom and linter-eslint.

If you enable prettier-on-save and save a document, it'll cause linter's inline error highlighting and gutter icons to break. They'll disappear until you continue typing again, etc. I believe it's the prettier-atom plugin changing the text that causes the linter plugin to no re-draw its inline error icons, etc.

I had initially opened an issue about this on linter's repository. Through that issue, I feel as though I have narrowed this issue down to prettier-atom's format-on-save feature. I asked, there, about what prettier-atom could do to perhaps play more nicely with the linter plugin (ideally any other plugin that would need to know to re-draw stuff, but in this specific case just linter). It was suggested, in my linter issue, that prettier-atom could trigger linter:lint command on the text editors after prettier-atom is done with them.

Now, I can see this fix being a slippery slope in your eyes, because it'd suck to get into a situation where prettier-atom needs to trigger commands from all other plugins, etc. So, with that said, I just wanted to open this issue so that a discussion can happen as to how to make this plugin be a bit friendlier to other plugins that have drawn stuff on text editors, etc.

Update the gif

I expect a majority of users using prettier wont enable the eslint integration. Perhaps we could have a main gif at the top and then another one further down where we talk about the eslint integration?

Loses cursor position on format

When I trigger a format, my cursor stays on the same line as it was before the code was formatted. It would be nice if the cursor followed its position in the code.

A quick example:

The pipe represents my cursor. Before formatting, my cursor is just after keyTwo in mapTwo. After formatting, I would expect it to move with the code. Instead, it's located just after valueOne in mapOne.

Before:

const mapOne = {keyOne: 'valueOne', keyTwo: 'valueTwo', keyThree: 'valueThree', keyFour: 'valueFour'};
const mapTwo = {keyOne: 'valueOne', keyTwo: |'valueTwo', keyThree: 'valueThree', keyFour: 'valueFour'};

After:

const mapOne = {
  keyOne: 'valueOne',|
  keyTwo: 'valueTwo',
  keyThree: 'valueThree',
  keyFour: 'valueFour',
};
const mapTwo = {
  keyOne: 'valueOne',
  keyTwo: 'valueTwo',
  keyThree: 'valueThree',
  keyFour: 'valueFour',
};

Uncaught TypeError: Cannot read property 'path' of null

[Enter steps to reproduce:]

  1. Make a new buffer/file
  2. Type a few letters
  3. Try to say the file somewhere

Atom: 1.14.4 x64
Electron: 1.3.13
OS: Mac OS X 10.11.6
Thrown From: prettier-atom package 0.21.3

Stack Trace

Uncaught TypeError: Cannot read property 'path' of null

At /Applications/Atom.app/Contents/Resources/app.asar/src/pane.js:1045

TypeError: Cannot read property 'path' of null
  at getCurrentFilePath (/packages/prettier-atom/dist/helpers.js:85:28)
  at formatOnSaveIfAppropriate (/packages/prettier-atom/dist/formatOnSave.js:17:18)
  at lazyFormatOnSave (/packages/prettier-atom/dist/main.js:31:15)
  at /packages/prettier-atom/dist/main.js:45:12
  at Function.module.exports.Emitter.simpleDispatch (/app.asar/node_modules/event-kit/lib/emitter.js:25:14)
  at Emitter.module.exports.Emitter.emit (/app.asar/node_modules/event-kit/lib/emitter.js:129:28)
  at TextBuffer.module.exports.TextBuffer.saveAs (/app.asar/node_modules/text-buffer/lib/text-buffer.js:1060:20)
  at TextEditor.module.exports.TextEditor.saveAs (/app.asar/src/text-editor.js:897:26)
  at Pane.module.exports.Pane.saveItemAs (/app.asar/src/pane.js:781:16)
  at Pane.saveItemAs (/app.asar/src/pane.js:3:59)
  at Pane.module.exports.Pane.saveItem (/app.asar/src/pane.js:765:21)
  at Pane.saveItem (/app.asar/src/pane.js:3:59)
  at Pane.module.exports.Pane.saveActiveItem (/app.asar/src/pane.js:736:19)
  at Workspace.module.exports.Workspace.saveActivePaneItem (/app.asar/src/workspace.js:693:35)
  at /app.asar/src/register-default-commands.js:225:32)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/app.asar/src/command-registry.js:259:29)
  at /app.asar/src/command-registry.js:3:59
  at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:599:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:390:22)
  at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeyEvent (/app.asar/src/window-event-handler.js:106:36)
  at /app.asar/src/window-event-handler.js:3:59)

Commands

     -5:00.8.0 editor:delete-to-beginning-of-word (input.hidden-input)
  7x -4:57.5.0 core:backspace (input.hidden-input)
     -4:48.1.0 core:save (input.hidden-input)
     -3:09.2.0 fuzzy-finder:toggle-file-finder (input.hidden-input)
     -3:08.5.0 editor:consolidate-selections (input.hidden-input)
     -3:08.4.0 core:cancel (input.hidden-input)
     -1:47.7.0 application:new-file (input.hidden-input)
     -1:44.3.0 editor:newline (input.hidden-input)
  2x -1:43.7.0 core:backspace (input.hidden-input)
     -1:40.7.0 editor:newline (input.hidden-input)
  2x -1:38.6.0 core:save (input.hidden-input)
     -0:30.3.0 command-palette:toggle (input.hidden-input)
     -0:28.6.0 core:move-down (input.hidden-input)
     -0:28.4.0 core:confirm (input.hidden-input)
     -0:28.4.0 set-syntax:Go (input.hidden-input)
     -0:26.8.0 core:save (input.hidden-input)

Non-Core Packages

activate-power-mode 1.3.0 
atom-jinja2 0.6.0 
color-picker 2.2.5 
emmet 2.4.3 
file-icons 2.0.17 
git-plus 7.3.3 
git-time-machine 1.5.6 
go-debug 1.1.0 
go-plus 5.3.1 
go-signature-statusbar 1.2.0 
haskell-grammar 0.4.0 
highlight-selected 0.12.0 
hyperclick 0.0.40 
jshint 1.8.6 
language-babel 2.56.0 
language-graphql 0.8.0 
language-ini 1.18.0 
language-lua 0.9.11 
language-ocaml 1.1.2 
language-salt 0.4.0 
language-swift 0.5.0 
language-thrift 1.0.2 
linter 1.11.23 
merge-conflicts 1.4.4 
minimap 4.26.8 
nuclide 0.208.0 
nuclide-format-js 0.0.36 
Parinfer 1.17.0 
prettier-atom 0.21.3 
react 0.16.2 
set-syntax 0.3.2 
sort-lines 0.14.0 
tool-bar 1.0.1 

format on save doesn't show error messages anymore

Previously if I had a syntax error in my code prettier would show me an error popup in red that indicated what I've been doing wrong.

But a few updates ago it stopped doing this. I noticed the new "On format on Save, don't show error message" option, which is disabled. It's absent in config.cson.

I do see the syntax errors in the development console.

I really miss the error messages.

Allow users to specify extensions to auto format

For instance, we use the .jsx extension for JSX in the main project I'm working on, and prettier's JSX support still has some issues. I would like to be able to auto format on save, but that messes up my JSX files.

[HELP] semi rule in atom

Hello!
I have this eslint config:

{
    "parser": "babel-eslint",
    "env": {
        "browser": true
    },
    "ecmaFeatures": {
      "jsx": true
    },
    "plugins": [
        "jsx-a11y",
        "import",
        "react",
        "react-native"
    ],
    "extends": "airbnb",
    "rules": {
      "react/jsx-filename-extension": ["error", { "extensions": [".js", ".jsx"] }],
      "semi": ["error", "never"],
      "comma-dangle": ["error", "never"],
      "arrow-parens": ["error", "always"]
    }
}

As you can see "semi": ["error", "never"]
I set ESLint integration in settings and Format on Save
Everything is doing fine, but sometimes prettier adds semi in the end of expression. Not everywhere, i find it on object statements or similar like this (react component class)

state = {
    loading: true
  };

in

class Example extends React.Component {
  state = {
    loading: true
  };

  render() {
    // some code
  }
}

export default Example

How can I fix it? Or is this a bug?
Thanks a lot.

Can't publish 0.0.10

@robwise turns out because you published 0.0.10 but didn't update the dependency to 0.0.10, we are now stuck as we can't publish the 0.0.10 again. I also tried publishing 0.0.10b or 0.0.10-real but atom doesn't seem to like it.

The plan is to do another smaller release either today or tomorrow and we'll bump everything to 0.0.11.

(Note: this is the first time I ever publish something to apm so there may be a way!)

Apply excludedGlobs

👋 hi! Unless I'm missing something excludedGlobs isn't actually being applied anywhere...

Change line length option in Atom

First off, well done. Very nice. :)
I'm using prettier in Atom and it would be nice to be able to set the maximum line length in the config settings. I changed it by altering the source for now.
cheers,

Possible Regression with Ignore Settings

@jlongster I was looking at the CHANGELOG because I'm planning on getting that back on track, but I noticed this line and am worried there was a regression with the changes I made in #22.

Can you give more insight on what behavior this is describing, and I can make sure it is put back in?

Also, the release numbers in the CHANGELOG do not seem to correlate with the release tags. Should I squash all of them into one v0.0.1 release and then add what we've done since then?

Changelog

As per #25 (comment), we should probably blow away the current changelog and then create a new one from scratch that gets us back up to date.

Format on save option and ctrl+alt+f do nothing

I can manually select to prettify but selecting format on save or doing ctrl+alt+f both do nothing on .js files

❯ atom --version
Atom    : 1.12.0
Electron: 1.3.6
Chrome  : 52.0.2743.82
Node    : 6.3.0

ESLint Integration option shouldn't crash without ESLint config

I have one project which uses ESLint and the other one which doesn't, but I want to cover both without having to switch the "ESLint Integration" option on and off. I suggest altering the behavior of it to not crash without ESLint config, but instead to fall back to regular prettier.

What do you think?

Adding the ability to fail silently

Current behave is that when I save a document that cannot be converted to AST, I get a huge popover of the failure of prettier-atom.
I think adding the ability that it will fail silently and won't be trigger the popover can be very helpful since, It's not exactly a pleasant UX.
Of course, I can try making a PR if needed.

Thanks!

Get config from eslint

I guess we would need to write a custom translation from eslint-rules to prettier config, but it would be super cool to get at least the most basic rules like tabs/spaces, trailing commas, etc. from the eslint-file.

"Single quote" property not working as expected

I currently have the "Single Quote" property in Atom set to true, however when I format the code using prettier, it is changing all single quotes to double quotes.

Properties

Formatting code:
GIF

Anyone else experiencing this or did I screw something up somewhere?

Merging prettier-eslint-atom repo

@jlongster Kent Dodds has agreed that we can merge the prettier-eslint-atom repo in here and just default Eslint to being off. I will have to do a bunch of work to get integrate the two and then I wanted to set up some automated testing. That way it's less code to maintain. I also wanted to turn on some integrations such as Travis CI and Greenkeeper which Kent has set up. Are you still willing to transfer ownership so that I can turn these on?

Plugin disable not working

Hi,

I'm not sure if its some atom core issue or plugin but It looks like disabling plugin doesn't work for prettier. With format on save enabled It keeps formatting my code even after I disabled plugin in settings.

Atom version 1.15.0
MacOS 10.12.3

trailingComma validation error

Version: 0.21.2

My config.cson has:

  "prettier-atom":
    prettierOptions: {}
    singleQuote: true
    trailingComma: false
    useEslint: true

Error:

prettier-atom: ● Validation Error:

Option "trailingComma" must be of type: boolean but instead received: string

Example: { "trailingComma": false }
● Validation Error:
  Option "trailingComma" must be of type:
    boolean
  but instead received:
    string
  Example:
  {
    "trailingComma": false
  }

Decorators throw SyntaxError

Encountered issue with decorators. After prettying .jsx file with decorators in it, following message is displayed and file isn't prettyfied.

Here are screenshot of error message and full stack trace.

prettier-atom-issue
atom-prettier-issue-2
atom-prettier-issue-3

HTML Errors

Prettier-atom runs over html files when saving, causing errors on script tags.

Sample:

<script async src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>

Error:

SyntaxError: Unexpected token (1:1)
> 1 | </script>
    |  ^
  2 |   </

Avast issue with prettier-atom v0.0.6 install

Just wanted to let you know package installs just fine, but the below Avast infection is reported.

Can't install v0.0.6 due to the below warning.

image

Using apm install [email protected] installs without the infection message, but using apm install prettier-atom or apm update raises the above infection warning from Avast.

image

Same behaviour if trying to install via Atom directly.

Anyone want to take over maintanence?

I don't use Atom daily, and I feel someone who uses it as their primary editor is more suited to maintain this. Also I won't have time to watch this as much as prettier itself. I'm happy to move this project to someone else's account if they want to be the core maintainer.

Select bin file from repo

When running this plugin you are stuck with the version bundled with the package.
Would be great if one could use the version installed in node_modules.

Now i get a diff from running prettier via the command line and the atom package

Expose Options

Expose the few options that prettier allows. As of opening this issue:

{
  // Fit code within this line limit
  printWidth: 80,

  // Number of spaces it should use per tab
  tabWidth: 2,

  // If true, will use single instead of double quotes
  singleQuote: false,

  // Controls the printing of trailing commas wherever possible
  trailingComma: false,

  // Controls the printing of spaces inside object literals
  bracketSpacing: true,

  // Which parser to use. Valid options are 'flow' and 'babylon'
  parser: 'babylon'
}

Issue with eslint and JSX

On a react.js project with eslint atom plugin configured, if I use the prettier format I get this code:

return [
  (
    <div>
      <input
        type="checkbox"
        name="invalidateCache"
        id={uniqueId}
        onChange={this.onInvalidateCache}
        checked={this.props.workflowDataStorage.cacheInvalidation}
      />
      <label htmlFor={uniqueId}>Invalidate cache on requests</label>
    </div>
  )
];

... but eslint raise a warning:

schermata 2017-03-01 alle 15 18 16

So it seems that eslint is happy with a code like this:

return [
  (
  <div>
    <input
      type="checkbox"
      name="invalidateCache"
      id={uniqueId}
      onChange={this.onInvalidateCache}
      checked={this.props.workflowDataStorage.cacheInvalidation}
    />
    <label htmlFor={uniqueId}>Invalidate cache on requests</label>
  </div>
)
];

Although the code formatted by prettier-atom is nicer IMHO, I'm wondering how to make eslint and this coexists. Maybe is a bug in eslint/jsx but I've no element to know.

Any hint?

Doesn't work

Atom Version: 1.12.9
Electron Version: 1.3.13
System: Ubuntu 16.04.1
Thrown From: prettier-atom package, v0.0.3

When I tried to install this package, it gave me the following error

At Cannot find module 'source-map'

Error: Cannot find module 'source-map'
    at Module._resolveFilename (module.js:455:15)
    at Module._resolveFilename (/usr/share/atom/resources/electron.asar/common/reset-search-paths.js:35:12)
    at Function.Module._resolveFilename (/usr/share/atom/resources/app.asar/src/module-cache.js:383:52)
    at Function.Module._load (module.js:403:25)
    at Module.require (module.js:483:17)
    at require (/usr/share/atom/resources/app.asar/src/native-compile-cache.js:50:27)
    at Object.<anonymous> (/home/bserdiuk/.atom/packages/prettier-atom/node_modules/prettier/src/printer.js:2:17)
    at Module._compile (/usr/share/atom/resources/app.asar/src/native-compile-cache.js:103:30)
    at Object.value [as .js] (/usr/share/atom/resources/app.asar/src/compile-cache.js:201:21)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)
    at Function.Module._load (module.js:424:3)
    at Module.require (module.js:483:17)
    at require (/usr/share/atom/resources/app.asar/src/native-compile-cache.js:50:27)
    at Object.<anonymous> (/home/bserdiuk/.atom/packages/prettier-atom/node_modules/prettier/index.js:2:41)
    at Module._compile (/usr/share/atom/resources/app.asar/src/native-compile-cache.js:103:30)
    at Object.value [as .js] (/usr/share/atom/resources/app.asar/src/compile-cache.js:201:21)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)
    at Function.Module._load (module.js:424:3)
    at Module.require (module.js:483:17)
    at require (/usr/share/atom/resources/app.asar/src/native-compile-cache.js:50:27)
    at Object.<anonymous> (/home/bserdiuk/.atom/packages/prettier-atom/lib/prettier.js:5:16)
    at Module._compile (/usr/share/atom/resources/app.asar/src/native-compile-cache.js:103:30)
    at Object.value [as .js] (/usr/share/atom/resources/app.asar/src/compile-cache.js:201:21)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)
    at Function.Module._load (module.js:424:3)
    at Module.require (module.js:483:17)
    at require (/usr/share/atom/resources/app.asar/src/native-compile-cache.js:50:27)

And the error is actually true, there is no source-map module in the prettier package dependencies.
How did it use to work?

Only format on save if prettier is in the dependencies

I have projects that use prettier and adhere to the style standard, but I also have projects that neither use prettier nor adhere to the style. (they enforce some other styleguide with eslint)

It'd be great if the "Format on save" option only took effect in projects that have prettier in their package.json or something like that!

Bad indentation on comment blocks

I ran the latest version 0.17.0 on a script that defines a RequireJS module.
It added one indentation step to the whole module, but the comment blocks didn't follow (just the first line).

Here's an example (with 4-space tabs):

define('zzz', [
    'a',
    'b',
    'c'
], function (a, b, c) {
    /**
     * Does something.
     * @return {void}
     */
    function doSomething() {
        ...
    }

    ...
});

became

define(
    'zzz',
    [
        'a',
        'b',
        'c'
    ],
    function (a, b, c) {
        /**
     * Does something.
     * @return {void}
     */
        function doSomething() {
            ...
        }

        ...
    }
);

It works properly when I test my code on the REPL though.
Can other packages interfere when Prettier runs in Atom?

Uncaught TypeError: Path must be a string. Received null

[Enter steps to reproduce:]

  1. Honestly, I'm not sure. I'm simply saving a .js file, with format-on-save enabled. This was working like 10 minutes ago but is no longer working. After receiving the error a first time, I was prompted to updated Atom. I updated Atom and am still getting the error.

Atom: 1.14.4 x64
Electron: 1.3.13
OS: Microsoft Windows 10 Pro
Thrown From: prettier-atom package 0.21.0

Stack Trace

Uncaught TypeError: Path must be a string. Received null

At C:\Users\Ryan\AppData\Local\atom\app-1.14.4\resources\app.asar\src\pane.js:1045

TypeError: Path must be a string. Received null
    at assertPath (path.js:7:11)
    at Object.parse (path.js:952:5)
    at getDirFromFilePath (/packages/prettier-atom/dist/helpers.js:32:15)
    at /packages/prettier-atom/dist/helpers.js:27:61
    at /packages/prettier-atom/dist/helpers.js:27:55
    at getFilePathRelativeToEslintignore (/packages/prettier-atom/dist/helpers.js:42:5)
    at isFilePathEslintignored (/packages/prettier-atom/dist/helpers.js:97:83)
    at formatOnSaveIfAppropriate (/packages/prettier-atom/dist/formatOnSave.js:20:38)
    at lazyFormatOnSave (/packages/prettier-atom/dist/main.js:31:15)
    at /packages/prettier-atom/dist/main.js:45:12
    at Function.module.exports.Emitter.simpleDispatch (/app.asar/node_modules/event-kit/lib/emitter.js:25:14)
    at Emitter.module.exports.Emitter.emit (/app.asar/node_modules/event-kit/lib/emitter.js:129:28)
    at TextBuffer.module.exports.TextBuffer.saveAs (/app.asar/node_modules/text-buffer/lib/text-buffer.js:1060:20)
    at TextBuffer.module.exports.TextBuffer.save (/app.asar/node_modules/text-buffer/lib/text-buffer.js:1049:19)
    at TextEditor.module.exports.TextEditor.save (/app.asar/src/text-editor.js:893:26)
    at Pane.module.exports.Pane.saveItem (/app.asar/src/pane.js:753:18)
    at Pane.saveItem (/app.asar/src/pane.js:3:59)
    at Pane.module.exports.Pane.saveActiveItem (/app.asar/src/pane.js:736:19)
    at Workspace.module.exports.Workspace.saveActivePaneItem (/app.asar/src/workspace.js:693:35)
    at /app.asar/src/register-default-commands.js:225:32)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/app.asar/src/command-registry.js:259:29)
    at /app.asar/src/command-registry.js:3:59
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:599:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:390:22)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeyEvent (/app.asar/src/window-event-handler.js:106:36)
    at /app.asar/src/window-event-handler.js:3:59)

Commands

     -0:28.3.0 tree-view:show (atom-workspace.workspace.scrollbars-visible-always.theme-oceanic-next.theme-one-dark-ui)
     -0:23.1.0 core:save (input.hidden-input)

Non-Core Packages

autocomplete-modules 1.6.7 
file-icons 2.0.17 
language-babel 2.56.0 
language-graphql 0.8.0 
linter 1.11.23 
linter-eslint 8.1.2 
oceanic-next 1.0.0 
prettier-atom 0.21.0 

Save without formatting

What do you think of a key combo to bypass formatting and save? Sometimes I have to temporarily disable the Format on Save setting to make patches for OSS/projects that don't use prettier.

Installation fails on Windows: cannot create directory at 'test/fixtures/jsx/regression/test-*-option': Invalid argument

I'm attempt to install on Windows 10. Below is the error output via Atom ...

Installing “[email protected]” failed.Hide output…

npm ERR! git clone C:\Users\Ryan\.atom\.apm\_git-remotes\git-https-github-com-jlongster-babylon-git-published-82d54585 C:\Users\Ryan\AppData\Local\Temp\npm-7516-972ddd66\git-cache-684dc46f\2370ad8ecbdf348174989ef198c94ce881c76a27: Cloning into 'C:\Users\Ryan\AppData\Local\Temp\npm-7516-972ddd66\git-cache-684dc46f\2370ad8ecbdf348174989ef198c94ce881c76a27'...
npm ERR! git clone C:\Users\Ryan\.atom\.apm\_git-remotes\git-https-github-com-jlongster-babylon-git-published-82d54585 C:\Users\Ryan\AppData\Local\Temp\npm-7516-972ddd66\git-cache-684dc46f\2370ad8ecbdf348174989ef198c94ce881c76a27: done.
npm ERR! git clone C:\Users\Ryan\.atom\.apm\_git-remotes\git-https-github-com-jlongster-babylon-git-published-82d54585 C:\Users\Ryan\AppData\Local\Temp\npm-7516-972ddd66\git-cache-684dc46f\2370ad8ecbdf348174989ef198c94ce881c76a27: Checking out files:   6% (368/5317)   
Checking out files:   7% (373/5317)   
Checking out files:   8% (426/5317)   
Checking out files:   9% (479/5317)   
Checking out files:  10% (532/5317)   
Checking out files:  11% (585/5317)   
Checking out files:  12% (639/5317)   
Checking out files:  13% (692/5317)   
Checking out files:  14% (745/5317)   
Checking out files:  15% (798/5317)   
Checking out files:  16% (851/5317)   
Checking out files:  16% (902/5317)   
Checking out files:  17% (904/5317)   
Checking out files:  18% (958/5317)   
Checking out files:  19% (1011/5317)   
Checking out files:  20% (1064/5317)   
Checking out files:  21% (1117/5317)   
Checking out files:  22% (1170/5317)   
Checking out files:  23% (1223/5317)   
Checking out files:  24% (1277/5317)   
Checking out files:  24% (1282/5317)   
Checking out files:  25% (1330/5317)   
Checking out files:  26% (1383/5317)   
Checking out files:  27% (1436/5317)   
Checking out files:  28% (1489/5317)   
Checking out files:  29% (1542/5317)   
Checking out files:  30% (1596/5317)   
Checking out files:  31% (1649/5317)   
Checking out files:  32% (1702/5317)   
Checking out files:  33% (1755/5317)   
Checking out files:  33% (1771/5317)   
Checking out files:  34% (1808/5317)   
Checking out files:  35% (1861/5317)   
Checking out files:  36% (1915/5317)   
Checking out files:  37% (1968/5317)   
Checking out files:  38% (2021/5317)   
Checking out files:  39% (2074/5317)   
Checking out files:  40% (2127/5317)   
Checking out files:  41% (2180/5317)   
Checking out files:  42% (2234/5317)   
Checking out files:  42% (2276/5317)   
Checking out files:  43% (2287/5317)   
Checking out files:  44% (2340/5317)   
Checking out files:  45% (2393/5317)   
Checking out files:  46% (2446/5317)   
Checking out files:  47% (2499/5317)   
Checking out files:  48% (2553/5317)   
Checking out files:  49% (2606/5317)   
Checking out files:  50% (2659/5317)   
Checking out files:  51% (2712/5317)   
Checking out files:  51% (2739/5317)   
Checking out files:  52% (2765/5317)   
Checking out files:  53% (2819/5317)   
Checking out files:  54% (2872/5317)   
Checking out files:  55% (2925/5317)   
Checking out files:  56% (2978/5317)   
Checking out files:  57% (3031/5317)   
Checking out files:  58% (3084/5317)   
Checking out files:  59% (3138/5317)   
Checking out files:  59% (3161/5317)   
Checking out files:  60% (3191/5317)   
Checking out files:  61% (3244/5317)   
Checking out files:  62% (3297/5317)   
Checking out files:  63% (3350/5317)   
Checking out files:  64% (3403/5317)   
Checking out files:  65% (3457/5317)   
Checking out files:  66% (3510/5317)   
Checking out files:  67% (3563/5317)   
Checking out files:  68% (3616/5317)   
Checking out files:  68% (3619/5317)   
Checking out files:  69% (3669/5317)   
Checking out files:  70% (3722/5317)   
Checking out files:  71% (3776/5317)   
Checking out files:  72% (3829/5317)   
Checking out files:  73% (3882/5317)   
Checking out files:  74% (3935/5317)   
Checking out files:  75% (3988/5317)   
Checking out files:  76% (4041/5317)   
Checking out files:  77% (4095/5317)   
Checking out files:  77% (4117/5317)   
Checking out files:  78% (4148/5317)   
Checking out files:  79% (4201/5317)   
Checking out files:  80% (4254/5317)   
Checking out files:  81% (4307/5317)   
Checking out files:  82% (4360/5317)   
Checking out files:  83% (4414/5317)   
Checking out files:  84% (4467/5317)   
Checking out files:  84% (4503/5317)   
Checking out files:  85% (4520/5317)   
Checking out files:  86% (4573/5317)   
Checking out files:  87% (4626/5317)   
Checking out files:  88% (4679/5317)   
Checking out files:  89% (4733/5317)   
Checking out files:  90% (4786/5317)   
Checking out files:  91% (4839/5317)   
Checking out files:  92% (4892/5317)   
Checking out files:  92% (4930/5317)   
Checking out files:  93% (4945/5317)   
Checking out files:  94% (4998/5317)   
Checking out files:  95% (5052/5317)   
Checking out files:  96% (5105/5317)   
Checking out files:  97% (5158/5317)   
Checking out files:  98% (5211/5317)   
Checking out files:  99% (5264/5317)   
fatal: cannot create directory at 'test/fixtures/jsx/regression/test-*-option': Invalid argument
npm ERR! git clone C:\Users\Ryan\.atom\.apm\_git-remotes\git-https-github-com-jlongster-babylon-git-published-82d54585 C:\Users\Ryan\AppData\Local\Temp\npm-7516-972ddd66\git-cache-684dc46f\2370ad8ecbdf348174989ef198c94ce881c76a27: warning: Clone succeeded, but checkout failed.
npm ERR! git clone C:\Users\Ryan\.atom\.apm\_git-remotes\git-https-github-com-jlongster-babylon-git-published-82d54585 C:\Users\Ryan\AppData\Local\Temp\npm-7516-972ddd66\git-cache-684dc46f\2370ad8ecbdf348174989ef198c94ce881c76a27: You can inspect what was checked out with 'git status'
npm ERR! git clone C:\Users\Ryan\.atom\.apm\_git-remotes\git-https-github-com-jlongster-babylon-git-published-82d54585 C:\Users\Ryan\AppData\Local\Temp\npm-7516-972ddd66\git-cache-684dc46f\2370ad8ecbdf348174989ef198c94ce881c76a27: and retry the checkout with 'git checkout -f HEAD'
npm ERR! git clone C:\Users\Ryan\.atom\.apm\_git-remotes\git-https-github-com-jlongster-babylon-git-published-82d54585 C:\Users\Ryan\AppData\Local\Temp\npm-7516-972ddd66\git-cache-684dc46f\2370ad8ecbdf348174989ef198c94ce881c76a27: 
npm ERR! git clone C:\Users\Ryan\.atom\.apm\_git-remotes\git-https-github-com-jlongster-babylon-git-published-82d54585 C:\Users\Ryan\AppData\Local\Temp\npm-7516-972ddd66\git-cache-684dc46f\2370ad8ecbdf348174989ef198c94ce881c76a27: 
npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\\Users\\Ryan\\AppData\\Local\\atom\\app-1.12.9\\resources\\app\\apm\\bin\\node.exe" "C:\\Users\\Ryan\\AppData\\Local\\atom\\app-1.12.9\\resources\\app\\apm\\node_modules\\npm\\bin\\npm-cli.js" "--globalconfig" "C:\\Users\\Ryan\\.atom\\.apm\\.apmrc" "--userconfig" "C:\\Users\\Ryan\\.atom\\.apmrc" "install" "C:\\Users\\Ryan\\AppData\\Local\\Temp\\d-117010-6288-1o61jjy\\package.tgz" "--runtime=electron" "--target=1.3.13" "--arch=ia32" "--global-style"
npm ERR! node v4.4.5
npm ERR! npm  v3.10.5
npm ERR! code 128

npm ERR! Command failed: git -c core.longpaths=true clone C:\Users\Ryan\.atom\.apm\_git-remotes\git-https-github-com-jlongster-babylon-git-published-82d54585 C:\Users\Ryan\AppData\Local\Temp\npm-7516-972ddd66\git-cache-684dc46f\2370ad8ecbdf348174989ef198c94ce881c76a27
npm ERR! Cloning into 'C:\Users\Ryan\AppData\Local\Temp\npm-7516-972ddd66\git-cache-684dc46f\2370ad8ecbdf348174989ef198c94ce881c76a27'...
npm ERR! done.
npm ERR! Checking out files:   6% (368/5317)   
Checking out files:   7% (373/5317)   
Checking out files:   8% (426/5317)   
Checking out files:   9% (479/5317)   
Checking out files:  10% (532/5317)   
Checking out files:  11% (585/5317)   
Checking out files:  12% (639/5317)   
Checking out files:  13% (692/5317)   
Checking out files:  14% (745/5317)   
Checking out files:  15% (798/5317)   
Checking out files:  16% (851/5317)   
Checking out files:  16% (902/5317)   
Checking out files:  17% (904/5317)   
Checking out files:  18% (958/5317)   
Checking out files:  19% (1011/5317)   
Checking out files:  20% (1064/5317)   
Checking out files:  21% (1117/5317)   
Checking out files:  22% (1170/5317)   
Checking out files:  23% (1223/5317)   
Checking out files:  24% (1277/5317)   
Checking out files:  24% (1282/5317)   
Checking out files:  25% (1330/5317)   
Checking out files:  26% (1383/5317)   
Checking out files:  27% (1436/5317)   
Checking out files:  28% (1489/5317)   
Checking out files:  29% (1542/5317)   
Checking out files:  30% (1596/5317)   
Checking out files:  31% (1649/5317)   
Checking out files:  32% (1702/5317)   
Checking out files:  33% (1755/5317)   
Checking out files:  33% (1771/5317)   
Checking out files:  34% (1808/5317)   
Checking out files:  35% (1861/5317)   
Checking out files:  36% (1915/5317)   
Checking out files:  37% (1968/5317)   
Checking out files:  38% (2021/5317)   
Checking out files:  39% (2074/5317)   
Checking out files:  40% (2127/5317)   
Checking out files:  41% (2180/5317)   
Checking out files:  42% (2234/5317)   
Checking out files:  42% (2276/5317)   
Checking out files:  43% (2287/5317)   
Checking out files:  44% (2340/5317)   
Checking out files:  45% (2393/5317)   
Checking out files:  46% (2446/5317)   
Checking out files:  47% (2499/5317)   
Checking out files:  48% (2553/5317)   
Checking out files:  49% (2606/5317)   
Checking out files:  50% (2659/5317)   
Checking out files:  51% (2712/5317)   
Checking out files:  51% (2739/5317)   
Checking out files:  52% (2765/5317)   
Checking out files:  53% (2819/5317)   
Checking out files:  54% (2872/5317)   
Checking out files:  55% (2925/5317)   
Checking out files:  56% (2978/5317)   
Checking out files:  57% (3031/5317)   
Checking out files:  58% (3084/5317)   
Checking out files:  59% (3138/5317)   
Checking out files:  59% (3161/5317)   
Checking out files:  60% (3191/5317)   
Checking out files:  61% (3244/5317)   
Checking out files:  62% (3297/5317)   
Checking out files:  63% (3350/5317)   
Checking out files:  64% (3403/5317)   
Checking out files:  65% (3457/5317)   
Checking out files:  66% (3510/5317)   
Checking out files:  67% (3563/5317)   
Checking out files:  68% (3616/5317)   
Checking out files:  68% (3619/5317)   
Checking out files:  69% (3669/5317)   
Checking out files:  70% (3722/5317)   
Checking out files:  71% (3776/5317)   
Checking out files:  72% (3829/5317)   
Checking out files:  73% (3882/5317)   
Checking out files:  74% (3935/5317)   
Checking out files:  75% (3988/5317)   
Checking out files:  76% (4041/5317)   
Checking out files:  77% (4095/5317)   
Checking out files:  77% (4117/5317)   
Checking out files:  78% (4148/5317)   
Checking out files:  79% (4201/5317)   
Checking out files:  80% (4254/5317)   
Checking out files:  81% (4307/5317)   
Checking out files:  82% (4360/5317)   
Checking out files:  83% (4414/5317)   
Checking out files:  84% (4467/5317)   
Checking out files:  84% (4503/5317)   
Checking out files:  85% (4520/5317)   
Checking out files:  86% (4573/5317)   
Checking out files:  87% (4626/5317)   
Checking out files:  88% (4679/5317)   
Checking out files:  89% (4733/5317)   
Checking out files:  90% (4786/5317)   
Checking out files:  91% (4839/5317)   
Checking out files:  92% (4892/5317)   
Checking out files:  92% (4930/5317)   
Checking out files:  93% (4945/5317)   
Checking out files:  94% (4998/5317)   
Checking out files:  95% (5052/5317)   
Checking out files:  96% (5105/5317)   
Checking out files:  97% (5158/5317)   
Checking out files:  98% (5211/5317)   
Checking out files:  99% (5264/5317)   
fatal: cannot create directory at 'test/fixtures/jsx/regression/test-*-option': Invalid argument
npm ERR! warning: Clone succeeded, but checkout failed.
npm ERR! You can inspect what was checked out with 'git status'
npm ERR! and retry the checkout with 'git checkout -f HEAD'
npm ERR! 
npm ERR! 
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     C:\Users\Ryan\AppData\Local\Temp\apm-install-dir-117010-6288-1fhu5c8\npm-debug.log

Respect Atom's "Tab Length" setting

It appears the prettifier defaults to 2 spaces per tab. I imagine this should/could be configurable in the package settings but ideally it would use the value set in Settings > Editor > Tab Length by default.

Shorter Stack Trace Option?

As per #45 we were discussing whether it would be useful to be able to choose whether you want the long error message with the full stack trace versus a shorter message. Or perhaps we just should change it so it always shows the shorter message.

Anyone have thoughts on this?

Option for colon insertion

I don't like having ; at the end of each line, which this beautifier forces.
It would be good to have it as an option that can be turned off

Eslint config based prettying

Hey, there is something wrong with reading eslint configuration I guess.

Greetings

prettier-atom: TypeError: Cannot read property 'indexOf' of undefined
TypeError: Cannot read property 'indexOf' of undefined
    at isAlways (/Users/patrykpeas/.atom/packages/prettier-atom/node_modules/prettier-eslint/dist/utils.js:187:13)
    at Array.some (native)
    at getValFromObjectConfig (/Users/patrykpeas/.atom/packages/prettier-atom/node_modules/prettier-eslint/dist/utils.js:131:33)
    at getTrailingComma (/Users/patrykpeas/.atom/packages/prettier-atom/node_modules/prettier-eslint/dist/utils.js:118:14)
    at /Users/patrykpeas/.atom/packages/prettier-atom/node_modules/prettier-eslint/dist/utils.js:91:50
    at Array.reduce (native)
    at getPrettierOptionsFromESLintRules (/Users/patrykpeas/.atom/packages/prettier-atom/node_modules/prettier-eslint/dist/utils.js:87:37)
    at getOptionsForFormatting (/Users/patrykpeas/.atom/packages/prettier-atom/node_modules/prettier-eslint/dist/utils.js:34:18)
    at format (/Users/patrykpeas/.atom/packages/prettier-atom/node_modules/prettier-eslint/dist/index.js:79:62)
    at /Users/patrykpeas/.atom/packages/prettier-atom/dist/executePrettier.js:33:16
    at exports.allowUnsafeNewFunction (/Users/patrykpeas/.atom/packages/prettier-atom/node_modules/loophole/lib/loophole.js:25:14)
    at executePrettier (/Users/patrykpeas/.atom/packages/prettier-atom/dist/executePrettier.js:32:14)
    at executePrettierOnBufferRange (/Users/patrykpeas/.atom/packages/prettier-atom/dist/executePrettier.js:45:21)
    at formatOnSaveIfAppropriate (/Users/patrykpeas/.atom/packages/prettier-atom/dist/formatOnSave.js:36:5)
    at lazyFormatOnSave (/Users/patrykpeas/.atom/packages/prettier-atom/dist/main.js:31:15)
    at /Users/patrykpeas/.atom/packages/prettier-atom/dist/main.js:45:12
    at Function.module.exports.Emitter.simpleDispatch (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:25:14)
    at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:129:28)
    at TextBuffer.module.exports.TextBuffer.saveAs (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:1059:20)
    at TextBuffer.module.exports.TextBuffer.save (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:1048:19)
    at TextEditor.module.exports.TextEditor.save (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor.js:915:26)
    at Pane.module.exports.Pane.saveItem (/Applications/Atom.app/Contents/Resources/app.asar/src/pane.js:753:18)
    at Pane.saveItem (/Applications/Atom.app/Contents/Resources/app.asar/src/pane.js:3:59)
    at Pane.module.exports.Pane.saveActiveItem (/Applications/Atom.app/Contents/Resources/app.asar/src/pane.js:736:19)
    at Workspace.module.exports.Workspace.saveActivePaneItem (/Applications/Atom.app/Contents/Resources/app.asar/src/workspace.js:693:35)
    at atom-workspace.core:save (/Applications/Atom.app/Contents/Resources/app.asar/src/register-default-commands.js:225:32)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:259:29)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:59
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:599:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:390:22)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeyEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:106:36)
    at HTMLDocument.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:3:59)

used eslint configuration:

{
  "parserOptions": {
    "ecmaVersion": 7,
    "ecmaFeatures": {
      "experimentalObjectRestSpread": true,
      "jsx": true
    },
    "sourceType": "module"
  },

  "settings": {
    "import/resolver": {
      "webpack": {
        "config": "config/webpack/config.js"
      }
    }
  },

  "env": {
    "es6": true,
    "browser": true
  },

  "plugins": [
  ],

  "globals": {
    "document": false,
    "window": false
  },

  "rules": {
    "no-cond-assign": "error",
    "no-console": ["error", {
      "allow": ["warn", "error", "info"]
    }],
    "no-constant-condition": "error",
    "no-debugger": "error",
    "no-alert": "error",
    "no-dupe-args": "error",
    "no-dupe-keys": "error",
    "no-duplicate-case": "error",
    "no-empty": "error",
    "no-empty-character-class": "error",
    "no-ex-assign": "error",
    "no-extra-boolean-cast": "error",
    "no-extra-parens": "error",
    "no-extra-semi": "error",
    "no-func-assign": "error",
    "no-invalid-regexp": "error",
    "no-irregular-whitespace": ["error", {
      "skipComments": true,
      "skipStrings": true,
      "skipTemplates": true
    }],
    "no-obj-calls": "error",
    "no-regex-spaces": "error",
    "no-sparse-arrays": "error",
    "no-template-curly-in-string": "error",
    "no-unreachable": "error",
    "no-unsafe-finally": "error",
    "array-callback-return": "error",
    "curly": "error",
    "default-case": "error",
    "dot-location": ["error", "property"],
    "no-caller": "error",
    "no-empty-function": "error",
    "no-empty-pattern": "error",
    "no-fallthrough": "error",
    "no-global-assign": "error",
    "no-implied-eval": "error",
    "no-invalid-this": "error",
    "no-labels": "error",
    "no-lone-blocks": "error",
    "no-multi-spaces": "error",
    "no-multi-str": "error",
    "no-octal": "error",
    "no-redeclare": "error",
    "no-return-assign": "error",
    "no-self-assign": "error",
    "no-self-compare": "error",
    "no-sequences": "error",
    "no-useless-call": "error",
    "no-useless-concat": "error",
    "no-useless-return": "error",
    "yoda": "error",
    "no-undef": "error",
    "no-undef-init": "error",
    "no-unused-vars": "error",
    "no-use-before-define": "error",
    "array-bracket-spacing": ["error", "never"],
    "block-spacing": "error",
    "brace-style": ["error", "1tbs", {
      "allowSingleLine": true
    }],
    "comma-spacing": "error",
    "comma-style": ["error", "last"],
    "computed-property-spacing": "error",
    "eol-last": "error",
    "func-call-spacing": "error",
    "indent": ["error", 2],
    "jsx-quotes": ["error", "prefer-double"],
    "key-spacing": "error",
    "keyword-spacing": "error",
    "new-parens": "error",
    "no-multiple-empty-lines": ["error", {
      "max": 1,
      "maxEOF": 1,
      "maxBOF": 0
    }],
    "no-trailing-spaces": "error",
    "no-unneeded-ternary": "error",
    "no-whitespace-before-property": "error",
    "object-curly-newline": "error",
    "object-curly-spacing": "error",
    "object-property-newline": ["error", {
      "allowMultiplePropertiesPerLine": true
    }],
    "one-var": ["error", "never"],
    "quotes": "error",
    "semi": "error",
    "semi-spacing": "error",
    "space-before-function-paren": ["error", "never"],
    "space-in-parens": "error",
    "space-infix-ops": "error",
    "template-tag-spacing": "error",
    "arrow-body-style": ["error", "as-needed"],
    "arrow-parens": ["error", "as-needed"],
    "arrow-spacing": "error",
    "no-const-assign": "error",
    "no-dupe-class-members": "error",
    "no-duplicate-imports": "error",
    "no-this-before-super": "error",
    "no-useless-constructor": "error",
    "no-useless-rename": "error",
    "prefer-const": "error",
    "prefer-template": "error",
    "require-yield": "error",
    "rest-spread-spacing": "error",
    "yield-star-spacing": "error",
    "generator-star-spacing": ["error", {
      "before": false,
      "after": true
    }],
    "no-unsafe-negation": "error",
    "use-isnan": "error",
    "consistent-return": "error",
    "no-case-declarations": "error",
    "no-implicit-globals": "error",
    "no-undefined": "error",
    "camelcase": "error",
    "comma-dangle": ["error", {
      "imports": "never",
      "exports": "never"
    }],
    "indent": ["error", 2],
    "quotes": ["error", "double"]
  }
}

editorconfig integration

Hi, thanks for a very neat project! Looking forward to using it more.

I noted quickly however that the tabWidth setting doesn't seem to pick up the value as I've configured it in my .editorconfig file (see http://editorconfig.org/ for more details on that project). Would be great if the tabWidth: auto setting could pick up the value from there – that would make for a very portable workflow!

Object.extname is deprecated.

Argument to path.extname must be a string

Object.extname (/usr/lib/atom/src/electron-shims.js:20:10)
processText (/home/willibaur/SmartPension/www/node_modules/eslint/lib/cli-engine.js:193:30)
CLIEngine.executeOnText (/home/willibaur/SmartPension/www/node_modules/eslint/lib/cli-engine.js:686:26)
eslintFix (/home/willibaur/.atom/packages/prettier-atom/node_modules/prettier-eslint/dist/index.js:141:25)
format (/home/willibaur/.atom/packages/prettier-atom/node_modules/prettier-eslint/dist/index.js:104:21)
<unknown> (/home/willibaur/.atom/packages/prettier-atom/dist/executePrettier.js:34:16)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.