All Projects → vvakame → Typescript Formatter

vvakame / Typescript Formatter

Licence: mit
Formatter of TypeScript code

Programming Languages

typescript
32286 projects

Labels

Projects that are alternatives of or similar to Typescript Formatter

Ceras
Universal binary serializer for a wide variety of scenarios https://discord.gg/FGaCX4c
Stars: ✭ 374 (-26.67%)
Mutual labels:  formatter
Google Java Format
Reformats Java source code to comply with Google Java Style.
Stars: ✭ 4,250 (+733.33%)
Mutual labels:  formatter
Unibeautify
One Beautifier to rule them all, One Beautifier to clean them, One Beautifier to bring them all and in the darkness sheen them
Stars: ✭ 466 (-8.63%)
Mutual labels:  formatter
Autopep8
A tool that automatically formats Python code to conform to the PEP 8 style guide.
Stars: ✭ 3,967 (+677.84%)
Mutual labels:  formatter
Prettier Vscode
Visual Studio Code extension for Prettier
Stars: ✭ 4,085 (+700.98%)
Mutual labels:  formatter
Fmt Obj
Stringifies any javascript object in your console for CLI inspection ✨
Stars: ✭ 428 (-16.08%)
Mutual labels:  formatter
Shsphonecomponent
UITextField and NSFormatter subclasses for formatting phone numbers. Allow different formats for different countries(patterns).
Stars: ✭ 367 (-28.04%)
Mutual labels:  formatter
Globalize
A JavaScript library for internationalization and localization that leverages the official Unicode CLDR JSON data
Stars: ✭ 4,612 (+804.31%)
Mutual labels:  formatter
Coolformat
CoolFormat Source Code Formatter
Stars: ✭ 392 (-23.14%)
Mutual labels:  formatter
Prettier Eslint Cli
CLI for prettier-eslint
Stars: ✭ 451 (-11.57%)
Mutual labels:  formatter
Isort
A Python utility / library to sort imports.
Stars: ✭ 4,377 (+758.24%)
Mutual labels:  formatter
Verible
Verible is a suite of SystemVerilog developer tools, including a parser, style-linter, and formatter.
Stars: ✭ 384 (-24.71%)
Mutual labels:  formatter
Exfmt
🌸 An opinionated Elixir source code formatter
Stars: ✭ 445 (-12.75%)
Mutual labels:  formatter
Snazzy
Format JavaScript Standard Style as Stylish (i.e. snazzy) output
Stars: ✭ 381 (-25.29%)
Mutual labels:  formatter
Fantomas
FSharp source code formatter
Stars: ✭ 475 (-6.86%)
Mutual labels:  formatter
Sh
A shell parser, formatter, and interpreter with bash support; includes shfmt
Stars: ✭ 4,343 (+751.57%)
Mutual labels:  formatter
Latexindent.pl
Perl script to add indentation (leading horizontal space) to LaTeX files. It can modify line breaks before, during and after code blocks; it can perform text wrapping and paragraph line break removal. It can also perform string-based and regex-based substitutions/replacements. The script is customisable through its YAML interface.
Stars: ✭ 415 (-18.63%)
Mutual labels:  formatter
Input Mask Ios
User input masking library repo.
Stars: ✭ 494 (-3.14%)
Mutual labels:  formatter
Sublime Jsfmt
jsfmt plugin for Sublime Text
Stars: ✭ 480 (-5.88%)
Mutual labels:  formatter
Black
The uncompromising Python code formatter
Stars: ✭ 23,973 (+4600.59%)
Mutual labels:  formatter

TypeScript Formatter (tsfmt)

npm Build Status Dependency Status npm GitHub stars

A TypeScript code formatter powered by TypeScript Compiler Service.

$ tsfmt --help
  Usage: tsfmt [options] [--] [files...]

  Options:

    -r, --replace         replace .ts file
    --verify              checking file format
    --baseDir <path>      config file lookup from <path>
    --stdin               get formatting content from stdin
    --no-tsconfig         don't read a tsconfig.json
    --no-tslint           don't read a tslint.json
    --no-editorconfig     don't read a .editorconfig
    --no-vscode           don't read a .vscode/settings.json
    --no-tsfmt            don't read a tsfmt.json
    --useTsconfig <path>  using specified config file instead of tsconfig.json
    --useTslint <path>    using specified config file instead of tslint.json
    --useTsfmt <path>     using specified config file instead of tsfmt.json
    --verbose             makes output more verbose

