src/nodes/alias.js in prettier-0.21.0 vs src/nodes/alias.js in prettier-0.22.0

- old
+ new

@@ -5,67 +5,65 @@ group, hardline, line } = require("../prettier"); -/* In general, return the printed doc of the argument at the provided index. - * Special handling is given for symbol literals that are not bare words, as we - * convert those into bare words by just pulling out the ident node. - */ -function printAliasArgument(path, _opts, print, argIndex) { +// In general, return the printed doc of the argument at the provided index. +// Special handling is given for symbol literals that are not bare words, as we +// convert those into bare words by just pulling out the ident node. +function printAliasArgument(path, print, argIndex) { const node = path.getValue().body[argIndex]; - if (node.type === "symbol_literal" && node.body[0].type === "symbol") { + if (node.type === "symbol_literal") { // If we're going to descend into the symbol literal to grab out the ident // node, then we need to make sure we copy over any comments as well, // otherwise we could accidentally skip printing them. if (node.comments) { node.comments.forEach((comment) => { - addTrailingComment(node.body[0].body[0], comment); + addTrailingComment(node.body[0], comment); }); } - return path.call(print, "body", argIndex, "body", 0, "body", 0); + return path.call(print, "body", argIndex, "body", 0); } return path.call(print, "body", argIndex); } -/* The `alias` keyword is used to make a method respond to another name as well - * as the current one. For example, to get the method `foo` to also respond to - * `bar`, you would: - * - * alias bar foo - * - * Now, in the current context you can call `bar` and it will execute the `foo` - * method. - * - * When you're aliasing two methods, you can either provide bare words (like the - * example above) or you can provide symbols (note that this includes dynamic - * symbols like :"foo-#{bar}-baz"). In general, to be consistent with the ruby - * style guide, we prefer bare words: - * - * https://github.com/rubocop-hq/ruby-style-guide#alias-method-lexically - * - * The `alias` node contains two children. The left and right align with the - * arguments passed to the keyword. So, for the above example the left would be - * the symbol literal `bar` and the right could be the symbol literal `foo`. - */ +// The `alias` keyword is used to make a method respond to another name as well +// as the current one. For example, to get the method `foo` to also respond to +// `bar`, you would: +// +// alias bar foo +// +// Now, in the current context you can call `bar` and it will execute the `foo` +// method. +// +// When you're aliasing two methods, you can either provide bare words (like the +// example above) or you can provide symbols (note that this includes dynamic +// symbols like :"foo-#{bar}-baz"). In general, to be consistent with the ruby +// style guide, we prefer bare words: +// +// https://github.com/rubocop-hq/ruby-style-guide#alias-method-lexically +// +// The `alias` node contains two children. The left and right align with the +// arguments passed to the keyword. So, for the above example the left would be +// the symbol literal `bar` and the right could be the symbol literal `foo`. function printAlias(path, opts, print) { const keyword = "alias "; const rightSide = concat([ // If the left child has any comments, then we need to explicitly break this // into two lines path.getValue().body[0].comments ? hardline : line, - printAliasArgument(path, opts, print, 1) + printAliasArgument(path, print, 1) ]); return group( concat([ keyword, - printAliasArgument(path, opts, print, 0), - group(align(keyword, rightSide)) + printAliasArgument(path, print, 0), + group(align(keyword.length, rightSide)) ]) ); } module.exports = {