Last change
on this file since 76712b2 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago |
initial commit
|
-
Property mode
set to
100644
|
File size:
1.5 KB
|
Rev | Line | |
---|
[6a3a178] | 1 | # ESLint Scope
|
---|
| 2 |
|
---|
| 3 | ESLint Scope is the [ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm) scope analyzer used in ESLint. It is a fork of [escope](http://github.com/estools/escope).
|
---|
| 4 |
|
---|
| 5 | ## Usage
|
---|
| 6 |
|
---|
| 7 | Install:
|
---|
| 8 |
|
---|
| 9 | ```
|
---|
| 10 | npm i eslint-scope --save
|
---|
| 11 | ```
|
---|
| 12 |
|
---|
| 13 | Example:
|
---|
| 14 |
|
---|
| 15 | ```js
|
---|
| 16 | var eslintScope = require('eslint-scope');
|
---|
| 17 | var espree = require('espree');
|
---|
| 18 | var estraverse = require('estraverse');
|
---|
| 19 |
|
---|
| 20 | var ast = espree.parse(code);
|
---|
| 21 | var scopeManager = eslintScope.analyze(ast);
|
---|
| 22 |
|
---|
| 23 | var currentScope = scopeManager.acquire(ast); // global scope
|
---|
| 24 |
|
---|
| 25 | estraverse.traverse(ast, {
|
---|
| 26 | enter: function(node, parent) {
|
---|
| 27 | // do stuff
|
---|
| 28 |
|
---|
| 29 | if (/Function/.test(node.type)) {
|
---|
| 30 | currentScope = scopeManager.acquire(node); // get current function scope
|
---|
| 31 | }
|
---|
| 32 | },
|
---|
| 33 | leave: function(node, parent) {
|
---|
| 34 | if (/Function/.test(node.type)) {
|
---|
| 35 | currentScope = currentScope.upper; // set to parent scope
|
---|
| 36 | }
|
---|
| 37 |
|
---|
| 38 | // do stuff
|
---|
| 39 | }
|
---|
| 40 | });
|
---|
| 41 | ```
|
---|
| 42 |
|
---|
| 43 | ## Contributing
|
---|
| 44 |
|
---|
| 45 | Issues and pull requests will be triaged and responded to as quickly as possible. We operate under the [ESLint Contributor Guidelines](http://eslint.org/docs/developer-guide/contributing), so please be sure to read them before contributing. If you're not sure where to dig in, check out the [issues](https://github.com/eslint/eslint-scope/issues).
|
---|
| 46 |
|
---|
| 47 | ## Build Commands
|
---|
| 48 |
|
---|
| 49 | * `npm test` - run all linting and tests
|
---|
| 50 | * `npm run lint` - run all linting
|
---|
| 51 |
|
---|
| 52 | ## License
|
---|
| 53 |
|
---|
| 54 | ESLint Scope is licensed under a permissive BSD 2-clause license.
|
---|
Note:
See
TracBrowser
for help on using the repository browser.