tern-def-origin
v0.0.6
Published
Tern plugin for determining the definition AST node and origin for JavaScript types
Downloads
16
Readme
tern-def-origin
A tern plugin for determining the definition AST node and origin for JavaScript types.
Usage
To install dependencies, run npm install
.
This plugin requires tern 0.5.1 (which sets the sourceFile
property on AST nodes).
With the tern server
Add this plugin to your .tern-project
file:
{
"plugins": {"/path/to/def-origin.js": {}}
}
With the tern condenser
Load the plugin:
$ node_modules/tern/bin/condense --plugin def-origin testdata/simple.js
You'll see the new !data.aval
and !data.type` key paths on types in the
condensed output:
{
"!name": "testdata/simple.js",
"a": {
"!type": "fn()",
"!span": "4[0:4]-5[0:5]",
"!data": {
"aval": {
"originFile": "testdata/simple.js",
"identSpan": "4-5",
"defSpan": "8-21"
},
"type": {
"origin": "testdata/simple.js",
"name": "a"
}
}
},
"b": {
"!type": "number",
"!span": "27[1:4]-28[1:5]",
"!data": {
"aval": {
"originFile": "testdata/simple.js",
"identSpan": "46-47",
"defSpan": "49-50"
},
"type": {
"name": "number"
}
}
},
"c": {
"d": {
"!type": "number",
"!span": "46[3:2]-47[3:3]",
"!data": {
"aval": {
"originFile": "testdata/simple.js",
"identSpan": "46-47",
"defSpan": "49-50"
},
"type": {
"name": "number"
}
}
},
"f": {
"!type": "fn()",
"!span": "54[4:2]-55[4:3]",
"!data": {
"aval": {
"originFile": "testdata/simple.js",
"identSpan": "54-55",
"defSpan": "57-70"
},
"type": {
"origin": "testdata/simple.js",
"name": "f"
}
}
},
"!span": "38[2:4]-39[2:5]",
"!data": {
"aval": {
"originFile": "testdata/simple.js",
"identSpan": "38-39",
"defSpan": "42-73"
},
"type": {
"origin": "testdata/simple.js",
"name": "c"
}
}
},
"g": {
"!type": "fn()",
"!span": "85[7:9]-86[7:10]",
"!data": {
"aval": {
"originFile": "testdata/simple.js",
"identSpan": "85-86",
"defSpan": "76-91"
},
"type": {
"origin": "testdata/simple.js",
"name": "g"
}
}
},
"e": "Array"
}
Running tests
Run npm test
.
Authors
Contributions are welcome! Submit a GitHub issue or pull request.