• Stars
    star
    198
  • Rank 196,898 (Top 4 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

a less opinionated fork of Prettier code formatter

prettierX - a less opinionated fork of Prettier

License: MIT npm

An unofficial fork of the Prettier code formatter, intended to provide some additional options to help improve consistency with "Standard JS" (feross/standard) and Flet/semistandard. This fork is an attempt to pick up where arijs/prettier-miscellaneous left off.

Major THANKS

Major thanks is due to @adalinesimonian for contributions in PR #603 that enabled updates from Prettier 2.3.2.

prettierX as a Prettier plugin

prettier-plugin-x - provides the additional formatting options in a prettier plugin

CLI Usage

Quick CLI usage:

prettierx <options> <file(s)>

Additional prettierX options

  • --align-object-properties (alignObjectProperties: true): Align colons in multiline object literals (not applied with any of the JSON parsers).
  • --offset-ternary-expressions (offsetTernaryExpressions: true): Indent and align ternary expression branches more consistently with "Standard JS" (similar to the corresponding eslint option).
  • --space-before-function-paren (spaceBeforeFunctionParen: true): Put a space before function parenthesis in all declarations (similar to the corresponding eslint option). (Default is to put a space before function parenthesis for untyped anonymous functions only.)
  • --generator-star-spacing (generatorStarSpacing: true): Put spaces around the star (*) in generator functions (before and after - similar to the corresponding eslint option). (Default is after only.)
  • --yield-star-spacing (yieldStarSpacing: true): Put spaces around the star (*) in yield* expressions (before and after - similar to the corresponding eslint option). (Default is after only.)
  • --no-indent-chains (indentChains: false): Disable indents at the start of chained calls.
  • --break-before-else (breakBeforeElse: true): Always add a line break before else.
  • --import-formatting <auto|oneline> (importFormatting: "<auto|oneline>"): Formatting of import statements, may be oneline to avoid conflict with VSCode "Organize Imports" feature.
  • --html-void-tags (htmlVoidTags: true): Format void HTML elements as void tags.
  • --break-long-method-chains (breakLongMethodChains: true): Break method chains with more than 3 method calls, like Prettier 1.x.
  • --array-bracket-spacing (arrayBracketSpacing: true): Put spaces between array brackets (similar to the corresponding eslint option). Status: experimental, with limited testing.
  • --css-paren-spacing (cssParenSpacing: true): Put spaces between parens in CSS, WordPress style. Status: experimental, with limited testing.
  • --computed-property-spacing (computedPropertySpacing: true): Put spaces between computed property brackets (similar to the corresponding eslint option). Status: experimental, with limited testing.",
  • --space-in-parens (spaceInParens: true): Print spaces in between parens, WordPress style (similar to the corresponding eslint option). Not recommended in combination with the default arrowParens: "always" option. Status: experimental, with limited testing.
  • --space-unary-ops (spaceUnaryOps: true): Put spaces after unary operator symbols, except in the middle of !! (similar to the corresponding eslint option). Status: experimental, with limited testing.
  • --template-curly-spacing (templateCurlySpacing: true): Put spaces between template curly brackets (similar to the corresponding eslint option). Status: experimental, with limited testing.
  • --type-angle-bracket-spacing (typeAngleBracketSpacing: true): Put spaces between type angle brackets. Status: experimental, with limited testing.
  • --type-bracket-spacing (typeBracketSpacing: true): Put spaces between type brackets. Status: experimental, with limited testing.
  • --no-export-curly-spacing (exportCurlySpacing: false): Put or disable spaces between export curly braces.
  • --no-import-curly-spacing (importCurlySpacing: false): Put or disable spaces between import curly braces.
  • --no-object-curly-spacing (objectCurlySpacing: false): Disable spaces between object curly braces (similar to the corresponding eslint option).
  • --no-graphql-curly-spacing (graphqlCurlySpacing: false): Disable spaces between curly braces for GraphQL.
  • --no-yaml-bracket-spacing (yamlBracketSpacing: false): Disable spaces between brackets / curly braces for YAML.
  • --no-type-curly-spacing (typeCurlySpacing: false): Disable spaces between type curly braces.

(See docs/options.md for more information.)

"Standard JS" formatting options

The following options should be used to format the code as consistently as possible with "Standard JS":

  • --arrow-parens avoid (arrowParens: "avoid")
  • --generator-star-spacing (generatorStarSpacing: true)
  • --space-before-function-paren (spaceBeforeFunctionParen: true)
  • --single-quote (singleQuote: true)
  • --jsx-single-quote (jsxSingleQuote: true)
  • --no-semi (semi: false)
  • --offset-ternary-expressions (offsetTernaryExpressions: true)
  • --yield-star-spacing (yieldStarSpacing: true)
  • --trailing-comma none (trailingComma: "none")

Note that this tool does not follow any of the other "Standard JS" rules. It is recommended to use this tool together with eslint, in some form, to archive correct formatting according to "Standard JS".

Any known conflicts with "Standard JS" will be tracked in open issues with the conflict-with-standard tag.

some recommended options

  • --arrow-parens avoid (arrowParens: "avoid"), especially in combination with --space-in-parens (spaceInParens: true).
  • --break-long-method-chains (breakLongMethodChains: true)
  • --offset-ternary-expressions (offsetTernaryExpressions: true)

options removed

  • --no-align-ternary-lines - replaced with: --offset-ternary-expressions
  • --paren-spacing - replaced with finer-grained options:
    • --array-bracket-spacing
    • --css-paren-spacing
    • --computed-property-spacing
    • --space-in-parens
    • --space-unary-ops
    • --template-curly-spacing
    • --type-angle-bracket-spacing
    • --type-bracket-spacing
  • no-bracket-spacing - replaced with finer-grained options:
    • --no-export-curly-spacing
    • --no-import-curly-spacing
    • --no-object-curly-spacing
    • --no-graphql-curly-spacing
    • --no-yaml-bracket-spacing
    • --no-type-curly-spacing

Input

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

Output

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

Integration with eslint

A couple packages by @aMarCruz (Alberto Martรญnez):


Contributing

See CONTRIBUTING.md.

More Repositories

1

create-react-native-module

JavaScript
625
star
2

cordova-sqlite-ext

A Cordova/PhoneGap plugin to open and use sqlite databases on Android/iOS/macOS/Windows with REGEXP (Android/macOS/iOS) and pre-populated databases (Android/iOS/macOS/Windows)
JavaScript
73
star
3

react-native-module-init

JavaScript
54
star
4

sql-promise-helper

JavaScript
11
star
5

prettier-plugin-x

JavaScript
10
star
6

cordova-sqlite-legacy

Legacy version of Cordova/PhoneGap plugin to open and use sqlite databases on Windows 8.1/Windows Phone 8.1 in addition to Android/iOS/macOS/Windows 10 with HTML5/Web SQL API
JavaScript
6
star
7

hyperapp-like-native-view-demo

Objective-C
5
star
8

Android-sqlite-ext-native-driver

C
4
star
9

cordova-sqlite-test-app

JavaScript
4
star
10

cordova-sqlite-storage-dependencies

C
4
star
11

sqlite3-base64

C
3
star
12

snowpack-vue-capacitor-2-demo

Swift
3
star
13

Android-sqlite-native-driver-ICU

Native build of sqlite for Android-sqlite-connector with ICU (4.4l) embedded
C
3
star
14

ask-me-anything

ASK ME ANYTHING such as support, ideas, or personal questions
3
star
15

android-sqlite-native-ndk-connector

Java
2
star
16

android-sqlite-ndk-native-driver

C
2
star
17

cordova-sqlite-ext-bootstrap-starter-app

JavaScript
2
star
18

node-php-serve

PHP Server command line for Node.js
JavaScript
2
star
19

Cordova-PGB-dialog-test-Windows10-arm

Cordova PhoneGap Build dialog test app for Windows 10 (arm) - WORKING OK ON MY MOBILE DEVICE
HTML
1
star
20

cordova-sqleet2020-evplus-build-free

C
1
star
21

phonegap-lite-ios-gen

PhoneGap iOS projects from the command line with no built-in plugins except DebugConsole
JavaScript
1
star
22

cordova-iab-custom-scheme-test-wip

JavaScript
1
star
23

java-node

EXPERIMENTAL: Native interface between Java and Node (v4.x) library
C++
1
star
24

libb64-core

C
1
star
25

Android-sqlite-native-driver-regexp-pcre

C
1
star
26

aq-query-test-android

Asynchronous Javascript query from web worker in WebView working for Android
Java
1
star
27

cordova-notes

1
star
28

cordova-aqs-test

Java
1
star
29

hyperapp-rewrite-demo-on-inferno-and-superfine

JavaScript
1
star
30

expo-razzle-react-primitives-starter

JavaScript
1
star
31

Cordova-quick-start-checklist

1
star
32

cordova-plugin-sqlcipher-crypto-batch-connection-manager-core-pro-free-unstable-0x

Java
1
star
33

prettier-plugin-prettierx-typescript

JavaScript
1
star
34

cordova-plugin-sqlite-batch-connection-manager-core-pro-free-unstable-0x

Java
1
star
35

leb

Utilities for the LEB128 number representation
JavaScript
1
star
36

Cordova-pre-populated-db-example-android

DEPRECATED AND NOT SUPPORTED
JavaScript
1
star
37

cordova-plugin-sqlite-batch-connection-manager-core-unstable-0x

Java
1
star
38

cordova-sqlite-evcore-legacy-ext-common-free

Cordova sqlite plugin with Android performance enhancements, GPL or commercial license options, with LEGACY SUPPORT for Windows 8.1 / Windows Phone 8.1 on VS 2015
JavaScript
1
star
39

Cordova-PGPluginShim

Shim files to run PhoneGap 1.4- plugins on Cordova 1.5+
Objective-C
1
star
40

react-primitives-input

JavaScript
1
star
41

cordova-sqlite-with-jquery-ajax-api-demo

Sample Cordova sqlite Ajax demo
C
1
star
42

Cordova-scripts

Shell
1
star
43

cordova-sqlite-evplus-legacy-attach-detach-free

Cordova sqlite storage plugin, free enterprise version (GPL) for Android and iOS with memory improvement, support for attach/detach, and other extra features
C
1
star
44

phonegap-lite-android

PhoneGap iOS projects from the command line with no built-in plugins (except Device builtins)
Java
1
star