| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 68f6841 commit 6a55802
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -675,13 +675,72 @@ The default styles and associated colors are: | |||
| 675 | 675 | * `symbol`: `green` | |
| 676 | 676 | * `undefined`: `grey` | |
| 677 | 677 | ||
| 678 | - The predefined color codes are: `white`, `grey`, `black`, `blue`, `cyan`, | ||
| 679 | - `green`, `magenta`, `red` and `yellow`. There are also `bold`, `italic`, | ||
| 680 | - `underline` and `inverse` codes. | ||
| 681 | - | ||
| 682 | 678 | Color styling uses ANSI control codes that may not be supported on all | |
| 683 | 679 | terminals. To verify color support use [`tty.hasColors()`][]. | |
| 684 | 680 | ||
| 681 | + Predefined control codes are listed below (grouped as "Modifiers", "Foreground | ||
| 682 | + colors", and "Background colors"). | ||
| 683 | + | ||
| 684 | + #### Modifiers | ||
| 685 | + | ||
| 686 | + Modifier support varies throughout different terminals. They will mostly be | ||
| 687 | + ignored, if not supported. | ||
| 688 | + | ||
| 689 | + * `reset` - Resets all (color) modifiers to their defaults | ||
| 690 | + * **bold** - Make text bold | ||
| 691 | + * _italic_ - Make text italic | ||
| 692 | + * <span style="border-bottom: 1px;">underline</span> - Make text underlined | ||
| 693 | + * ~~strikethrough~~ - Puts a horizontal line through the center of the text | ||
| 694 | + (Alias: `strikeThrough`, `crossedout`, `crossedOut`) | ||
| 695 | + * `hidden` - Prints the text, but makes it invisible (Alias: conceal) | ||
| 696 | + * <span style="opacity: 0.5;">dim</span> - Decreased color intensity (Alias: | ||
| 697 | + `faint`) | ||
| 698 | + * <span style="border-top: 1px">overlined</span> - Make text overlined | ||
| 699 | + * blink - Hides and shows the text in an interval | ||
| 700 | + * <span style="filter: invert(100%)">inverse</span> - Swap foreground and | ||
| 701 | + background colors (Alias: `swapcolors`, `swapColors`) | ||
| 702 | + * <span style="border-bottom: 1px double;">doubleunderline</span> - Make text | ||
| 703 | + double underlined (Alias: `doubleUnderline`) | ||
| 704 | + * <span style="border: 1px">framed</span> - Draw a frame around the text | ||
| 705 | + | ||
| 706 | + #### Foreground colors | ||
| 707 | + | ||
| 708 | + * `black` | ||
| 709 | + * `red` | ||
| 710 | + * `green` | ||
| 711 | + * `yellow` | ||
| 712 | + * `blue` | ||
| 713 | + * `magenta` | ||
| 714 | + * `cyan` | ||
| 715 | + * `white` | ||
| 716 | + * `gray` (alias: `grey`, `blackBright`) | ||
| 717 | + * `redBright` | ||
| 718 | + * `greenBright` | ||
| 719 | + * `yellowBright` | ||
| 720 | + * `blueBright` | ||
| 721 | + * `magentaBright` | ||
| 722 | + * `cyanBright` | ||
| 723 | + * `whiteBright` | ||
| 724 | + | ||
| 725 | + #### Background colors | ||
| 726 | + | ||
| 727 | + * `bgBlack` | ||
| 728 | + * `bgRed` | ||
| 729 | + * `bgGreen` | ||
| 730 | + * `bgYellow` | ||
| 731 | + * `bgBlue` | ||
| 732 | + * `bgMagenta` | ||
| 733 | + * `bgCyan` | ||
| 734 | + * `bgWhite` | ||
| 735 | + * `bgGray` (alias: `bgGrey`, `bgBlackBright`) | ||
| 736 | + * `bgRedBright` | ||
| 737 | + * `bgGreenBright` | ||
| 738 | + * `bgYellowBright` | ||
| 739 | + * `bgBlueBright` | ||
| 740 | + * `bgMagentaBright` | ||
| 741 | + * `bgCyanBright` | ||
| 742 | + * `bgWhiteBright` | ||
| 743 | + | ||
| 685 | 744 | ### Custom inspection functions on Objects | |
| 686 | 745 | ||
| 687 | 746 | <!-- type=misc --> | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -269,23 +269,86 @@ ObjectDefineProperty(inspect, 'defaultOptions', { | |||
| 269 | 269 | } | |
| 270 | 270 | }); | |
| 271 | 271 | ||
| 272 | - // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics | ||
| 272 | + // Set Graphics Rendition http://en.wikipedia.org/wiki/ANSI_escape_code#graphics | ||
| 273 | + // Each color consists of an array with the color code as first entry and the | ||
| 274 | + // reset code as second entry. | ||
| 275 | + const defaultFG = 39; | ||
| 276 | + const defaultBG = 49; | ||
| 273 | 277 | inspect.colors = ObjectAssign(ObjectCreate(null), { | |
| 278 | + reset: [0, 0], | ||
| 274 | 279 | bold: [1, 22], | |
| 280 | + dim: [2, 22], // Alias: faint | ||
| 275 | 281 | italic: [3, 23], | |
| 276 | 282 | underline: [4, 24], | |
| 277 | - inverse: [7, 27], | ||
| 278 | - white: [37, 39], | ||
| 279 | - grey: [90, 39], | ||
| 280 | - black: [30, 39], | ||
| 281 | - blue: [34, 39], | ||
| 282 | - cyan: [36, 39], | ||
| 283 | - green: [32, 39], | ||
| 284 | - magenta: [35, 39], | ||
| 285 | - red: [31, 39], | ||
| 286 | - yellow: [33, 39] | ||
| 283 | + blink: [5, 25], | ||
| 284 | + // Swap forground and background colors | ||
| 285 | + inverse: [7, 27], // Alias: swapcolors, swapColors | ||
| 286 | + hidden: [8, 28], // Alias: conceal | ||
| 287 | + strikethrough: [9, 29], // Alias: strikeThrough, crossedout, crossedOut | ||
| 288 | + doubleunderline: [21, 24], // Alias: doubleUnderline | ||
| 289 | + black: [30, defaultFG], | ||
| 290 | + red: [31, defaultFG], | ||
| 291 | + green: [32, defaultFG], | ||
| 292 | + yellow: [33, defaultFG], | ||
| 293 | + blue: [34, defaultFG], | ||
| 294 | + magenta: [35, defaultFG], | ||
| 295 | + cyan: [36, defaultFG], | ||
| 296 | + white: [37, defaultFG], | ||
| 297 | + bgBlack: [40, defaultBG], | ||
| 298 | + bgRed: [41, defaultBG], | ||
| 299 | + bgGreen: [42, defaultBG], | ||
| 300 | + bgYellow: [43, defaultBG], | ||
| 301 | + bgBlue: [44, defaultBG], | ||
| 302 | + bgMagenta: [45, defaultBG], | ||
| 303 | + bgCyan: [46, defaultBG], | ||
| 304 | + bgWhite: [47, defaultBG], | ||
| 305 | + framed: [51, 54], | ||
| 306 | + overlined: [53, 55], | ||
| 307 | + gray: [90, defaultFG], // Alias: grey, blackBright | ||
| 308 | + redBright: [91, defaultFG], | ||
| 309 | + greenBright: [92, defaultFG], | ||
| 310 | + yellowBright: [93, defaultFG], | ||
| 311 | + blueBright: [94, defaultFG], | ||
| 312 | + magentaBright: [95, defaultFG], | ||
| 313 | + cyanBright: [96, defaultFG], | ||
| 314 | + whiteBright: [97, defaultFG], | ||
| 315 | + bgGray: [100, defaultBG], // Alias: bgGrey, bgBlackBright | ||
| 316 | + bgRedBright: [101, defaultBG], | ||
| 317 | + bgGreenBright: [102, defaultBG], | ||
| 318 | + bgYellowBright: [103, defaultBG], | ||
| 319 | + bgBlueBright: [104, defaultBG], | ||
| 320 | + bgMagentaBright: [105, defaultBG], | ||
| 321 | + bgCyanBright: [106, defaultBG], | ||
| 322 | + bgWhiteBright: [107, defaultBG], | ||
| 287 | 323 | }); | |
| 288 | 324 | ||
| 325 | + function defineColorAlias(target, alias) { | ||
| 326 | + ObjectDefineProperty(inspect.colors, alias, { | ||
| 327 | + get() { | ||
| 328 | + return this[target]; | ||
| 329 | + }, | ||
| 330 | + set(value) { | ||
| 331 | + this[target] = value; | ||
| 332 | + }, | ||
| 333 | + configurable: true, | ||
| 334 | + enumerable: false | ||
| 335 | + }); | ||
| 336 | + } | ||
| 337 | + | ||
| 338 | + defineColorAlias('gray', 'grey'); | ||
| 339 | + defineColorAlias('gray', 'blackBright'); | ||
| 340 | + defineColorAlias('bgGray', 'bgGrey'); | ||
| 341 | + defineColorAlias('bgGray', 'bgBlackBright'); | ||
| 342 | + defineColorAlias('dim', 'faint'); | ||
| 343 | + defineColorAlias('strikethrough', 'crossedout'); | ||
| 344 | + defineColorAlias('strikethrough', 'strikeThrough'); | ||
| 345 | + defineColorAlias('strikethrough', 'crossedOut'); | ||
| 346 | + defineColorAlias('hidden', 'conceal'); | ||
| 347 | + defineColorAlias('inverse', 'swapColors'); | ||
| 348 | + defineColorAlias('inverse', 'swapcolors'); | ||
| 349 | + defineColorAlias('doubleunderline', 'doubleUnderline'); | ||
| 350 | + | ||
| 351 | + // TODO(BridgeAR): Add function style support for more complex styles. | ||
| 289 | 352 | // Don't use 'blue' not visible on cmd.exe | |
| 290 | 353 | inspect.styles = ObjectAssign(ObjectCreate(null), { | |
| 291 | 354 | special: 'cyan', | |
@@ -298,6 +361,7 @@ inspect.styles = ObjectAssign(ObjectCreate(null), { | |||
| 298 | 361 | symbol: 'green', | |
| 299 | 362 | date: 'magenta', | |
| 300 | 363 | // "name": intentionally not styling | |
| 364 | + // TODO(BridgeAR): Highlight regular expressions properly. | ||
| 301 | 365 | regexp: 'red', | |
| 302 | 366 | module: 'underline' | |
| 303 | 367 | }); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -2072,6 +2072,34 @@ assert.strictEqual(inspect(new BigUint64Array([0n])), 'BigUint64Array [ 0n ]'); | |||
| 2072 | 2072 | `\u001b[${string[0]}m'Oh no!'\u001b[${string[1]}m }` | |
| 2073 | 2073 | ); | |
| 2074 | 2074 | rejection.catch(() => {}); | |
| 2075 | + | ||
| 2076 | + // Verify that aliases do not show up as key while checking `inspect.colors`. | ||
| 2077 | + const colors = Object.keys(inspect.colors); | ||
| 2078 | + const aliases = Object.getOwnPropertyNames(inspect.colors) | ||
| 2079 | + .filter((c) => !colors.includes(c)); | ||
| 2080 | + assert(!colors.includes('grey')); | ||
| 2081 | + assert(colors.includes('gray')); | ||
| 2082 | + // Verify that all aliases are correctly mapped. | ||
| 2083 | + for (const alias of aliases) { | ||
| 2084 | + assert(Array.isArray(inspect.colors[alias])); | ||
| 2085 | + } | ||
| 2086 | + // Check consistent naming. | ||
| 2087 | + [ | ||
| 2088 | + 'black', | ||
| 2089 | + 'red', | ||
| 2090 | + 'green', | ||
| 2091 | + 'yellow', | ||
| 2092 | + 'blue', | ||
| 2093 | + 'magenta', | ||
| 2094 | + 'cyan', | ||
| 2095 | + 'white' | ||
| 2096 | + ].forEach((color, i) => { | ||
| 2097 | + assert.deepStrictEqual(inspect.colors[color], [30 + i, 39]); | ||
| 2098 | + assert.deepStrictEqual(inspect.colors[`${color}Bright`], [90 + i, 39]); | ||
| 2099 | + const bgColor = `bg${color[0].toUpperCase()}${color.slice(1)}`; | ||
| 2100 | + assert.deepStrictEqual(inspect.colors[bgColor], [40 + i, 49]); | ||
| 2101 | + assert.deepStrictEqual(inspect.colors[`${bgColor}Bright`], [100 + i, 49]); | ||
| 2102 | + }); | ||
| 2075 | 2103 | } | |
| 2076 | 2104 | ||
| 2077 | 2105 | assert.strictEqual( | |
| Back | FazBrowse Home | New Git URL |
0 commit comments