message: Rename static Printer options to `config`.
  These options are documented in lib/options.js, and apply to the entire
  printing process, and don't change depending on how the various print
  functions are called.
diff: @@ -46,17 +46,16 @@ PRp.toString = function() {
  var emptyPrintResult = new PrintResult("");
  -function Printer(originalOptions) {
  +function Printer(config) {
  assert.ok(this instanceof Printer);
  - var explicitTabWidth = originalOptions && originalOptions.tabWidth;
  - var options = normalizeOptions(originalOptions);
  - assert.notStrictEqual(options, originalOptions);
  + const explicitTabWidth = config && config.tabWidth;
  + config = normalizeOptions(config);
  // It's common for client code to pass the same options into both
  // recast.parse and recast.print, but the Printer doesn't need (and
  - // can be confused by) options.sourceFileName, so we null it out.
  - options.sourceFileName = null;
  + // can be confused by) config.sourceFileName, so we null it out.
  + config.sourceFileName = null;
  function printWithComments(path) {
  assert.ok(path instanceof FastPath);
  @@ -70,12 +69,12 @@ function Printer(originalOptions) {
  assert.ok(path instanceof FastPath);
  if (!explicitTabWidth) {
  - var oldTabWidth = options.tabWidth;
  - var loc = path.getNode().loc;
  + const oldTabWidth = config.tabWidth;
  + const loc = path.getNode().loc;
  if (loc && loc.lines && loc.lines.guessTabWidth) {
  - options.tabWidth = loc.lines.guessTabWidth();
  - var lines = maybeReprint(path);
  - options.tabWidth = oldTabWidth;
  + config.tabWidth = loc.lines.guessTabWidth();
  + const lines = maybeReprint(path);
  + config.tabWidth = oldTabWidth;
  return lines;
  }
  }
  @@ -84,7 +83,7 @@ function Printer(originalOptions) {
  }
  function maybeReprint(path) {
  - var reprinter = getReprinter(path);
  + const reprinter = getReprinter(path);
  if (reprinter) {
  // Since the print function that we pass to the reprinter will
  // be used to print "new" nodes, it's tempting to think we
  @@ -104,13 +103,13 @@ function Printer(originalOptions) {
  function printRootGenerically(path, includeComments) {
  return includeComments
  ? printComments(path, printRootGenerically)
  - : genericPrint(path, options, printWithComments);
  + : genericPrint(path, config, printWithComments);
  }
  // Print the entire AST generically.
  function printGenerically(path) {
  return printComments(path, function (path) {
  - return genericPrint(path, options, printGenerically);
  + return genericPrint(path, config, printGenerically);
  });
  }
  @@ -119,15 +118,15 @@ function Printer(originalOptions) {
  return emptyPrintResult;
  }
  - var lines = print(FastPath.from(ast), true);
  + const lines = print(FastPath.from(ast), true);
  return new PrintResult(
  - lines.toString(options),
  + lines.toString(config),
  util.composeSourceMaps(
  - options.inputSourceMap,
  + config.inputSourceMap,
  lines.getSourceMap(
  - options.sourceMapName,
  - options.sourceRoot
  + config.sourceMapName,
  + config.sourceRoot
  )
  )
  );
  @@ -138,16 +137,16 @@ function Printer(originalOptions) {
  return emptyPrintResult;
  }
  - var path = FastPath.from(ast);
  - var oldReuseWhitespace = options.reuseWhitespace;
  + const path = FastPath.from(ast);
  + const oldReuseWhitespace = config.reuseWhitespace;
  // Do not reuse whitespace (or anything else, for that matter)
  // when printing generically.
  - options.reuseWhitespace = false;
  + config.reuseWhitespace = false;
  // TODO Allow printing of comments?
  - var pr = new PrintResult(printGenerically(path).toString(options));
  - options.reuseWhitespace = oldReuseWhitespace;
  + const pr = new PrintResult(printGenerically(path).toString(config));
  + config.reuseWhitespace = oldReuseWhitespace;
  return pr;
  };
  }
  