Installation

npm install -g typescript-formatter

Usage

Format or verify specific TypeScript files

$ cat sample.ts
class Sample {hello(word="world"){return "Hello, "+word;}}
new Sample().hello("TypeScript");
# basic. read file, output to stdout.
$ tsfmt sample.ts
class Sample { hello(word = "world") { return "Hello, " + word; } }
new Sample().hello("TypeScript");
# from stdin. read from stdin, output to stdout.
$ cat sample.ts | tsfmt --stdin
class Sample { hello(word = "world") { return "Hello, " + word; } }
new Sample().hello("TypeScript");
# replace. read file, and replace file.
$ tsfmt -r sample.ts
replaced sample.ts
$ cat sample.ts
class Sample { hello(word = "world") { return "Hello, " + word; } }
new Sample().hello("TypeScript");
# verify. checking file format.
$ tsfmt --verify sample.ts
sample.ts is not formatted
$ echo $?
1

Reformat all files in a TypeScript project

If no files are specified on the command line but a TypeScript project file (tsconfig.json) exists, the list of files will be read from the project file.

# reads list of files to format from tsconfig.json
tsfmt -r

Read Settings From Files

1st. Read settings from tsfmt.json. Below is the example with default values:

{
  "baseIndentSize": 0,
  "indentSize": 4,
  "tabSize": 4,
  "indentStyle": 2,
  "newLineCharacter": "\r\n",
  "convertTabsToSpaces": true,
  "insertSpaceAfterCommaDelimiter": true,
  "insertSpaceAfterSemicolonInForStatements": true,
  "insertSpaceBeforeAndAfterBinaryOperators": true,
  "insertSpaceAfterConstructor": false,
  "insertSpaceAfterKeywordsInControlFlowStatements": true,
  "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
  "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,
  "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,
  "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true,
  "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false,
  "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false,
  "insertSpaceAfterTypeAssertion": false,
  "insertSpaceBeforeFunctionParenthesis": false,
  "insertSpaceBeforeTypeAnnotation": true,
  "placeOpenBraceOnNewLineForFunctions": false,
  "placeOpenBraceOnNewLineForControlBlocks": false
}

2nd. Read settings from tsconfig.json (tsconfig.json)

{
  "compilerOptions": {
    "newLine": "LF"
  }
}

3rd. Read settings from .editorconfig (editorconfig)

# EditorConfig is awesome: http://EditorConfig.org

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
indent_style = tab
tab_width = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

4th. Read settings from tslint.json (tslint)

{
  "rules": {
    "indent": [true, 4],
    "whitespace": [true,
      "check-branch",
      "check-operator",
      "check-separator",
      "check-typecast"
    ]
  }
}

5th. Read settings from .vscode/settings.json (VisualStudio Code)

{
  // Place your settings in this file to overwrite default and user settings.
  "typescript.format.enable": true,
  "typescript.format.insertSpaceAfterCommaDelimiter": true,
  "typescript.format.insertSpaceAfterSemicolonInForStatements": true,
  "typescript.format.insertSpaceBeforeAndAfterBinaryOperators": true,
  "typescript.format.insertSpaceAfterKeywordsInControlFlowStatements": true,
  "typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
  "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,
  "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,
  "typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false,
  "typescript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false,
  "typescript.format.placeOpenBraceOnNewLineForFunctions": false,
  "typescript.format.placeOpenBraceOnNewLineForControlBlocks": false
}

Read Settings Rules

$ tree -a
.
├── .vscode
│   └── settings.json
├── foo
│   ├── bar
│   │   ├── .editorconfig
│   │   └── buzz.ts
│   ├── fuga
│   │   ├── piyo.ts
│   │   └── tsfmt.json
│   └── tsfmt.json
└── tslint.json

4 directories, 7 files
  1. exec $ tsfmt -r foo/bar/buzz.ts foo/fuga/piyo.ts
  2. for foo/bar/buzz.ts, read foo/tsfmt.json and foo/bar/.editorconfig and ./tslint.json and .vscode/settings.json
  3. for foo/fuga/piyo.ts, read foo/fuga/tsfmt.json and ./tslint.json and .vscode/settings.json

Change Log

See CHANGELOG

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].