https://github.com/jlyonsmith/whitespace-js
EOL/BOL whitespace space normalization tools
https://github.com/jlyonsmith/whitespace-js
Last synced: 6 days ago
JSON representation
EOL/BOL whitespace space normalization tools
- Host: GitHub
- URL: https://github.com/jlyonsmith/whitespace-js
- Owner: jlyonsmith
- Created: 2017-10-26T16:38:44.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-01-04T21:36:08.000Z (over 3 years ago)
- Last Synced: 2026-06-15T21:30:13.731Z (10 days ago)
- Language: JavaScript
- Size: 974 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Whitespace Tools
Tools to normalize end-of-line (EOL) & beginning-of-line (BOL) whitespace in text files.
## Installation
Install the tools with:
```
npm install whitespace-tools
```
This will install the `spacer` and `ender` tools. Or run the latest version directly from [npmjs.org](https://nodejs.org) with:
```
npx -p whitespace-tools spacer ...
npx -p whitespace-tools ender ...
```
## Ender
The `ender` tool will normalize line endings. Run `ender --help` for a list of options.
Run with a file name or pipe a file into the tool to get information on current line endings:
```
ender src/mySourceFile.js
cat someTextFile.txt | ender
```
To convert a file, supply `--new-eol` as one of `cr`, `lf`, `crlf` or `auto`. If no `-output-file` option is given, the file will go to STDOUT.
## Spacer
The `spacer` tool will normalize line beginnings, up to the first non-whitespace character. Run `spacer --help` for options.
Run with a file name or pipe a file into the tool to get information on current line beginnings:
```
spacer src/mySourcFile.js
cat someTextFile.txt | spacer
```
You can supply the `--new-bol` argument with either `spaces`, `tabs` or `auto`. If the file has existing tabs, supply the `--tab-size` argument indicating how many spaces a tab represents. If `tabs` is supplied as `--new-bol`, supply the `--round` flag if you wish extra spaces to be rounded down to a whole tab. Without this flag, the outputted file will still be reported as having `mixed` BOL's if there are any odd spaces in the BOL's.
## About This project
I've implemented this project in C#, Ruby, Python and now Javascript as a way to learn new programming languages, and also because they are _really useful tools_! A search across projects in GitHub will reveal just how many files have mixtures of tabs & spaces at line BOL's. Line ending problems are a little rarer these days, but they do still occur from time-to-time.
The project is written in ES6 Javascript and cross compiled using Babel. It currently targets Node 8. PR's welcome for any enhancements.