Last change
on this file since b738035 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago |
initial commit
|
-
Property mode
set to
100644
|
File size:
1.5 KB
|
Line | |
---|
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.