node-ctags

Ctags Node module

20
23
20
7
C
public
Archived
Atom and all repositories under Atom will be archived on December 15, 2022. Learn more in our official announcement

Ctags Node module Build Status

Read all about ctags here.

Installing

npm install ctags

Building

  • Clone the repository
  • Run npm install
  • Run grunt to compile the native and CoffeeScript code
  • Run grunt test to run the specs

Documentation

findTags(tagsFilePath, tag, [options], callback)

Get all tags matching the tag specified from the tags file at the path.

  • tagsFilePath - The string path to the tags file.

  • tag - The string name of the tag to search for.

  • options - An optional options object containing the following keys:

    • caseInsensitive - true to include tags that match case insensitively,
      (default: false)
    • partialMatch - true to include tags that partially match the given tag
      (default: false)
  • callback - The function to call when complete with an error as the first
    argument and an array containing objects that have name and
    file keys and optionally a pattern key if the tag file
    specified contains tag patterns.

Example

ctags = require 'ctags'

ctags.findTags('/Users/me/repos/node/tags', 'exists', (error, tags=[]) ->
  for tag in tags
    console.log("#{tag.name} is in #{tag.file}")

createReadStream(tagsFilePath, [options])

Create a read stream to a tags file.

The stream returned will emit data events with arrays of tag objects
that have name and file keys and optionally a pattern key if the tag file
specified contains tag patterns.

An error event will be emitted if the tag file cannot be read.

An end event will be emitted when all the tags have been read.

  • tagsFilePath - The string path to the tags file.

  • options - An optional object containing the following keys.

    • chunkSize - The number of tags to read at a time (default: 100).

Returns a stream.

Example

ctags = require 'ctags'

stream = ctags.createReadStream('/Users/me/repos/node/tags')
stream.on 'data', (tags) ->
  for tag in tags
    console.log("#{tag.name} is in #{tag.file} with pattern: #{tag.pattern}")
v0.3.3[beta]