shift-identifiers

0.0.1 • Public • Published

shift-identifiers

Find all the identifiers and their closest matches in a source file.

Why?

Curiosity.

It may be useful to expose similarities in identifiers across an entire source file to find out where there is inconsistent naming or where there may be pockets of similar code.

Usage

You can use the executable, but it's not really useful outside of quick testing.

$ ./bin/shift-identifiers jquery.js

/bin/shift-identifiers vendor/jquery/dist/jquery.js
{ selector: [ 'toSelector', 'select', 'selectors', 'selection', 'selected' ],
  toSelector: [ 'selector', 'newSelector', 'postSelector' ],
  select: [ 'selector' ],
  selectors: [ 'selector', 'selection', 'selected' ],
  selection: [ 'selector', 'selectors', 'collection', 'selected' ],
  selected: [ 'selector', 'selectors', 'related', 'selection' ],
  context: [ 'text', 'concat', 'contexts', 'next', 'content', 'contents' ],
  text: [ 'context' ],
  concat: [ 'context' ],
  contexts: [ 'context', 'contains', 'content', 'contents' ],
  next: [ 'context' ],
  content:
   [ 'context',
     'contains',
     'contexts',
     'condense',
     'contents',
     'current' ],
  contents: [ 'context', 'contains', 'contexts', 'condense', 'content' ],
  arguments: [ 'argument' ],
  argument: [ 'arguments', 'document', 'fragment' ],
  options: [ 'opts', 'option', 'optionSet' ],
  opts: [ 'options' ],
  option: [ 'options' ],
  optionSet: [ 'options' ],
  undefined: [ 'strundefined', 'define' ],
  strundefined: [ 'undefined' ],
  define: [ 'undefined' ],
  document: [ 'argument' ],
  indirect: [ 'inspect' ],
  inspect: [ 'indirect', 'inspected' ],
  results: [ 'result', 'resolve' ],
  result: [ 'results' ],
  resolve: [ 'results', 'rescape', 'response' ],
  indexOf: [ 'index' ],
  index: [ 'indexOf' ],
  matches:
   [ 'match',
     'cache',
     'matched',
     'matcher',
     'unmatched',
     'cached',
     'matchers',
     'matcherIn',
     'attaches' ],
  match: [ 'matches' ],
  cache: [ 'matches' ],
  matched:
   [ 'matches',
     'matcher',
     'unmatched',
     'cached',
     'matchers',
     'mapped',
     'matcherIn',
     'method' ],
  matcher:
   [ 'matches',
     'matchExpr',
     'matched',
     'unmatched',
     'cached',
     'matchers',
     'matcherIn',
     'matcherOut' ],
  unmatched: [ 'matches', 'matched', 'matcher' ],
  cached: [ 'matches', 'matched', 'matcher' ],
  matchers: [ 'matches', 'matched', 'matcher', 'matcherIn', 'matcherOut' ],
  matcherIn: [ 'matches', 'matched', 'matcher', 'matchers', 'matcherOut' ],
  attaches: [ 'matches' ],
  whitespace: [ 'rwhitespace' ],
  rwhitespace: [ 'whitespace' ],
  identifier: [ 'ridentifier' ],
  ridentifier: [ 'identifier' ],
  pseudos: [ 'rpseudo', 'pseudo' ],
  rpseudo: [ 'pseudos', 'pseudo' ],
  pseudo: [ 'pseudos', 'rpseudo' ],
  escaped: [ 'rescape', 'eased', 'scale' ],
  rescape: [ 'escaped', 'runescape', 'funescape', 'resolve', 'scale' ],
  eased: [ 'escaped', 'related' ],
  scale: [ 'escaped', 'rescape' ],
  nodeType: [ 'nodeName', 'ofType', 'nType' ],
  nodeName: [ 'nodeType', 'doneName' ],
  ofType: [ 'nodeType' ],
  nType: [ 'nodeType' ],
  contains: [ 'contexts', 'content', 'container', 'contents' ],
  container: [ 'contains' ],
  expando: [ 'expanded' ],
  expanded: [ 'expando' ],
  newContext: [ 'testContext' ],
  testContext: [ 'newContext' ],
  newSelector: [ 'toSelector' ],
  tokenize: [ 'tokens', 'token' ],
  tokens: [ 'tokenize' ],
  token: [ 'tokenize' ],
  runescape: [ 'rescape', 'funescape' ],
  funescape: [ 'rescape', 'runescape' ],
  postSelector: [ 'toSelector' ],
  rsibling: [ 'sibling' ],
  sibling: [ 'rsibling', 'firing' ],
  handler: [ 'handleObj', 'handlers', 'handle' ],
  handleObj: [ 'handler', 'handleObjIn', 'handlers', 'handle' ],
  handlers: [ 'handler', 'handleObj', 'handle', 'headers' ],
  handle: [ 'handler', 'handleObj', 'handlers' ],
  fragment: [ 'argument' ],
  docElem: [ 'curElem' ],
  curElem: [ 'docElem' ],
  className: [ 'classCache', 'capName', 'classNames' ],
  classCache: [ 'className' ],
  capName: [ 'className', 'rtagName', 'propName' ],
  classNames: [ 'className', 'classes' ],
  compare: [ 'compile', 'compiled', 'computed', 'complete' ],
  compile: [ 'compare', 'compiled', 'computed', 'complete' ],
  compiled: [ 'compare', 'compile', 'completed', 'computed', 'complete' ],
  computed: [ 'compare', 'compile', 'compiled', 'completed', 'complete' ],
  complete: [ 'compare', 'compile', 'compiled', 'completed', 'computed' ],
  elements: [ 'elemData', 'events', 'refElements' ],
  elemData: [ 'elements', 'elemLang', 'keepData' ],
  events: [ 'elements' ],
  refElements: [ 'elements', 'destElements', 'srcElements' ],
  getText: [ 'getter' ],
  getter: [ 'getText', 'pattern' ],
  matchExpr: [ 'matcher' ],
  doneName: [ 'nodeName', 'funcName' ],
  pattern: [ 'attr', 'setter', 'getter' ],
  attr: [ 'pattern' ],
  setter: [ 'pattern' ],
  useCache: [ 'outerCache', 'oldCache', 'newCache' ],
  outerCache: [ 'useCache' ],
  oldCache: [ 'useCache', 'newCache' ],
  newCache: [ 'useCache', 'oldCache' ],
  dirruns: [ 'rrun' ],
  rrun: [ 'dirruns' ],
  mapped: [ 'matched' ],
  method: [ 'matched' ],
  matcherOut: [ 'matcher', 'matchers', 'matcherIn' ],
  elemLang: [ 'elemData' ],
  rheader: [ 'rheaders', 'headers' ],
  rheaders: [ 'rheader', 'headers' ],
  headers: [ 'rheader', 'handlers', 'rheaders' ],
  setFilters: [ 'preFilters' ],
  preFilters: [ 'setFilters', 'preFilter', 'propFilter', 'prefilters' ],
  preFilter: [ 'preFilters', 'postFilter', 'propFilter', 'prefilters' ],
  propFilter: [ 'preFilters', 'postFilter', 'preFilter' ],
  prefilters: [ 'preFilters', 'preFilter' ],
  rcombinators: [ 'combinator' ],
  combinator: [ 'rcombinators' ],
  funcName: [ 'doneName' ],
  postFilter: [ 'postFinder', 'preFilter', 'propFilter' ],
  postFinder: [ 'postFilter' ],
  setMatcher: [ 'setMatchers', 'setMatched', 'superMatcher' ],
  setMatchers: [ 'setMatcher', 'setMatched' ],
  setMatched: [ 'setMatcher', 'setMatchers' ],
  superMatcher: [ 'setMatcher' ],
  condense: [ 'content', 'contents' ],
  matchContext: [ 'matchAnyContext' ],
  matchAnyContext: [ 'matchContext' ],
  elementMatcher: [ 'elementMatchers' ],
  elementMatchers: [ 'elementMatcher' ],
  completed: [ 'compiled', 'computed', 'complete' ],
  addHandle: [ 'attrHandle' ],
  attrHandle: [ 'addHandle' ],
  targets: [ 'parts' ],
  parts: [ 'targets' ],
  firing: [ 'sibling' ],
  deferred: [ 'defer' ],
  defer: [ 'deferred' ],
  returned: [ 'rreturn' ],
  rreturn: [ 'returned' ],
  promise: [ 'props' ],
  props: [ 'promise' ],
  setTimeout: [ 'timeout' ],
  timeout: [ 'setTimeout', 'timerId' ],
  emptyGet: [ 'empty' ],
  empty: [ 'emptyGet' ],
  response: [ 'resolve', 'responses' ],
  keepData: [ 'elemData' ],
  handleObjIn: [ 'handleObj' ],
  origType: [ 'origName' ],
  origName: [ 'origType', 'rtagName', 'propName' ],
  original: [ 'origFn' ],
  origFn: [ 'original' ],
  related: [ 'eased', 'selected' ],
  wrapMap: [ 'wrap' ],
  wrap: [ 'wrapMap' ],
  current: [ 'content', 'percent', 'curLeft' ],
  destElements: [ 'refElements' ],
  srcElements: [ 'refElements' ],
  pdataOld: [ 'pdataCur', 'udataOld' ],
  pdataCur: [ 'pdataOld', 'udataCur' ],
  udataOld: [ 'pdataOld', 'udataCur' ],
  udataCur: [ 'pdataCur', 'udataOld' ],
  rtagName: [ 'capName', 'origName' ],
  collection: [ 'selection' ],
  scripts: [ 'hasScripts' ],
  hasScripts: [ 'scripts' ],
  rmargin: [ 'margin' ],
  margin: [ 'rmargin', 'marginDiv' ],
  minWidth: [ 'maxWidth' ],
  maxWidth: [ 'minWidth' ],
  marginDiv: [ 'margin' ],
  propName: [ 'capName', 'origName' ],
  isHidden: [ 'hidden' ],
  hidden: [ 'isHidden' ],
  percent: [ 'current' ],
  animation: [ 'Animation', 'doAnimation' ],
  Animation: [ 'animation', 'doAnimation' ],
  doAnimation: [ 'animation', 'Animation' ],
  stopped: [ 'speed', 'stop' ],
  speed: [ 'stopped' ],
  stop: [ 'stopped' ],
  prepend: [ 'proceed' ],
  proceed: [ 'prepend' ],
  timerId: [ 'time', 'timeout' ],
  time: [ 'timerId' ],
  boolHook: [ 'nodeHook' ],
  nodeHook: [ 'boolHook' ],
  classes: [ 'rclass', 'classNames' ],
  rclass: [ 'classes' ],
  dataType: [ 'dataTypes' ],
  dataTypes: [ 'dataType', 'allTypes' ],
  allTypes: [ 'dataTypes' ],
  transports: [ 'transport' ],
  transport: [ 'transports' ],
  inspected: [ 'inspect' ],
  responses: [ 'response' ],
  finalDataType: [ 'firstDataType' ],
  firstDataType: [ 'finalDataType' ],
  curLeft: [ 'current', 'curCSSLeft' ],
  isSuccess: [ 'success' ],
  success: [ 'isSuccess' ],
  xhrCallbacks: [ 'oldCallbacks' ],
  oldCallbacks: [ 'xhrCallbacks' ],
  curCSSTop: [ 'curTop' ],
  curTop: [ 'curCSSTop' ],
  curCSSLeft: [ 'curLeft' ] }

In code

var shiftIdentifiers = require('../dist');

var file = 'some/file.js';

var source = fs.readFileSync(file).toString();

console.log(shiftIdentifiers(source));

Licenses

ISC

Readme

Keywords

none

Package Sidebar

Install

npm i shift-identifiers

Weekly Downloads

1

Version

0.0.1

License

ISC

Last publish

Collaborators

  • jsoverson