var-find v0.1.0
var-find
Find and return indexes of variable declarations.
This was built to run inside of twolfson/sublime-js-var-shortcuts, a Sublime Text plugin to make dealing with adding/removing vars
easier.
Getting Started
Install the module with: npm install var-find
var varFind = require('var-find');
varFind(function abc() {
// Group: `var def = 123;`
// Declaration: `def = 123;`
var def = 123;
console.log('hi');
} + '');
// [{
// "start": 78,
// "end": 92,
// "vars": [{
// "start": 82,
// "end": 91
// }]
// }]
Documentation
varFind
is a function that takes in a JS source code.
varFind(script);
/**
* varFind parses JS source code and returns locations of variable groups and declarations
* @param {String} script Source code to parse
* @returns {Array} groups Collection of variable groups
* @returns {Object} groups[i] Variable group instance
* @returns {Number} groups[i].start Beginning index for variable group instance
* @returns {Number} groups[i].end Finishing index for variable group instance
* @returns {Array} groups[i].vars Collection of variable declarations
* @returns {Object} groups[i].vars[i] Variable declaration instance
* @returns {Number} groups[i].vars[i].start Beginning index for variable declaration instance
* @returns {Number} groups[i].vars[i].end Finishing index for variable declaration instance
*/
Examples
For visual representation, variable groups begin and end with [
and ]
; for variable declarations, {
and }
.
Single definition:
[var {abc = 123};]
console.log('hi');
Comma-last definition:
[var {abc},
{def};]
console.log('hi');
Comma-first definition:
[var {abc}
, {def};]
console.log('hi');
Trailing whitespace (with semicolon):
Trailing whitespace without semicolon is considered another statement and ignored.
[var {abc = 123} ;]
console.log('hi');
Donating
Support this project and others by twolfson via gittip.
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint via grunt and test via npm test
.
Unlicense
As of Sep 27 2013, Todd Wolfson has released this repository and its contents to the public domain.
It has been released under the UNLICENSE.
11 years ago