Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Detect the indentation of code

License

NotificationsYou must be signed in to change notification settings

sindresorhus/detect-indent

Detect the indentation of code

Pass in a string of any kind of text and get the indentation.

Use cases

  • Persisting the indentation when modifying a file.
  • Have new content match the existing indentation.
  • Setting the right indentation in your editor.

Install

npm install detect-indent

Usage

Here we modify a JSON file while persisting the indentation:

importfsfrom'node:fs';importdetectIndentfrom'detect-indent';/*{    "ilove": "pizza"}*/constfile=fs.readFileSync('foo.json','utf8');// Tries to detect the indentation and falls back to a default if it can'tconstindent=detectIndent(file).indent||'    ';constjson=JSON.parse(file);json.ilove='unicorns';fs.writeFileSync('foo.json',JSON.stringify(json,undefined,indent));/*{    "ilove": "unicorns"}*/

API

Accepts a string and returns an object with stats about the indentation:

  • type {'tab' | 'space' | undefined} - The type of indentation. It isundefined if no indentation is detected.
  • amount {number} - The amount of indentation. For example,2.
  • indent {string} - The actual indentation.

Algorithm

The current algorithm looks for the most common difference between two consecutive non-empty lines. Single-space indentations and changes are ignored by default to prevent common false positives from comment alignment.

In the following example, even if 4-space indentation appears 3 times while 2-space appears only 2 times, the 2-space indentation is detected because there are 4 indent changes of 2 spaces vs only 2 changes of 4 spaces:

html {box-sizing: border-box;}body {background: gray;}p {line-height:1.3em;margin-top:1em;text-indent:2em;}

Source.

Furthermore, if there are multiple indent differences with the same usage count, the indentation with the most lines is selected.

In the following example, the indentation is detected as 4-spaces:

body {background: gray;}p {line-height:1.3em;margin-top:1em;text-indent:2em;}

Related

About

Detect the indentation of code

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors13


[8]ページ先頭

©2009-2025 Movatter.jp