tern-ref-plugin

0.0.9 • Public • Published

tern-ref-plugin

A tern plugin that augments condenser output with information about identifiers and the types they reference.

Documentation on Sourcegraph

Build Status status authors Total views

Usage

To install dependencies, run npm install.

With the tern condenser

Load the plugin:

$ node_modules/tern/bin/condense --plugin ref testdata/simple.js

You'll see information about identifier node references in the condense output:

{
  "!name": "testdata/simple.js",
  "a": {
    "!type": "number",
    "!span": "testdata/simple.js@4[0:4]-5[0:5]"
  },
  "b": {
    "c": {
      "d": {
        "!type": "number",
        "!span": "testdata/simple.js@28[3:13]-29[3:14]"
      },
      "!span": "testdata/simple.js@24[3:9]-25[3:10]"
    },
    "!span": "testdata/simple.js@19[3:4]-20[3:5]"
  },
  "E": {
    "h": {
      "!type": "number",
      "!span": "testdata/simple.js@131[18:2]-132[18:3]"
    },
    "!type": "fn(f: ?) -> !0",
    "!span": "testdata/simple.js@89[12:9]-90[12:10]"
  },
  "!ref": [
    {
      "file": "testdata/simple.js",
      "start": 4,
      "end": 5,
      "target": {
        "path": "a",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 11,
      "end": 12,
      "target": {
        "path": "a",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 19,
      "end": 20,
      "target": {
        "path": "b",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 24,
      "end": 25,
      "target": {
        "path": "b.c",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 28,
      "end": 29,
      "target": {
        "path": "b.c.d",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 31,
      "end": 32,
      "target": {
        "path": "a",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 36,
      "end": 37,
      "target": {
        "path": "b",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 38,
      "end": 39,
      "target": {
        "path": "b.c",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 41,
      "end": 42,
      "target": {
        "path": "b",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 49,
      "end": 50,
      "target": {
        "path": "b",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 51,
      "end": 52,
      "target": {
        "path": "b.c",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 53,
      "end": 54,
      "target": {
        "path": "b.c.d",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 57,
      "end": 62,
      "target": {
        "path": "Array",
        "origin": "ecma5"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 71,
      "end": 77,
      "target": {
        "path": "number",
        "origin": "ecma5"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 89,
      "end": 90,
      "target": {
        "path": "E",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 124,
      "end": 125,
      "target": {
        "path": "E",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 129,
      "end": 130,
      "target": {
        "path": "E",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 131,
      "end": 132,
      "target": {
        "path": "E.h",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 138,
      "end": 139,
      "target": {
        "path": "E",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 140,
      "end": 141,
      "target": {
        "path": "E.h",
        "file": "testdata/simple.js"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 149,
      "end": 153,
      "target": {
        "path": "Date",
        "origin": "ecma5"
      }
    },
    {
      "file": "testdata/simple.js",
      "start": 160,
      "end": 171,
      "target": {
        "path": "Date.prototype.toUTCString",
        "origin": "ecma5"
      }
    }
  ],
  "!ref_unresolved": [
    {
      "file": "testdata/simple.js",
      "start": 91,
      "name": "f"
    },
    {
      "file": "testdata/simple.js",
      "start": 102,
      "name": "g"
    },
    {
      "file": "testdata/simple.js",
      "start": 106,
      "name": "f"
    },
    {
      "file": "testdata/simple.js",
      "start": 118,
      "name": "g"
    }
  ]
}

Running tests

Run npm test.

Authors

Contributions are welcome! Submit a GitHub issue or pull request.

Readme

Keywords

none

Package Sidebar

Install

npm i tern-ref-plugin

Weekly Downloads

10

Version

0.0.9

License

none

Last publish

Collaborators

  • sqs