jsctags icon indicating copy to clipboard operation
jsctags copied to clipboard

jsctags generator using tern

jsctags

jsctags generator using tern

install

For access to the binary:

npm install -g git+https://github.com/ramitos/jsctags.git

Otherwise, add to your project's package.json under dependencies or dev-dependencies:

"jsctags": "git://github.com/ramitos/jsctags.git"

usage

$ jsctags [--dir=/path/to] /path/to/file.js [-f]
$ cat /path/to/file.js | jsctags [--dir=/path/to] [--file=/path/to/file.js] [-f]

By default, jsctags will output a JSON file. Use the -f flag to output an exuberant ctags-compatible file.

const jsctags = require('jsctags');
const fs = require('fs');

const file = '/path/to/file.js';
const dir = '/path/to/';
const content = fs.readFileSync(file, 'utf8');

jsctags(file, dir, content, function(e, tags) {
  console.log(tags);
});

Usage with Vim

If you'd like to take a JavaScript project and generate a tags file that Vim can parse, you can use the below command. It searches your directory for any .js files, excluding ./node_modules, formats the tags correctly for Vim and outputs them into tags.

find . -type f -iregex ".*\.js$" -not -path "./node_modules/*" -exec jsctags {} -f \; | sed '/^$/d' | LANG=C sort > tags

If you would like tags generated for files within node_modules/, just remove the -not -path "./node_modules/* part of the command:

find . -type f -iregex ".*\.js$" -exec jsctags {} -f \; | sed '/^$/d' | LANG=C sort > tags

examples

  • arguments
  • array_holes
  • arrow
  • autothis
  • bind
  • block_scope
  • blowup
  • browser
  • builtins
  • catch_error
  • cautiouspropagation
  • class
  • computedprop
  • contextcomplete
  • copyprops
  • ctorpattern
  • defineProperty
  • destructure
  • docstrings
  • effects
  • empty_overridden_prop
  • es6-features
  • extends
  • finddef
  • findref
  • fn_arguments
  • for_of
  • generate
  • generator
  • generic_each
  • getter
  • global_this
  • hint-objlit
  • hint_browser
  • hint_ecma5
  • hint_simple
  • indirect_class
  • infinite-expansion
  • jsdoc
  • map
  • merge
  • mixin
  • new_array
  • new_to_prototype
  • object_create
  • objectlit
  • objnames
  • order_of_definition
  • phantom_object
  • plus
  • promise
  • proto
  • protoname
  • react
  • replace_bogus_prop
  • set
  • simple
  • simple_generic
  • super
  • symbol
  • template

license

MIT