githubEdit

ESLint Scope

ESLint Scope is the ECMAScriptarrow-up-right scope analyzer used in ESLint. It is a fork of escopearrow-up-right.

Usage

Install:

npm i eslint-scope --save

Example:

var eslintScope = require('eslint-scope');
var espree = require('espree');
var estraverse = require('estraverse');

var ast = espree.parse(code);
var scopeManager = eslintScope.analyze(ast);

var currentScope = scopeManager.acquire(ast);   // global scope

estraverse.traverse(ast, {
    enter: function(node, parent) {
        // do stuff

        if (/Function/.test(node.type)) {
            currentScope = scopeManager.acquire(node);  // get current function scope
        }
    },
    leave: function(node, parent) {
        if (/Function/.test(node.type)) {
            currentScope = currentScope.upper;  // set to parent scope
        }

        // do stuff
    }
});

Contributing

Issues and pull requests will be triaged and responded to as quickly as possible. We operate under the ESLint Contributor Guidelinesarrow-up-right, so please be sure to read them before contributing. If you're not sure where to dig in, check out the issuesarrow-up-right.

Build Commands

  • npm test - run all linting and tests

  • npm run lint - run all linting

License

ESLint Scope is licensed under a permissive BSD 2-clause license.

Last updated

Was this helpful?