Projekt

Obecné

Profil

Stáhnout (1.47 KB) Statistiky
| Větev: | Revize:
1 3a515b92 cagy
# 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.