123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- # EditorConfig JavaScript Core
- [](https://travis-ci.org/editorconfig/editorconfig-core-js)
- [](https://david-dm.org/editorconfig/editorconfig-core-js)
- The EditorConfig JavaScript core will provide the same functionality as the
- [EditorConfig C Core][] and [EditorConfig Python Core][].
- ## Installation
- You need [node][] to use this package.
- To install the package locally:
- ```bash
- $ npm install editorconfig
- ```
- To install the package system-wide:
- ```bash
- $ npm install -g editorconfig
- ```
- ## Usage
- ### in Node.js:
- #### parse(filePath[, options])
- options is an object with the following defaults:
- ```js
- {
- config: '.editorconfig',
- version: pkg.version,
- root: '/'
- };
- ```
- Search for `.editorconfig` starting from the current directory to the root directory.
- Example:
- ```js
- var editorconfig = require('editorconfig');
- var path = require('path');
- var filePath = path.join(__dirname, '/sample.js');
- var promise = editorconfig.parse(filePath);
- promise.then(function onFulfilled(result) {
- console.log(result);
- });
- /*
- {
- indent_style: 'space',
- indent_size: 2,
- end_of_line: 'lf',
- charset: 'utf-8',
- trim_trailing_whitespace: true,
- insert_final_newline: true,
- tab_width: 2
- };
- */
- ```
- #### parseSync(filePath[, options])
- Synchronous version of `editorconfig.parse()`.
- #### parseString(fileContent)
- The `parse()` function above uses `parseString()` under the hood. If you have your file contents
- just pass it to `parseString()` and it'll return the same results as `parse()`.
- #### parseFromFiles(filePath, configs[, options])
- options is an object with the following defaults:
- ```js
- {
- config: '.editorconfig',
- version: pkg.version,
- root: '/'
- };
- ```
- Specify the `.editorconfig`.
- Example:
- ```js
- var editorconfig = require('editorconfig');
- var fs = require('fs');
- var path = require('path');
- var configPath = path.join(__dirname, '/.editorconfig');
- var configs = [
- {
- name: configPath,
- contents: fs.readFileSync(configPath, 'utf8')
- }
- ];
- var filePath = path.join(__dirname, '/sample.js');
- var promise = editorconfig.parseFromFiles(filePath, configs);
- promise.then(function onFulfilled(result) {
- console.log(result)
- });
- /*
- {
- indent_style: 'space',
- indent_size: 2,
- end_of_line: 'lf',
- charset: 'utf-8',
- trim_trailing_whitespace: true,
- insert_final_newline: true,
- tab_width: 2
- };
- */
- ```
- #### parseFromFilesSync(filePath, configs[, options])
- Synchronous version of `editorconfig.parseFromFiles()`.
- ### in Command Line
- ```bash
- $ ./bin/editorconfig
- Usage: editorconfig [OPTIONS] FILEPATH1 [FILEPATH2 FILEPATH3 ...]
- EditorConfig Node.js Core Version 0.11.4-development
- FILEPATH can be a hyphen (-) if you want path(s) to be read from stdin.
- Options:
- -h, --help output usage information
- -V, --version output the version number
- -f <path> Specify conf filename other than ".editorconfig"
- -b <version> Specify version (used by devs to test compatibility)
- ```
- Example:
- ```bash
- $ ./bin/editorconfig /home/zoidberg/humans/anatomy.md
- charset=utf-8
- insert_final_newline=true
- end_of_line=lf
- tab_width=8
- trim_trailing_whitespace=sometimes
- ```
- ## Development
- To install dependencies for this package run this in the package directory:
- ```bash
- $ npm install
- ```
- Next, run the following commands:
- ```bash
- $ npm run build
- $ npm run copy
- $ npm link ./dist
- ```
- The global editorconfig will now point to the files in your development
- repository instead of a globally-installed version from npm. You can now use
- editorconfig directly to test your changes.
- If you ever update from the central repository and there are errors, it might
- be because you are missing some dependencies. If that happens, just run npm
- link again to get the latest dependencies.
- To test the command line interface:
- ```bash
- $ editorconfig <filepath>
- ```
- # Testing
- [CMake][] must be installed to run the tests.
- To run the tests:
- ```bash
- $ npm test
- ```
- To run the tests with increased verbosity (for debugging test failures):
- ```bash
- $ npm run-script test-verbose
- ```
- [EditorConfig C Core]: https://github.com/editorconfig/editorconfig-core
- [EditorConfig Python Core]: https://github.com/editorconfig/editorconfig-core-py
- [node]: http://nodejs.org/
- [cmake]: http://www.cmake.org
|