Sha256: 00f922063fa8d3ec1471ba4ac4e805423d9297577ba8adbd43635dfc2f04cd4c
Contents?: true
Size: 1.18 KB
Versions: 2
Compression:
Stored size: 1.18 KB
Contents
// An @int node is any literal integer in Ruby. They can come in a number of // bases, and look like the following: // // Binary (2) - 0b0110 // Octal (8) - 0o34 or 034 // Decimal (10) - a normal number like 159 // Hexidecimal (16) - 0xac5 // // If it's a decimal number, it can be optional separated by any number of // arbitrarily places underscores. This can be useful for dollars and cents // (34_99), dates (2020_11_30), and normal 3 digit separation (1_222_333). function printInt(path, _opts, _print) { const { body } = path.getValue(); // If the number is octal and does not contain the optional "o" character // after the leading 0, add it in. if (/^0[0-9]/.test(body)) { return `0o${body.slice(1)}`; } // If the number is a base 10 number, is sufficiently large, and is not // already formatted with underscores, then add them in in between the // numbers every three characters starting from the right. if (!body.startsWith("0") && body.length >= 5 && !body.includes("_")) { return ` ${body}` .slice((body.length + 2) % 3) .match(/.{3}/g) .join("_") .trim(); } return body; } module.exports = { "@int": printInt };
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
prettier-1.0.0.pre.rc1 | src/nodes/ints.js |
prettier-0.22.0 | src/nodes/ints.js |